.global lino,filn .global EXIT .global begtext,begdata,begbss .global EARRAY,ERANGE,ESET,EIDIVZ,EHEAP,EILLINS,ECASE,EBADGTO .global hol0,reghp,limhp,trpim,trppc ! runtime startof for sparc on sun4 LINO_AD = 0 FILN_AD = 4 EARRAY = 0 ERANGE = 1 ESET = 2 EIDIVZ = 6 EHEAP = 17 EILLINS = 18 ECASE = 20 EBADGTO = 27 .seg "text" begtext: clr %fp ld [%sp + 0x40], %o0 add %sp, 0x44, %o1 sll %o0, 0x2, %o2 add %o2, 0x4, %o2 add %o1, %o2, %o2 set -0x100000, %g4 ! should be a few M clr %l1 mov %sp, %l0 add %sp, %g4, %sp dec 12, %l0 ! enable divide by 0 trap and improper ! trap st %fsr, [%l0] ld [%l0], %o3 set 0x09000000, %o4 or %o3, %o4, %o3 st %o3, [%l0] ld [%l0], %fsr st %o0, [%l0] st %o1, [%l0+4] st %o2, [%l0+8] call __m_a_i_n nop dec 4, %l0 st %g0, [%l0] EXIT: call __exit nop .seg "data" begdata: .word 0 ! may be at virtual address 0 with no problem hol0: lino: .word 0 ! lino filn: .word 0 ! filn reghp: .word __end limhp: .word __end trppc: .word 0 trpim: .word 0 ! USED TO BE 2 BYTES; IS THIS RIGHT? .seg "bss" begbss: !initialization is not needed because ALL entries are in zero space!