converted to ACK assembler format
This commit is contained in:
parent
7abf78f452
commit
04dc83c149
74 changed files with 560 additions and 491 deletions
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.globl PRr2,PR2r2,PR4r2,PR6r2
|
.define PRr2,PR2r2,PR4r2,PR6r2
|
||||||
.globl PRr2r4,PR2r2r4,PR4r2r4,PR6r2r4
|
.define PRr2r4,PR2r2r4,PR4r2r4,PR6r2r4
|
||||||
.globl RT,RTr2,RTr2r4
|
.define RT,RTr2,RTr2r4
|
||||||
|
! $Header$
|
||||||
|
|
||||||
PR6r2: mov $6,r0;br PRr2
|
PR6r2: mov $6,r0;br PRr2
|
||||||
PR4r2: mov $4,r0;br PRr2
|
PR4r2: mov $4,r0;br PRr2
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl aar~
|
.define aar~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
/r0 : descriptor address
|
!r0 : descriptor address
|
||||||
/r1 : element number
|
!r1 : element number
|
||||||
/base address is on stack
|
!base address is on stack
|
||||||
aar~:
|
aar~:
|
||||||
sub (r0),r1
|
sub (r0),r1
|
||||||
mul 04(r0),r1
|
mul 04(r0),r1
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl adf~
|
.define adf~
|
||||||
.globl setfloat~
|
.extern setfloat~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
/size in r0
|
!size in r0
|
||||||
adf~:
|
adf~:
|
||||||
mov (sp)+,r1
|
mov (sp)+,r1
|
||||||
jsr pc,setfloat~
|
jsr pc,setfloat~
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl adi~
|
.define adi~
|
||||||
.globl unknown~
|
.extern unknown~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
/size in r0
|
!size in r0
|
||||||
adi~:
|
adi~:
|
||||||
mov (sp)+,r1
|
mov (sp)+,r1
|
||||||
cmp r0,$04
|
cmp r0,$04
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl and~
|
.define and~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
/ size in r0
|
! size in r0
|
||||||
and~:
|
and~:
|
||||||
mov (sp)+,r3
|
mov (sp)+,r3
|
||||||
mov sp,r1
|
mov sp,r1
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl cff~
|
.define cff~
|
||||||
.globl setfloat~
|
.extern setfloat~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
cff~:
|
cff~:
|
||||||
mov (sp)+,r1
|
mov (sp)+,r1
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl cfi~
|
.define cfi~
|
||||||
.globl setfloat~,setint~
|
.extern setfloat~,setint~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
cfi~:
|
cfi~:
|
||||||
mov (sp)+,r1
|
mov (sp)+,r1
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl cif~,cuf~
|
.define cif~,cuf~
|
||||||
.globl setint~,setfloat~
|
.extern setint~,setfloat~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
cif~:
|
cif~:
|
||||||
mov (sp)+,r1
|
mov (sp)+,r1
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl cii~
|
.define cii~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
/convert int to int
|
!convert int to int
|
||||||
/ 1 byte -> ? : sign extension
|
! 1 byte -> ? : sign extension
|
||||||
cii~:
|
cii~:
|
||||||
mov (sp)+,r3
|
mov (sp)+,r3
|
||||||
mov (sp)+,r0
|
mov (sp)+,r0
|
||||||
|
@ -18,5 +19,5 @@ cii~:
|
||||||
tst (sp)
|
tst (sp)
|
||||||
4: sxt -(sp)
|
4: sxt -(sp)
|
||||||
sob r0,4b
|
sob r0,4b
|
||||||
1: sub r0,sp / if out of sob loop r0==0
|
1: sub r0,sp ! if out of sob loop r0==0
|
||||||
3: jmp (r3)
|
3: jmp (r3)
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl cuu~
|
.define cuu~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
cuu~:
|
cuu~:
|
||||||
mov (sp)+,r1
|
mov (sp)+,r1
|
||||||
mov (sp)+,r0
|
mov (sp)+,r0
|
||||||
|
@ -9,5 +11,5 @@ cuu~:
|
||||||
asr r0
|
asr r0
|
||||||
2: clr -(sp)
|
2: clr -(sp)
|
||||||
sob r0,2b
|
sob r0,2b
|
||||||
1: sub r0,sp / if out of sob loop r0==0
|
1: sub r0,sp ! if out of sob loop r0==0
|
||||||
jmp (r1)
|
jmp (r1)
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl cmf~
|
.define cmf~
|
||||||
.globl setfloat~
|
.extern setfloat~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
cmf~:
|
cmf~:
|
||||||
jsr pc,setfloat~
|
jsr pc,setfloat~
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl cmi~
|
.define cmi~
|
||||||
.globl cmi4~,unknown~
|
.extern cmi4~,unknown~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
/ Size in r0
|
! Size in r0
|
||||||
cmi~:
|
cmi~:
|
||||||
cmp r0,$02
|
cmp r0,$02
|
||||||
bne 1f
|
bne 1f
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl cmi4~
|
.define cmi4~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
cmi4~:
|
cmi4~:
|
||||||
mov (sp)+,r1
|
mov (sp)+,r1
|
||||||
|
@ -17,5 +18,5 @@ cmi4~:
|
||||||
1:
|
1:
|
||||||
dec r0
|
dec r0
|
||||||
3:
|
3:
|
||||||
add $10,sp
|
add $010,sp
|
||||||
jmp (r1)
|
jmp (r1)
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl cms~
|
.define cms~
|
||||||
.globl save~,retu~
|
.extern save~,retu~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
cms~:
|
cms~:
|
||||||
jsr pc,save~
|
jsr pc,save~
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl cmu~
|
.define cmu~
|
||||||
.globl unknown~,cmu4~
|
.extern unknown~,cmu4~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
cmu~:
|
cmu~:
|
||||||
cmp r0,$02
|
cmp r0,$02
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl cmu4~
|
.define cmu4~
|
||||||
|
! $Header$
|
||||||
cmu4~:
|
cmu4~:
|
||||||
mov (sp)+,r1
|
mov (sp)+,r1
|
||||||
clr r0
|
clr r0
|
||||||
|
@ -16,5 +17,5 @@ cmu4~:
|
||||||
1:
|
1:
|
||||||
dec r0
|
dec r0
|
||||||
3:
|
3:
|
||||||
add $10,sp
|
add $010,sp
|
||||||
jmp (r1)
|
jmp (r1)
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl csa~
|
.define csa~
|
||||||
.globl fat~
|
.extern fat~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
ECASE = 20.
|
ECASE = 024
|
||||||
|
|
||||||
csa~:
|
csa~:
|
||||||
sub 02(r0),r1
|
sub 02(r0),r1
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl csb~
|
.define csb~
|
||||||
.globl fat~
|
.extern fat~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
ECASE = 20.
|
ECASE = 024
|
||||||
|
|
||||||
csb~:
|
csb~:
|
||||||
mov (r0)+,-(sp)
|
mov (r0)+,-(sp)
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl dup~
|
.define dup~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
dup~:
|
dup~:
|
||||||
mov (sp)+,r3
|
mov (sp)+,r3
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl dvf~
|
.define dvf~
|
||||||
.globl setfloat~
|
.extern setfloat~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
dvf~:
|
dvf~:
|
||||||
mov (sp)+,r1
|
mov (sp)+,r1
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl dvi~
|
.define dvi~
|
||||||
.globl unknown~,dvi4~
|
.extern unknown~,dvi4~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
dvi~:
|
dvi~:
|
||||||
mov (sp)+,r3
|
mov (sp)+,r3
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl dvi4~
|
.define dvi4~
|
||||||
.globl save~,retu~
|
.extern save~,retu~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
dvi4~:
|
dvi4~:
|
||||||
jsr pc,save~
|
jsr pc,save~
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl dvu~
|
.define dvu~
|
||||||
.globl unknown~,dvu4~,dvu2~
|
.extern unknown~,dvu4~,dvu2~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
dvu~:
|
dvu~:
|
||||||
mov (sp)+,r3
|
mov (sp)+,r3
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl dvu2~
|
.define dvu2~
|
||||||
|
! $Header$
|
||||||
dvu2~:
|
dvu2~:
|
||||||
clr r0
|
clr r0
|
||||||
mov 04(sp),r1
|
mov 04(sp),r1
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl dvu4~
|
.define dvu4~
|
||||||
.globl save~,retu~
|
.extern save~,retu~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
dvu4~:
|
dvu4~:
|
||||||
jsr pc,save~
|
jsr pc,save~
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.globl eret
|
.define eret
|
||||||
|
! $Header$
|
||||||
|
|
||||||
eret:
|
eret:
|
||||||
mov r5,sp
|
mov r5,sp
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.define exg~
|
||||||
.globl exg~
|
! $Header$
|
||||||
|
|
||||||
exg~: jsr pc,save~
|
exg~: jsr pc,save~
|
||||||
mov sp,r4
|
mov sp,r4
|
||||||
sub r0,sp
|
sub r0,sp
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.define fef~
|
||||||
.globl fef~
|
.extern setfloat~
|
||||||
.globl setfloat~
|
! $Header$
|
||||||
|
|
||||||
fef~:
|
fef~:
|
||||||
mov (sp)+,r1
|
mov (sp)+,r1
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.define fif~
|
||||||
.globl fif~
|
.extern setfloat~
|
||||||
.globl setfloat~
|
! $Header$
|
||||||
|
|
||||||
fif~:
|
fif~:
|
||||||
mov (sp)+,r1
|
mov (sp)+,r1
|
||||||
|
|
|
@ -1,19 +1,20 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl gto~
|
.define gto~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
gto~:
|
gto~:
|
||||||
mov (sp)+,r4
|
mov (sp)+,r4
|
||||||
mov 4(r4),r5
|
mov 4(r4),r5
|
||||||
mov 2(r4),sp
|
mov 2(r4),sp
|
||||||
mov (r4),pc
|
mov (r4),pc
|
||||||
/
|
!
|
||||||
/ mov (sp)+,r3
|
! mov (sp)+,r3
|
||||||
/1: cmp 4(r3),r5
|
!1: cmp 4(r3),r5
|
||||||
/ jeq 2f
|
! jeq 2f
|
||||||
/ mov 2(r5),r4
|
! mov 2(r5),r4
|
||||||
/ mov 4(r5),r2
|
! mov 4(r5),r2
|
||||||
/ mov (r5),r5
|
! mov (r5),r5
|
||||||
/ br 1b
|
! br 1b
|
||||||
/2: mov 2(r3),sp
|
!2: mov 2(r3),sp
|
||||||
/ jmp *(r3)
|
! jmp *(r3)
|
||||||
|
|
|
@ -1,36 +1,34 @@
|
||||||
/ $Header$
|
#
|
||||||
.globl LINO_AD,FILN_AD
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.globl ERANGE,ESET,EHEAP,EILLINS,ECASE
|
.define LINO_AD,FILN_AD
|
||||||
.globl hol0,trppc~,trpim~,reghp~
|
.define ERANGE,ESET,EHEAP,EILLINS,ECASE
|
||||||
|
.define hol0,trppc~,trpim~,reghp~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
rti = 2
|
#define float 1
|
||||||
stst = 170300 ^ tst
|
#define hardfp 1
|
||||||
|
|
||||||
.float = 1 / this should be parameterized somehow
|
LINO_AD = 0
|
||||||
.hardfp = 1 / only relevant if .float on
|
FILN_AD = 4
|
||||||
|
|
||||||
LINO_AD = 0.
|
ERANGE = 1
|
||||||
FILN_AD = 4.
|
ESET = 2
|
||||||
|
EFOVFL = 4
|
||||||
|
EFUNFL = 5
|
||||||
|
EFDIVZ = 7
|
||||||
|
EFUND = 011
|
||||||
|
ECONV = 012
|
||||||
|
EHEAP = 021
|
||||||
|
EILLINS = 022
|
||||||
|
ECASE = 024
|
||||||
|
|
||||||
ERANGE = 1.
|
#ifdef float
|
||||||
ESET = 2.
|
#ifndef hardfp
|
||||||
EFOVFL = 4.
|
! sys 060;.data2 4,fptrap / if not commented it will appear as undefined
|
||||||
EFUNFL = 5.
|
#endif
|
||||||
EFDIVZ = 7.
|
sys 060;.data2 010,sig8
|
||||||
EFUND = 9.
|
ldfps $07600
|
||||||
ECONV = 10.
|
#endif
|
||||||
EHEAP = 17.
|
|
||||||
EILLINS = 18.
|
|
||||||
ECASE = 20.
|
|
||||||
|
|
||||||
.if .float
|
|
||||||
/ .globl fltused; fltused:
|
|
||||||
.if 1 - .hardfp
|
|
||||||
/ sys 48.;4.;fptrap / if not commented it will appear as undefined
|
|
||||||
.endif
|
|
||||||
sys 48.;8.;sig8
|
|
||||||
ldfps $7600
|
|
||||||
.endif
|
|
||||||
mov 2(sp),r0
|
mov 2(sp),r0
|
||||||
clr -2(r0)
|
clr -2(r0)
|
||||||
mov sp,r0
|
mov sp,r0
|
||||||
|
@ -47,30 +45,30 @@ ECASE = 20.
|
||||||
1:
|
1:
|
||||||
mov r0,4(sp)
|
mov r0,4(sp)
|
||||||
jsr pc,_m_a_i_n
|
jsr pc,_m_a_i_n
|
||||||
/ next two lines for as long as tail needs printf
|
! next two lines for as long as tail needs printf
|
||||||
/ mov r0,-(sp)
|
! mov r0,-(sp)
|
||||||
/ jsr pc,*$_exit
|
! jsr pc,*$_exit
|
||||||
sys 1.
|
sys 1
|
||||||
|
|
||||||
.data
|
.sect .data
|
||||||
hol0: 0;0 / line no
|
hol0: .data2 0,0 ! line no
|
||||||
0;0 / file
|
.data2 0,0 ! file
|
||||||
trppc~: 0
|
trppc~: .data2 0
|
||||||
trpim~: 0
|
trpim~: .data2 0
|
||||||
reghp~: _end
|
reghp~: .data2 _end
|
||||||
|
|
||||||
.text
|
.sect .text
|
||||||
sig8:
|
sig8:
|
||||||
.if .float
|
#ifdef float
|
||||||
mov r0,-(sp)
|
mov r0,-(sp)
|
||||||
stst r0
|
stst r0
|
||||||
mov 1f(r0),-(sp)
|
mov 1f(r0),-(sp)
|
||||||
jsr pc,trp~
|
jsr pc,trp~
|
||||||
sys 48.;8.;sig8
|
sys 060;.data2 010,sig8
|
||||||
mov (sp)+,r0
|
mov (sp)+,r0
|
||||||
rti
|
rti
|
||||||
|
|
||||||
.data
|
.sect .data
|
||||||
1: EILLINS; EILLINS; EFDIVZ; ECONV; EFOVFL; EFUNFL; EFUND; EILLINS
|
1: .data2 EILLINS, EILLINS, EFDIVZ, ECONV, EFOVFL, EFUNFL, EFUND, EILLINS
|
||||||
.text
|
.sect .text
|
||||||
.endif
|
#endif
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl hlt~
|
.define hlt~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
exit = 1
|
exit = 1
|
||||||
|
|
||||||
|
@ -8,4 +9,4 @@ hlt~:
|
||||||
mov (sp)+,r0
|
mov (sp)+,r0
|
||||||
bne 1f
|
bne 1f
|
||||||
sys exit
|
sys exit
|
||||||
1: 4
|
1: .data2 4
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl iaar~
|
.define iaar~
|
||||||
.globl aar~,trp~
|
.extern aar~,trp~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
EILLINS = 18.
|
EILLINS = 022
|
||||||
|
|
||||||
iaar~:
|
iaar~:
|
||||||
mov (sp)+,r0
|
mov (sp)+,r0
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl ilar~
|
.define ilar~
|
||||||
.globl lar~,trp~
|
.extern lar~,trp~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
EILLINS = 18.
|
EILLINS = 022
|
||||||
|
|
||||||
ilar~:
|
ilar~:
|
||||||
mov (sp)+,r0
|
mov (sp)+,r0
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl inn~
|
.define inn~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
inn~:
|
inn~:
|
||||||
mov r0,-(sp)
|
mov r0,-(sp)
|
||||||
|
@ -18,5 +19,5 @@ inn~:
|
||||||
add (sp)+,sp
|
add (sp)+,sp
|
||||||
tst (sp)+
|
tst (sp)+
|
||||||
jmp (r1)
|
jmp (r1)
|
||||||
.data
|
.sect .data
|
||||||
bits: .byte 1,2,4,10,20,40,100,200
|
bits: .data1 1,2,4,010,020,040,0100,0200
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl isar~
|
.define isar~
|
||||||
.globl sar~,trp~
|
.extern sar~,trp~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
EILLINS = 18.
|
EILLINS = 022
|
||||||
|
|
||||||
isar~:
|
isar~:
|
||||||
mov (sp)+,r0
|
mov (sp)+,r0
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl lar~
|
.define lar~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
lar~:
|
lar~:
|
||||||
mov (sp)+,r3
|
mov (sp)+,r3
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl los2~
|
.define los2~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
los2~:
|
los2~:
|
||||||
mov (sp)+,r3
|
mov (sp)+,r3
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl mlf~
|
.define mlf~
|
||||||
.globl setfloat~
|
.extern setfloat~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
mlf~:
|
mlf~:
|
||||||
mov (sp)+,r1
|
mov (sp)+,r1
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl mli~
|
.define mli~
|
||||||
.globl unknown~,mli4~
|
.extern unknown~,mli4~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
mli~:
|
mli~:
|
||||||
cmp r0,$04
|
cmp r0,$04
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl mli4~
|
.define mli4~
|
||||||
.globl save~,retu~
|
.extern save~,retu~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
mli4~:
|
mli4~:
|
||||||
jsr pc,save~
|
jsr pc,save~
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl mlu~
|
.define mlu~
|
||||||
.globl unknown~,mlu4~
|
.extern unknown~,mlu4~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
mlu~:
|
mlu~:
|
||||||
cmp r0,$04
|
cmp r0,$04
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl mlu4~
|
.define mlu4~
|
||||||
.globl save~,retu~
|
.extern save~,retu~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
mlu4~:
|
mlu4~:
|
||||||
jsr pc,save~
|
jsr pc,save~
|
||||||
|
|
|
@ -1,25 +1,26 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
! $Header$
|
||||||
.globl mon~
|
.sect .text
|
||||||
.globl sigtrp~,save~,retu~,save1~
|
.define mon~
|
||||||
|
.extern sigtrp~,save~,retu~,save1~
|
||||||
|
|
||||||
indir = 0
|
indir = 0
|
||||||
fork = 2
|
fork = 2
|
||||||
getpid = 20.
|
getpid = 024
|
||||||
sigtrp = 48.
|
sigtrp = 060
|
||||||
EBADMON = 25.
|
EBADMON = 031
|
||||||
|
|
||||||
HBMASK = 0177400
|
HBMASK = 0177400
|
||||||
REG01M = 030
|
REG01M = 030
|
||||||
REG1M = 020
|
REG1M = 020
|
||||||
ERRMASK = 040
|
ERRMASK = 040
|
||||||
|
|
||||||
/ Associated with every monitor call is a descriptor.
|
! Associated with every monitor call is a descriptor.
|
||||||
/ The low order three bits describe how values are returned,
|
! The low order three bits describe how values are returned,
|
||||||
/ the next two bits specify if arguments are expected in
|
! the next two bits specify if arguments are expected in
|
||||||
/ r0 and/or r1, the next bit is not used, and the next
|
! r0 and/or r1, the next bit is not used, and the next
|
||||||
/ three bits specify the number of arguments disregarding
|
! three bits specify the number of arguments disregarding
|
||||||
/ arguments in registers.
|
! arguments in registers.
|
||||||
|
|
||||||
mon~:
|
mon~:
|
||||||
cmp 02(sp),$sigtrp
|
cmp 02(sp),$sigtrp
|
||||||
|
@ -37,7 +38,7 @@ mon~:
|
||||||
bne 2f
|
bne 2f
|
||||||
jbr fork~
|
jbr fork~
|
||||||
2: bic $HBMASK,r2
|
2: bic $HBMASK,r2
|
||||||
bis $sys,r2
|
bis $0104400,r2 ! sys = 0104400
|
||||||
mov r2,9f
|
mov r2,9f
|
||||||
bit $REG01M,r3
|
bit $REG01M,r3
|
||||||
beq 1f
|
beq 1f
|
||||||
|
@ -50,7 +51,7 @@ mon~:
|
||||||
mov $[9f+2],r2
|
mov $[9f+2],r2
|
||||||
1: mov (sp)+,(r2)+
|
1: mov (sp)+,(r2)+
|
||||||
sob r3,1b
|
sob r3,1b
|
||||||
2: sys indir ; 9f
|
2: sys indir ; .data2 9f
|
||||||
bcs 2f
|
bcs 2f
|
||||||
clr r3
|
clr r3
|
||||||
4: asr r4
|
4: asr r4
|
||||||
|
@ -79,68 +80,68 @@ err:
|
||||||
jsr pc,trp~
|
jsr pc,trp~
|
||||||
tst (sp)+
|
tst (sp)+
|
||||||
jmp retu~
|
jmp retu~
|
||||||
.data
|
.sect .data
|
||||||
.even
|
.align 1
|
||||||
9: .=.+12.
|
9: .space 12
|
||||||
args: ERRMASK / 0 : error
|
args: .data2 ERRMASK ! 0 : error
|
||||||
010 / 1 : exit(st); ---
|
.data2 010 ! 1 : exit(st); ---
|
||||||
07 / 2 : fork(); e10
|
.data2 07 ! 2 : fork(); e10
|
||||||
0215 / 3 : read(addr,nb,fild); e-0
|
.data2 0215 ! 3 : read(addr,nb,fild); e-0
|
||||||
0215 / 4 : write(addr,nb,fild); e-0
|
.data2 0215 ! 4 : write(addr,nb,fild); e-0
|
||||||
0205 / 5 : open(str,flag); e-0
|
.data2 0205 ! 5 : open(str,flag); e-0
|
||||||
014 / 6 : close(fild); e--
|
.data2 014 ! 6 : close(fild); e--
|
||||||
07 / 7 : wait(); e10
|
.data2 07 ! 7 : wait(); e10
|
||||||
0205 / 8 : creat(str,mode); e-0
|
.data2 0205 ! 8 : creat(str,mode); e-0
|
||||||
0204 / 9 : link(str1,str2); e--
|
.data2 0204 ! 9 : link(str1,str2); e--
|
||||||
0104 /10 : unlink(str); e--
|
.data2 0104 !10 : unlink(str); e--
|
||||||
ERRMASK /11 : error
|
.data2 ERRMASK !11 : error
|
||||||
0104 /12 : chdir(str); e--
|
.data2 0104 !12 : chdir(str); e--
|
||||||
03 /13 : time(); -10
|
.data2 03 !13 : time(); -10
|
||||||
0304 /14 : mknod(str,mode,addr); e--
|
.data2 0304 !14 : mknod(str,mode,addr); e--
|
||||||
0204 /15 : chmod(str,mode); e--
|
.data2 0204 !15 : chmod(str,mode); e--
|
||||||
0304 /16 : chown(str,owner,grp); e--
|
.data2 0304 !16 : chown(str,owner,grp); e--
|
||||||
ERRMASK /17 : error
|
.data2 ERRMASK !17 : error
|
||||||
0204 /18 : stat(str,buf); e--
|
.data2 0204 !18 : stat(str,buf); e--
|
||||||
0217 /19 : lseek(high,low,fild); e10
|
.data2 0217 !19 : lseek(high,low,fild); e10
|
||||||
01 /20 : getpid(); --0
|
.data2 01 !20 : getpid(); --0
|
||||||
0304 /21 : mount(str1,str2,fl); e--
|
.data2 0304 !21 : mount(str1,str2,fl); e--
|
||||||
0104 /22 : umount(str); e--
|
.data2 0104 !22 : umount(str); e--
|
||||||
014 /23 : setuid(uid); e--
|
.data2 014 !23 : setuid(uid); e--
|
||||||
03 /24 : getuid(); -01
|
.data2 03 !24 : getuid(); -01
|
||||||
024 /25 : stime(high,low); e--
|
.data2 024 !25 : stime(high,low); e--
|
||||||
0315 /26 : ptrace(pid,addr,req,d); e-0
|
.data2 0315 !26 : ptrace(pid,addr,req,d); e-0
|
||||||
011 /27 : alarm(sec); --0
|
.data2 011 !27 : alarm(sec); --0
|
||||||
0114 /28 : fstat(buf,fild); e--
|
.data2 0114 !28 : fstat(buf,fild); e--
|
||||||
0 /29 : pause(); ---
|
.data2 0 !29 : pause(); ---
|
||||||
0204 /30 : utime(str,timep); e--
|
.data2 0204 !30 : utime(str,timep); e--
|
||||||
ERRMASK /31 : error
|
.data2 ERRMASK !31 : error
|
||||||
ERRMASK /32 : error
|
.data2 ERRMASK !32 : error
|
||||||
0204 /33 : access(str,mode): e--
|
.data2 0204 !33 : access(str,mode): e--
|
||||||
010 /34 : nice(incr); ---
|
.data2 010 !34 : nice(incr); ---
|
||||||
0100 /35 : ftime(bufp); ---
|
.data2 0100 !35 : ftime(bufp); ---
|
||||||
0 /36 : sync(); ---
|
.data2 0 !36 : sync(); ---
|
||||||
0114 /37 : kill(sig,pid); e--
|
.data2 0114 !37 : kill(sig,pid); e--
|
||||||
ERRMASK /38 : error
|
.data2 ERRMASK !38 : error
|
||||||
ERRMASK /39 : error
|
.data2 ERRMASK !39 : error
|
||||||
ERRMASK /40 : error
|
.data2 ERRMASK !40 : error
|
||||||
025 /41 : dup(fild,newfild); e-0
|
.data2 025 !41 : dup(fild,newfild); e-0
|
||||||
07 /42 : pipe(); e10
|
.data2 07 !42 : pipe(); e10
|
||||||
0100 /43 : times(buf); ---
|
.data2 0100 !43 : times(buf); ---
|
||||||
0400 /44 : profil(buff,siz,off,sc); ---
|
.data2 0400 !44 : profil(buff,siz,off,sc); ---
|
||||||
ERRMASK /45 : error
|
.data2 ERRMASK !45 : error
|
||||||
014 /46 : setgid(gid); e--
|
.data2 014 !46 : setgid(gid); e--
|
||||||
03 /47 : getgid(); -01
|
.data2 03 !47 : getgid(); -01
|
||||||
0 /48 : sigtrp(trap,sig); e-0; SPECIAL TREATMENT
|
.data2 0 !48 : sigtrp(trap,sig); e-0; SPECIAL TREATMENT
|
||||||
ERRMASK /49 : error
|
.data2 ERRMASK !49 : error
|
||||||
ERRMASK /50 : error
|
.data2 ERRMASK !50 : error
|
||||||
0104 /51 : acct(file); e--
|
.data2 0104 !51 : acct(file); e--
|
||||||
0304 /52 : phys(seg,siz,phaddr); e--
|
.data2 0304 !52 : phys(seg,siz,phaddr); e--
|
||||||
0104 /53 : lock(flag); e--
|
.data2 0104 !53 : lock(flag); e--
|
||||||
0304 /54 : ioctl(fild,req,argp); e--
|
.data2 0304 !54 : ioctl(fild,req,argp); e--
|
||||||
ERRMASK /55 : error
|
.data2 ERRMASK !55 : error
|
||||||
0204 /56 : mpxcall(cmd,vec); e--
|
.data2 0204 !56 : mpxcall(cmd,vec); e--
|
||||||
ERRMASK /57 : error
|
.data2 ERRMASK !57 : error
|
||||||
ERRMASK /58 : error
|
.data2 ERRMASK !58 : error
|
||||||
0304 /59 : exece(name,argv,envp); e--
|
.data2 0304 !59 : exece(name,argv,envp); e--
|
||||||
0104 /60 : umask(complmode); e--
|
.data2 0104 !60 : umask(complmode); e--
|
||||||
0104 /61 : chroot(str); e--
|
.data2 0104 !61 : chroot(str); e--
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl ngf~
|
.define ngf~
|
||||||
.globl setfloat~
|
.extern setfloat~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
ngf~:
|
ngf~:
|
||||||
jsr pc,setfloat~
|
jsr pc,setfloat~
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl ngi~
|
.define ngi~
|
||||||
.globl unknown~
|
.extern unknown~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
ngi~:
|
ngi~:
|
||||||
mov (sp)+,r1
|
mov (sp)+,r1
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl nop~
|
.define nop~
|
||||||
.globl hol0,prf~
|
.extern hol0,prf~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
nop~:
|
nop~:
|
||||||
mov hol0,-(sp)
|
mov hol0,-(sp)
|
||||||
|
@ -9,5 +10,5 @@ nop~:
|
||||||
jsr pc,prf~
|
jsr pc,prf~
|
||||||
add $04,sp
|
add $04,sp
|
||||||
rts pc
|
rts pc
|
||||||
.data
|
.sect .data
|
||||||
fmt: <test %d\n\0>
|
fmt: .asciz "test %d\n"
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl prf~
|
.define prf~
|
||||||
.globl save~,retu~,hol0,_printf
|
.extern save~,retu~,hol0,_printf
|
||||||
|
! $Header$
|
||||||
|
|
||||||
prf~:
|
prf~:
|
||||||
jsr pc,save~
|
jsr pc,save~
|
||||||
|
@ -9,7 +10,7 @@ prf~:
|
||||||
mov hol0+4,r0
|
mov hol0+4,r0
|
||||||
beq 1f
|
beq 1f
|
||||||
mov r0,r2
|
mov r0,r2
|
||||||
mov $40.,r1
|
mov $050,r1
|
||||||
3: movb (r2)+,r3
|
3: movb (r2)+,r3
|
||||||
beq 2f
|
beq 2f
|
||||||
cmpb r3,$0177
|
cmpb r3,$0177
|
||||||
|
@ -29,6 +30,6 @@ prf~:
|
||||||
1: mov $name,r0
|
1: mov $name,r0
|
||||||
br 2b
|
br 2b
|
||||||
|
|
||||||
.data
|
.sect .data
|
||||||
fmt: <"%s", sp = %d, line %d: \0>
|
fmt: .asciz "\"%s\", sp = %d, line %d: "
|
||||||
name: <_unknown file_\0>
|
name: .asciz "_unknown file_"
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl _printf
|
.define _printf
|
||||||
|
! $Header$
|
||||||
|
|
||||||
write = 4
|
write = 4
|
||||||
|
|
||||||
|
@ -54,10 +55,10 @@ ready:
|
||||||
mov $buff,9f
|
mov $buff,9f
|
||||||
mov r4,9f+2
|
mov r4,9f+2
|
||||||
sys write
|
sys write
|
||||||
9: 0; 0
|
9: .data2 0, 0
|
||||||
mov (sp)+,r4
|
mov (sp)+,r4
|
||||||
mov (sp)+,r3
|
mov (sp)+,r3
|
||||||
mov (sp)+,r2
|
mov (sp)+,r2
|
||||||
rts pc
|
rts pc
|
||||||
.data
|
.sect .bss
|
||||||
buff: .=.+256.
|
buff: .space 256
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl rck~
|
.define rck~
|
||||||
.globl trp~
|
.extern trp~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
ERANGE = 1
|
ERANGE = 1
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl ret~,lfr~,retar
|
.define ret~,lfr~
|
||||||
.globl unknown~
|
.extern unknown~, retar
|
||||||
|
! $Header$
|
||||||
|
|
||||||
/ Size in r0
|
! Size in r0
|
||||||
ret~:
|
ret~:
|
||||||
mov r0,r1
|
mov r0,r1
|
||||||
beq 1f
|
beq 1f
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl rmi~
|
.define rmi~
|
||||||
.globl unknown~,rmi4~
|
.extern unknown~,rmi4~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
rmi~:
|
rmi~:
|
||||||
mov (sp)+,r3
|
mov (sp)+,r3
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl rmi4~
|
.define rmi4~
|
||||||
.globl save~,retu~
|
.extern save~,retu~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
rmi4~:
|
rmi4~:
|
||||||
jsr pc,save~
|
jsr pc,save~
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl rmu~
|
.define rmu~
|
||||||
.globl rmu2~,rmu4~,unknown~
|
.extern rmu2~,rmu4~,unknown~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
rmu~:
|
rmu~:
|
||||||
mov (sp)+,r3
|
mov (sp)+,r3
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl rmu2~
|
.define rmu2~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
rmu2~:
|
rmu2~:
|
||||||
mov 04(sp),r1
|
mov 04(sp),r1
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl rmu4~
|
.define rmu4~
|
||||||
.globl save~,retu~
|
.extern save~,retu~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
rmu4~:
|
rmu4~:
|
||||||
jsr pc,save~
|
jsr pc,save~
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl rol~
|
.define rol~
|
||||||
.globl save~,retu~
|
.extern save~,retu~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
rol~:
|
rol~:
|
||||||
jsr pc,save~
|
jsr pc,save~
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl ror~
|
.define ror~
|
||||||
.globl save~,retu~
|
.extern save~,retu~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
ror~:
|
ror~:
|
||||||
asr r0
|
asr r0
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl sar~
|
.define sar~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
sar~:
|
sar~:
|
||||||
mov (sp)+,r3
|
mov (sp)+,r3
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl save~,retu~,savearea
|
.define save~,retu~,savearea
|
||||||
|
! $Header$
|
||||||
|
|
||||||
save~:
|
save~:
|
||||||
mov r5,savearea
|
mov r5,savearea
|
||||||
|
@ -19,7 +20,6 @@ retu~:
|
||||||
mov -(r5),r5
|
mov -(r5),r5
|
||||||
rts pc
|
rts pc
|
||||||
|
|
||||||
.data
|
.sect .bss
|
||||||
.even
|
|
||||||
savearea:
|
savearea:
|
||||||
.=.+12.
|
.space 12
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl sbf~
|
.define sbf~
|
||||||
.globl setfloat~
|
.extern setfloat~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
sbf~:
|
sbf~:
|
||||||
mov (sp)+,r1
|
mov (sp)+,r1
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl sbi~
|
.define sbi~
|
||||||
.globl unknown~
|
.extern unknown~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
sbi~:
|
sbi~:
|
||||||
mov (sp)+,r1
|
mov (sp)+,r1
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl set~
|
.define set~
|
||||||
.globl save~,retu~,trp~
|
.extern save~,retu~,trp~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
ESET = 2
|
ESET = 2
|
||||||
|
|
||||||
|
@ -11,7 +12,7 @@ set~:
|
||||||
asr r0
|
asr r0
|
||||||
1: clr -(sp)
|
1: clr -(sp)
|
||||||
sob r0,1b
|
sob r0,1b
|
||||||
div $8.,r0
|
div $010,r0
|
||||||
cmp r0,r2
|
cmp r0,r2
|
||||||
blo 2f
|
blo 2f
|
||||||
mov $ESET,-(sp)
|
mov $ESET,-(sp)
|
||||||
|
@ -21,5 +22,5 @@ set~:
|
||||||
bisb bits(r1),(r0)
|
bisb bits(r1),(r0)
|
||||||
jmp retu~
|
jmp retu~
|
||||||
|
|
||||||
.data
|
.sect .data
|
||||||
bits: .byte 1,2,4,10,20,40,100,200
|
bits: .data1 1,2,4,010,020,040,0100,0200
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl setfloat~,setint~
|
.define setfloat~,setint~
|
||||||
.globl unknown~
|
.extern unknown~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
setfloat~:
|
setfloat~:
|
||||||
cmp r0,$8.
|
cmp r0,$8.
|
||||||
|
|
|
@ -1,40 +1,39 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl sigtrp~
|
.define sigtrp~
|
||||||
.globl trp~,save~,retu~
|
.define trp~,save~,retu~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
indir = 0
|
indir = 0
|
||||||
signal = 48.
|
signal = 060
|
||||||
|
|
||||||
rti = 2
|
sig1: mov sig.trp+0,-(sp)
|
||||||
|
|
||||||
sig1: mov sig.trp+0.,-(sp)
|
|
||||||
br 1f
|
br 1f
|
||||||
sig2: mov sig.trp+2.,-(sp)
|
sig2: mov sig.trp+2,-(sp)
|
||||||
br 1f
|
br 1f
|
||||||
sig3: mov sig.trp+4.,-(sp)
|
sig3: mov sig.trp+4,-(sp)
|
||||||
br 1f
|
br 1f
|
||||||
sig4: mov sig.trp+6.,-(sp)
|
sig4: mov sig.trp+6,-(sp)
|
||||||
br 1f
|
br 1f
|
||||||
sig5: mov sig.trp+8.,-(sp)
|
sig5: mov sig.trp+010,-(sp)
|
||||||
br 1f
|
br 1f
|
||||||
sig6: mov sig.trp+10.,-(sp)
|
sig6: mov sig.trp+012,-(sp)
|
||||||
br 1f
|
br 1f
|
||||||
sig7: mov sig.trp+12.,-(sp)
|
sig7: mov sig.trp+014,-(sp)
|
||||||
br 1f
|
br 1f
|
||||||
sig10: mov sig.trp+18.,-(sp)
|
sig10: mov sig.trp+022,-(sp)
|
||||||
br 1f
|
br 1f
|
||||||
sig11: mov sig.trp+20.,-(sp)
|
sig11: mov sig.trp+024,-(sp)
|
||||||
br 1f
|
br 1f
|
||||||
sig12: mov sig.trp+22.,-(sp)
|
sig12: mov sig.trp+026,-(sp)
|
||||||
br 1f
|
br 1f
|
||||||
sig13: mov sig.trp+24.,-(sp)
|
sig13: mov sig.trp+030,-(sp)
|
||||||
br 1f
|
br 1f
|
||||||
sig14: mov sig.trp+026.,-(sp)
|
sig14: mov sig.trp+032,-(sp)
|
||||||
br 1f
|
br 1f
|
||||||
sig15: mov sig.trp+028.,-(sp)
|
sig15: mov sig.trp+034,-(sp)
|
||||||
br 1f
|
br 1f
|
||||||
sig16: mov sig.trp+030.,-(sp)
|
sig16: mov sig.trp+036,-(sp)
|
||||||
br 1f
|
br 1f
|
||||||
1:
|
1:
|
||||||
jsr pc,trp~
|
jsr pc,trp~
|
||||||
|
@ -46,12 +45,12 @@ sigtrp~:
|
||||||
mov (sp)+,r1
|
mov (sp)+,r1
|
||||||
mov (sp)+,r0
|
mov (sp)+,r0
|
||||||
ble sig.bad
|
ble sig.bad
|
||||||
cmp r0,$16.
|
cmp r0,$020
|
||||||
bhi sig.bad
|
bhi sig.bad
|
||||||
mov r0,call+02
|
mov r0,call+02
|
||||||
asl r0
|
asl r0
|
||||||
mov sig.trp-2(r0),r3
|
mov sig.trp-2(r0),r3
|
||||||
cmp r1,$256.
|
cmp r1,$0400
|
||||||
bhis 1f
|
bhis 1f
|
||||||
mov sig.adr-2(r0),r2
|
mov sig.adr-2(r0),r2
|
||||||
bne 2f
|
bne 2f
|
||||||
|
@ -68,7 +67,7 @@ sigbad:
|
||||||
inc r2
|
inc r2
|
||||||
2: mov r1,sig.trp-2(r0)
|
2: mov r1,sig.trp-2(r0)
|
||||||
mov r2,call+04
|
mov r2,call+04
|
||||||
sys indir ; call
|
sys indir ; .data2 call
|
||||||
bcs sigbad
|
bcs sigbad
|
||||||
asr r0
|
asr r0
|
||||||
bcc 1f
|
bcc 1f
|
||||||
|
@ -79,15 +78,16 @@ sigbad:
|
||||||
clr -(sp)
|
clr -(sp)
|
||||||
jmp retu~
|
jmp retu~
|
||||||
|
|
||||||
.data
|
.sect .data
|
||||||
call: sys signal; 0; 0
|
call: sys signal
|
||||||
|
.data2 0, 0
|
||||||
sig.trp:
|
sig.trp:
|
||||||
-2; -2; -2; -2
|
.data2 -2, -2, -2, -2
|
||||||
-2; -2; -2; -2
|
.data2 -2, -2, -2, -2
|
||||||
-2; -2; -2; -2
|
.data2 -2, -2, -2, -2
|
||||||
-2; -2; -2; -2
|
.data2 -2, -2, -2, -2
|
||||||
sig.adr:
|
sig.adr:
|
||||||
sig1; sig2; sig3; sig4
|
.data2 sig1, sig2, sig3, sig
|
||||||
sig5; sig6; sig7; 0
|
.data2 sig5, sig6, sig7, 0
|
||||||
0; sig10; sig11; sig12
|
.data2 0, sig10, sig11, sig12
|
||||||
sig13; sig14; sig15; sig16
|
.data2 sig13, sig14, sig15, sig16
|
||||||
|
|
|
@ -1,15 +1,17 @@
|
||||||
/ $Header$
|
#
|
||||||
.text
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.globl sim~
|
.sect .text
|
||||||
.globl trpim~
|
.define sim~
|
||||||
|
.extern trpim~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
.float = 1
|
#define float
|
||||||
|
|
||||||
sim~:
|
sim~:
|
||||||
mov (sp)+,r3
|
mov (sp)+,r3
|
||||||
mov (sp)+,r0
|
mov (sp)+,r0
|
||||||
mov r0,trpim~
|
mov r0,trpim~
|
||||||
.if .float
|
#ifdef float
|
||||||
stfps r1
|
stfps r1
|
||||||
bis $07400,r1
|
bis $07400,r1
|
||||||
bit $020,r0
|
bit $020,r0
|
||||||
|
@ -25,5 +27,5 @@ sim~:
|
||||||
beq 0f
|
beq 0f
|
||||||
bic $0400,r1
|
bic $0400,r1
|
||||||
0: ldfps r1
|
0: ldfps r1
|
||||||
.endif
|
#endif
|
||||||
jmp (r3)
|
jmp (r3)
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl sli~
|
.define sli~
|
||||||
.globl unknown~
|
.extern unknown~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
sli~:
|
sli~:
|
||||||
mov (sp)+,r3
|
mov (sp)+,r3
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl sri~
|
.define sri~
|
||||||
.globl unknown~
|
.extern unknown~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
/ Size in r0
|
! Size in r0
|
||||||
sri~:
|
sri~:
|
||||||
mov (sp)+,r3~
|
mov (sp)+,r3~
|
||||||
cmp r0,$02
|
cmp r0,$02
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl sru~
|
.define sru~
|
||||||
.globl unknown~
|
.extern unknown~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
sru~:
|
sru~:
|
||||||
neg 2(sp)
|
neg 2(sp)
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl sto2~
|
.define sto2~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
sto2~:
|
sto2~:
|
||||||
mov (sp)+,r3
|
mov (sp)+,r3
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl strhp~
|
.define strhp~
|
||||||
.globl fat~,reghp~,_end
|
.extern fat~,reghp~,_end
|
||||||
|
! $Header$
|
||||||
indir = 0
|
indir = 0
|
||||||
|
|
||||||
break = 17.
|
break = 021
|
||||||
EHEAP = 17.
|
EHEAP = 021
|
||||||
|
|
||||||
strhp~:
|
strhp~:
|
||||||
mov (sp)+,r0
|
mov (sp)+,r0
|
||||||
|
@ -16,10 +17,10 @@ strhp~:
|
||||||
add $01777,r1
|
add $01777,r1
|
||||||
bic $01777,r1
|
bic $01777,r1
|
||||||
mov r1,2f+2
|
mov r1,2f+2
|
||||||
sys indir ; 2f
|
sys indir ; .data2 2f
|
||||||
bcs 3f
|
bcs 3f
|
||||||
1: jmp (r0)
|
1: jmp (r0)
|
||||||
3: mov $EHEAP,-(sp)
|
3: mov $EHEAP,-(sp)
|
||||||
jmp fat~
|
jmp fat~
|
||||||
.data
|
.sect .data
|
||||||
2: sys break; _end
|
2: sys break; .data2 _end
|
||||||
|
|
|
@ -1,12 +1,13 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl trp~,fat~
|
.define trp~,fat~
|
||||||
.globl trppc~,trpim~,savearea,retar
|
.extern trppc~,trpim~,savearea,retar
|
||||||
write=4.
|
! $Header$
|
||||||
|
write=4
|
||||||
|
|
||||||
fat~:
|
fat~:
|
||||||
jsr pc,trp~
|
jsr pc,trp~
|
||||||
4
|
.data2 4
|
||||||
|
|
||||||
trp~:
|
trp~:
|
||||||
mov r0,-(sp)
|
mov r0,-(sp)
|
||||||
|
@ -14,7 +15,7 @@ trp~:
|
||||||
mov 02(sp),04(sp)
|
mov 02(sp),04(sp)
|
||||||
mov (sp),02(sp)
|
mov (sp),02(sp)
|
||||||
mov r1,(sp)
|
mov r1,(sp)
|
||||||
cmp r0,$16.
|
cmp r0,$020
|
||||||
jhis 0f
|
jhis 0f
|
||||||
mov $01,r1
|
mov $01,r1
|
||||||
ashc r0,r1
|
ashc r0,r1
|
||||||
|
@ -50,7 +51,7 @@ trp~:
|
||||||
clr trppc~
|
clr trppc~
|
||||||
jsr pc,(r0)
|
jsr pc,(r0)
|
||||||
tst (sp)+
|
tst (sp)+
|
||||||
mov $retar+16.,r2
|
mov $retar+020,r2
|
||||||
mov (sp)+,-(r2)
|
mov (sp)+,-(r2)
|
||||||
mov (sp)+,-(r2)
|
mov (sp)+,-(r2)
|
||||||
mov (sp)+,-(r2)
|
mov (sp)+,-(r2)
|
||||||
|
@ -59,7 +60,7 @@ trp~:
|
||||||
mov (sp)+,-(r2)
|
mov (sp)+,-(r2)
|
||||||
mov (sp)+,-(r2)
|
mov (sp)+,-(r2)
|
||||||
mov (sp)+,-(r2)
|
mov (sp)+,-(r2)
|
||||||
mov $savearea+12.,r2
|
mov $savearea+014,r2
|
||||||
mov (sp)+,-(r2)
|
mov (sp)+,-(r2)
|
||||||
mov (sp)+,-(r2)
|
mov (sp)+,-(r2)
|
||||||
mov (sp)+,-(r2)
|
mov (sp)+,-(r2)
|
||||||
|
@ -78,18 +79,18 @@ trp~:
|
||||||
mov (sp)+,r0
|
mov (sp)+,r0
|
||||||
rts pc
|
rts pc
|
||||||
9: mov (sp)+,r0
|
9: mov (sp)+,r0
|
||||||
mov $buf+11,r1
|
mov $buf+011,r1
|
||||||
mov $4,r2
|
mov $4,r2
|
||||||
1: mov r0,r3
|
1: mov r0,r3
|
||||||
bic $177770,r3
|
bic $0177770,r3
|
||||||
bisb r3,-(r1)
|
bisb r3,-(r1)
|
||||||
ash $-3,r0
|
ash $-3,r0
|
||||||
sob r2,1b
|
sob r2,1b
|
||||||
mov $2,r0
|
mov $2,r0
|
||||||
sys write;buf;11.
|
sys write;.data2 buf, 013
|
||||||
4
|
.data2 4
|
||||||
|
|
||||||
.data
|
.sect .data
|
||||||
retar: .=.+16.
|
retar: .space 16
|
||||||
retend:
|
retend:
|
||||||
buf: <err 00000\n>
|
buf: .ascii "err 00000\n"
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.text
|
.sect .text
|
||||||
.globl unknown~
|
.define unknown~
|
||||||
.globl fat~
|
! $Header$
|
||||||
|
.extern fat~
|
||||||
|
|
||||||
EILLSIZ = 19.
|
EILLSIZ = 023
|
||||||
|
|
||||||
unknown~:
|
unknown~:
|
||||||
mov $EILLSIZ,-(sp)
|
mov $EILLSIZ,-(sp)
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
/ $Header$
|
.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
|
||||||
.globl xor~
|
.define xor~
|
||||||
.globl save~,retu~
|
.extern save~,retu~
|
||||||
|
! $Header$
|
||||||
|
|
||||||
xor~:
|
xor~:
|
||||||
jsr pc,save~
|
jsr pc,save~
|
||||||
|
|
Loading…
Reference in a new issue