Adapted to use of new assembler & linker
This commit is contained in:
parent
fa2547ddf7
commit
a9bbf81f93
36 changed files with 230 additions and 87 deletions
|
@ -1,12 +1,16 @@
|
||||||
.define .sar
|
.define .sar
|
||||||
.define .lar
|
.define .lar
|
||||||
.define .aar
|
.define .aar
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
!register usage:
|
!register usage:
|
||||||
! a0 : descriptor address
|
! a0 : descriptor address
|
||||||
! d0 : index
|
! d0 : index
|
||||||
! a1 : base address
|
! a1 : base address
|
||||||
.text
|
.sect .text
|
||||||
.aar:
|
.aar:
|
||||||
move.l (sp)+,d2 ! return address
|
move.l (sp)+,d2 ! return address
|
||||||
move.l (sp)+,a0
|
move.l (sp)+,a0
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
.define .cii
|
.define .cii
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
.text
|
.sect .text
|
||||||
.cii:
|
.cii:
|
||||||
move.l (sp)+,a0 ! return address
|
move.l (sp)+,a0 ! return address
|
||||||
move (sp)+,d0 ! destination size
|
move (sp)+,d0 ! destination size
|
||||||
|
|
|
@ -1,8 +1,12 @@
|
||||||
.define .cmi, .cmi_
|
.define .cmi, .cmi_
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
! NUM == 4
|
! NUM == 4
|
||||||
! result in d1
|
! result in d1
|
||||||
.text
|
.sect .text
|
||||||
.cmi:
|
.cmi:
|
||||||
.cmi_:
|
.cmi_:
|
||||||
move.l (sp)+,a0
|
move.l (sp)+,a0
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
.define .cmp
|
.define .cmp
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
.text
|
.sect .text
|
||||||
.cmp:
|
.cmp:
|
||||||
move.l (sp)+,a0 ! return address
|
move.l (sp)+,a0 ! return address
|
||||||
move.l #1,d1
|
move.l #1,d1
|
||||||
|
|
|
@ -1,8 +1,12 @@
|
||||||
.define .cms
|
.define .cms
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
! d0 contains set size
|
! d0 contains set size
|
||||||
|
|
||||||
.text
|
.sect .text
|
||||||
.cms:
|
.cms:
|
||||||
move.l (sp)+,d2 ! return address
|
move.l (sp)+,d2 ! return address
|
||||||
move.l sp,a0
|
move.l sp,a0
|
||||||
|
|
|
@ -1,7 +1,11 @@
|
||||||
.define .cmu
|
.define .cmu
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
! d0 : # bytes of 1 block
|
! d0 : # bytes of 1 block
|
||||||
.text
|
.sect .text
|
||||||
.cmu:
|
.cmu:
|
||||||
move.l (sp)+,d2 ! reta
|
move.l (sp)+,d2 ! reta
|
||||||
move.l sp,a0 ! top block
|
move.l sp,a0 ! top block
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
.define .csa
|
.define .csa
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
.text
|
.sect .text
|
||||||
.csa:
|
.csa:
|
||||||
move.l (sp)+,a0 ! case descriptor
|
move.l (sp)+,a0 ! case descriptor
|
||||||
move (sp)+,d0 ! index
|
move (sp)+,d0 ! index
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
.define .csb
|
.define .csb
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
.text
|
.sect .text
|
||||||
.csb:
|
.csb:
|
||||||
move.l (sp)+,a0 ! case descriptor
|
move.l (sp)+,a0 ! case descriptor
|
||||||
move (sp)+,d0 ! index
|
move (sp)+,d0 ! index
|
||||||
|
|
|
@ -1,8 +1,12 @@
|
||||||
.define .ciu
|
.define .ciu
|
||||||
.define .cui
|
.define .cui
|
||||||
.define .cuu
|
.define .cuu
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
.text
|
.sect .text
|
||||||
.ciu:
|
.ciu:
|
||||||
.cui:
|
.cui:
|
||||||
.cuu:
|
.cuu:
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
.define .cfi,.cif,.cfu,.cuf,.cff
|
.define .cfi,.cif,.cfu,.cuf,.cff
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
.text
|
.sect .text
|
||||||
|
|
||||||
! this is a dummy float conversion routine
|
! this is a dummy float conversion routine
|
||||||
.cfi:
|
.cfi:
|
||||||
|
|
|
@ -1,12 +1,16 @@
|
||||||
.define .diagnos
|
.define .diagnos
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
space = 040
|
space = 040
|
||||||
del = 0177
|
del = 0177
|
||||||
|
|
||||||
.text
|
.sect .text
|
||||||
.diagnos:
|
.diagnos:
|
||||||
move.w hol0,-(sp)
|
move.w hol0,-(sp)
|
||||||
move.l hol0+FILN_AD,d2
|
move.l hol0+4,d2
|
||||||
beq 1f
|
beq 1f
|
||||||
move.l d2,a0
|
move.l d2,a0
|
||||||
move.l #40,d0
|
move.l #40,d0
|
||||||
|
@ -31,7 +35,7 @@ del = 0177
|
||||||
move.l #unknwn,d2
|
move.l #unknwn,d2
|
||||||
bra 2b
|
bra 2b
|
||||||
|
|
||||||
.data
|
.sect .data
|
||||||
fmt: .asciz "%s, line %d: "
|
fmt: .asciz "%s, line %d: "
|
||||||
unknwn: .asciz "unknown file"
|
unknwn: .asciz "unknown file"
|
||||||
.align 2
|
.align 2
|
||||||
|
|
|
@ -1,7 +1,11 @@
|
||||||
.define .dvi
|
.define .dvi
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
! signed long divide
|
! signed long divide
|
||||||
.text
|
.sect .text
|
||||||
.dvi:
|
.dvi:
|
||||||
move.l (sp)+,a0 ! return address
|
move.l (sp)+,a0 ! return address
|
||||||
move.l (sp)+,d0
|
move.l (sp)+,d0
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
.define .dvu
|
.define .dvu
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
! unsigned long divide
|
! unsigned long divide
|
||||||
! register usage:
|
! register usage:
|
||||||
|
@ -6,7 +10,7 @@
|
||||||
! d1 dividend
|
! d1 dividend
|
||||||
! exit : d1 quotient
|
! exit : d1 quotient
|
||||||
! d2 remainder
|
! d2 remainder
|
||||||
.text
|
.sect .text
|
||||||
.dvu:
|
.dvu:
|
||||||
move.l (sp)+,a1 ! return address
|
move.l (sp)+,a1 ! return address
|
||||||
move.l (sp)+,d0
|
move.l (sp)+,d0
|
||||||
|
|
|
@ -1,14 +1,16 @@
|
||||||
.define endtext,enddata,endbss,_etext,_edata,_end
|
.define endtext,enddata,endbss,_etext,_edata,_end
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
.sect .end ! only for declaration of _end and endbss.
|
||||||
|
|
||||||
.text
|
.sect .text
|
||||||
.align 2
|
|
||||||
endtext:
|
endtext:
|
||||||
_etext:
|
_etext:
|
||||||
.data
|
.sect .data
|
||||||
.align 2
|
|
||||||
enddata:
|
enddata:
|
||||||
_edata:
|
_edata:
|
||||||
.bss
|
.sect .end
|
||||||
.align 2
|
|
||||||
endbss:
|
|
||||||
_end:
|
_end:
|
||||||
|
endbss:
|
||||||
|
|
|
@ -1,7 +1,11 @@
|
||||||
.define .exg
|
.define .exg
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
! d0 : exchange size in bytes
|
! d0 : exchange size in bytes
|
||||||
.text
|
.sect .text
|
||||||
.exg:
|
.exg:
|
||||||
move.l (sp)+,d2 ! return address
|
move.l (sp)+,d2 ! return address
|
||||||
move.l sp,a1
|
move.l sp,a1
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
.define .fat
|
.define .fat
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
.text
|
.sect .text
|
||||||
.fat:
|
.fat:
|
||||||
jsr .trp
|
jsr .trp
|
||||||
jmp EXIT
|
jmp EXIT
|
||||||
|
|
18
mach/m68k2/libem/ffp.s
Normal file
18
mach/m68k2/libem/ffp.s
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
.define .cmf8, .cif8, .dvf8, .adf8, .ngf8, .mlf8, .fif8, .fef8, .cff4
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
|
.sect .text
|
||||||
|
.cmf8:
|
||||||
|
.cif8:
|
||||||
|
.dvf8:
|
||||||
|
.adf8:
|
||||||
|
.ngf8:
|
||||||
|
.mlf8:
|
||||||
|
.fif8:
|
||||||
|
.fef8:
|
||||||
|
.cff4:
|
||||||
|
move.w #EILLINS,-(sp)
|
||||||
|
jmp .fat
|
|
@ -1,4 +1,8 @@
|
||||||
.define .gto
|
.define .gto
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
.extern .gto
|
.extern .gto
|
||||||
|
|
||||||
.gto:
|
.gto:
|
||||||
|
@ -69,7 +73,7 @@ etabd:
|
||||||
etaba:
|
etaba:
|
||||||
move.l d2,a1
|
move.l d2,a1
|
||||||
jmp (a1) ! return
|
jmp (a1) ! return
|
||||||
.data
|
.sect .data
|
||||||
savd0: .long 0
|
savd0: .data4 0
|
||||||
savd1: .long 0
|
savd1: .data4 0
|
||||||
.text
|
.sect .text
|
||||||
|
|
|
@ -1,9 +1,13 @@
|
||||||
.define .inn
|
.define .inn
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
! d0 : set size in bytes
|
! d0 : set size in bytes
|
||||||
! d1 : bitnumber
|
! d1 : bitnumber
|
||||||
|
|
||||||
.text
|
.sect .text
|
||||||
.inn:
|
.inn:
|
||||||
move.l (sp)+,d2 ! return address
|
move.l (sp)+,d2 ! return address
|
||||||
move.w (sp)+,d1
|
move.w (sp)+,d1
|
||||||
|
|
|
@ -1,8 +1,12 @@
|
||||||
.define .los
|
.define .los
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
! d0 : # bytes
|
! d0 : # bytes
|
||||||
! a0 : source address
|
! a0 : source address
|
||||||
.text
|
.sect .text
|
||||||
.los:
|
.los:
|
||||||
move.l (sp)+,a1
|
move.l (sp)+,a1
|
||||||
move.w (sp)+,d0
|
move.w (sp)+,d0
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
.define .lpb
|
.define .lpb
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
.extern .lpb
|
.extern .lpb
|
||||||
.lpb:
|
.lpb:
|
||||||
! convert local to argument base
|
! convert local to argument base
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
.define .lxa
|
.define .lxa
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
.extern .lxa
|
.extern .lxa
|
||||||
.lxa:
|
.lxa:
|
||||||
! #levels (>= 0) on stack
|
! #levels (>= 0) on stack
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
.define .lxl
|
.define .lxl
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
.extern .lxl
|
.extern .lxl
|
||||||
.lxl:
|
.lxl:
|
||||||
! #levels on stack (> 0)
|
! #levels on stack (> 0)
|
||||||
|
|
|
@ -1,7 +1,11 @@
|
||||||
.define .mli
|
.define .mli
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
|
|
||||||
.text
|
.sect .text
|
||||||
.mli:
|
.mli:
|
||||||
move.l (sp)+,a0
|
move.l (sp)+,a0
|
||||||
move.l (sp)+,d1
|
move.l (sp)+,d1
|
||||||
|
|
|
@ -1,11 +1,15 @@
|
||||||
.define .mlu
|
.define .mlu
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
! entry : d0 multiplicand
|
! entry : d0 multiplicand
|
||||||
! d1 multiplier
|
! d1 multiplier
|
||||||
! exit : d0 high order result
|
! exit : d0 high order result
|
||||||
! d1 low order result
|
! d1 low order result
|
||||||
|
|
||||||
.text
|
.sect .text
|
||||||
.mlu:
|
.mlu:
|
||||||
move.l (sp)+,a1
|
move.l (sp)+,a1
|
||||||
move.l (sp)+,d1
|
move.l (sp)+,d1
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
.define .mon
|
.define .mon
|
||||||
.text
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
.sect .text
|
||||||
.mon:
|
.mon:
|
||||||
move.l (sp)+,a0
|
move.l (sp)+,a0
|
||||||
pea fmt
|
pea fmt
|
||||||
|
@ -7,6 +11,6 @@
|
||||||
add #6,sp
|
add #6,sp
|
||||||
jmp EXIT
|
jmp EXIT
|
||||||
|
|
||||||
.data
|
.sect .data
|
||||||
fmt: .asciz "system call %d not implemented"
|
fmt: .asciz "system call %d not implemented"
|
||||||
.align 2
|
.align 2
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
.define .nop
|
.define .nop
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
.text
|
.sect .text
|
||||||
.nop:
|
.nop:
|
||||||
move.w hol0,-(sp)
|
move.w hol0,-(sp)
|
||||||
pea fmt
|
pea fmt
|
||||||
|
@ -8,6 +12,6 @@
|
||||||
add #6,sp
|
add #6,sp
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.data
|
.sect .data
|
||||||
fmt: .asciz "test %d\n"
|
fmt: .asciz "test %d\n"
|
||||||
.align 2
|
.align 2
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
.define _printn
|
.define _printn
|
||||||
.define _printf
|
.define _printf
|
||||||
.text
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
.sect .text
|
||||||
_putchar:
|
_putchar:
|
||||||
move.w #1,-(sp)
|
move.w #1,-(sp)
|
||||||
pea 7(sp)
|
pea 7(sp)
|
||||||
|
@ -10,14 +14,14 @@ _putchar:
|
||||||
rts
|
rts
|
||||||
_printf:
|
_printf:
|
||||||
link a6,#-12
|
link a6,#-12
|
||||||
.data
|
.sect .data
|
||||||
_12:
|
_12:
|
||||||
.short 28786
|
.data2 28786
|
||||||
.short 26990
|
.data2 26990
|
||||||
.short 29798
|
.data2 29798
|
||||||
.short 11875
|
.data2 11875
|
||||||
.short 0
|
.data2 0
|
||||||
.text
|
.sect .text
|
||||||
pea 8+4(a6)
|
pea 8+4(a6)
|
||||||
move.l (sp)+,-6(a6)
|
move.l (sp)+,-6(a6)
|
||||||
I004:
|
I004:
|
||||||
|
@ -138,15 +142,15 @@ I002:
|
||||||
rts
|
rts
|
||||||
_printn:
|
_printn:
|
||||||
link a6,#-2
|
link a6,#-2
|
||||||
.data
|
.sect .data
|
||||||
_15:
|
_15:
|
||||||
.short 12337
|
.data2 12337
|
||||||
.short 12851
|
.data2 12851
|
||||||
.short 13365
|
.data2 13365
|
||||||
.short 13879
|
.data2 13879
|
||||||
.short 14393
|
.data2 14393
|
||||||
.short 0
|
.data2 0
|
||||||
.text
|
.sect .text
|
||||||
move.w 8+0(a6),-(sp)
|
move.w 8+0(a6),-(sp)
|
||||||
move.w #10,-(sp)
|
move.w #10,-(sp)
|
||||||
move.w (sp)+,d0
|
move.w (sp)+,d0
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
.define .rck
|
.define .rck
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
.text
|
.sect .text
|
||||||
.rck:
|
.rck:
|
||||||
move.l (sp)+,a1
|
move.l (sp)+,a1
|
||||||
move.l (sp)+,a0 ! descriptor address
|
move.l (sp)+,a0 ! descriptor address
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
.define .ret
|
.define .ret
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
.text
|
.sect .text
|
||||||
.ret:
|
.ret:
|
||||||
beq 3f
|
beq 3f
|
||||||
cmp #2,d0
|
cmp #2,d0
|
||||||
|
|
|
@ -1,8 +1,12 @@
|
||||||
.define .set
|
.define .set
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
! d0 : setsize in bytes
|
! d0 : setsize in bytes
|
||||||
! d1 : bitnumber
|
! d1 : bitnumber
|
||||||
.text
|
.sect .text
|
||||||
.set:
|
.set:
|
||||||
move.l (sp)+,a0
|
move.l (sp)+,a0
|
||||||
move.w (sp)+,d1
|
move.w (sp)+,d1
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
.define .strhp
|
.define .strhp
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
.text
|
.sect .text
|
||||||
.strhp:
|
.strhp:
|
||||||
move.l (sp)+,a0
|
move.l (sp)+,a0
|
||||||
move.l (sp)+,d0 ! heap pointer
|
move.l (sp)+,d0 ! heap pointer
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
.define .sig
|
.define .sig
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
.text
|
.sect .text
|
||||||
.sig:
|
.sig:
|
||||||
move.l (sp)+,a0
|
move.l (sp)+,a0
|
||||||
move.l (sp)+,a1 ! trap pc
|
move.l (sp)+,a1 ! trap pc
|
||||||
|
|
|
@ -1,8 +1,12 @@
|
||||||
.define .sts
|
.define .sts
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
! d0 : # bytes
|
! d0 : # bytes
|
||||||
! a0 : destination address
|
! a0 : destination address
|
||||||
.text
|
.sect .text
|
||||||
.sts:
|
.sts:
|
||||||
move.l (sp)+,a1
|
move.l (sp)+,a1
|
||||||
move.w (sp)+,d0
|
move.w (sp)+,d0
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
.define .trp
|
.define .trp
|
||||||
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
.text
|
.sect .text
|
||||||
.trp:
|
.trp:
|
||||||
move.l (sp)+,a1 ! return address
|
move.l (sp)+,a1 ! return address
|
||||||
move.w (sp)+,d0 ! error number
|
move.w (sp)+,d0 ! error number
|
||||||
|
@ -30,7 +34,7 @@
|
||||||
jsr .diagnos
|
jsr .diagnos
|
||||||
jmp EXIT
|
jmp EXIT
|
||||||
|
|
||||||
.data
|
.sect .data
|
||||||
.rettrp: .long 0
|
.rettrp: .data4 0
|
||||||
fmt: .asciz "trap %d called\n"
|
fmt: .asciz "trap %d called\n"
|
||||||
.align 2
|
.align 2
|
||||||
|
|
|
@ -1,23 +1,18 @@
|
||||||
.define CERASE,CKILL,CSTOP,CSTART
|
|
||||||
.define .lino,.filn
|
.define .lino,.filn
|
||||||
|
.define EXIT
|
||||||
.define F_DUM,EXIT
|
|
||||||
|
|
||||||
.define begtext,begdata,begbss
|
.define begtext,begdata,begbss
|
||||||
.define EARRAY,ERANGE,ESET,EIDIVZ,EHEAP,EILLINS,ECASE,EBADGTO
|
.define EARRAY,ERANGE,ESET,EIDIVZ,EHEAP,EILLINS,ECASE,EBADGTO
|
||||||
.define hol0,.reghp,.limhp,.trpim,.trppc
|
.define hol0,.reghp,.limhp,.trpim,.trppc
|
||||||
.define LINO_AD,FILN_AD
|
.sect .text
|
||||||
|
.sect .rom
|
||||||
|
.sect .data
|
||||||
|
.sect .bss
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
! EM runtime start-off for the Bleasdale 68000 system
|
! EM runtime start-off for the Bleasdale 68000 system
|
||||||
|
|
||||||
|
|
||||||
CERASE = 010
|
|
||||||
CKILL = 030
|
|
||||||
CSTART = 021
|
|
||||||
CSTOP = 023
|
|
||||||
F_DUM = 0
|
|
||||||
|
|
||||||
|
|
||||||
LINO_AD = 0
|
LINO_AD = 0
|
||||||
FILN_AD = 4
|
FILN_AD = 4
|
||||||
|
|
||||||
|
@ -30,8 +25,7 @@ EILLINS = 18
|
||||||
ECASE = 20
|
ECASE = 20
|
||||||
EBADGTO = 27
|
EBADGTO = 27
|
||||||
|
|
||||||
.base 0x20000
|
.sect .text
|
||||||
.text
|
|
||||||
begtext:
|
begtext:
|
||||||
! Bleasdale puts the argument and environment vectors
|
! Bleasdale puts the argument and environment vectors
|
||||||
! themselves on top of the stack, instead of POINTERS
|
! themselves on top of the stack, instead of POINTERS
|
||||||
|
@ -57,30 +51,27 @@ begtext:
|
||||||
! envp pointer.
|
! envp pointer.
|
||||||
|
|
||||||
add.l #2,sp !convert argc from 4-byte to 2-byte
|
add.l #2,sp !convert argc from 4-byte to 2-byte
|
||||||
pea endbss
|
|
||||||
jsr _brk
|
|
||||||
add.l #4,sp
|
|
||||||
jsr _m_a_i_n
|
jsr _m_a_i_n
|
||||||
add #010,sp
|
add #010,sp
|
||||||
EXIT:
|
EXIT:
|
||||||
jsr __exit
|
jsr __exit
|
||||||
|
|
||||||
.data
|
.sect .data
|
||||||
begdata:
|
begdata:
|
||||||
hol0:
|
hol0:
|
||||||
.lino:
|
.lino:
|
||||||
.short 0,0 ! lino
|
.data2 0,0 ! lino
|
||||||
.filn:
|
.filn:
|
||||||
.long 0 ! filn
|
.data4 0 ! filn
|
||||||
.reghp:
|
.reghp:
|
||||||
.long endbss
|
.data4 endbss
|
||||||
.limhp:
|
.limhp:
|
||||||
.long endbss
|
.data4 endbss
|
||||||
.trppc:
|
.trppc:
|
||||||
.long 0
|
.data4 0
|
||||||
.trpim:
|
.trpim:
|
||||||
.short 0
|
.data2 0
|
||||||
|
|
||||||
|
|
||||||
.bss
|
.sect .bss
|
||||||
begbss:
|
begbss: !initialization is not needed because ALL entries are in zero space!
|
||||||
|
|
Loading…
Reference in a new issue