Ported to other m68000 systems
This commit is contained in:
parent
526d769271
commit
bc6486d7b0
|
@ -1,65 +1,69 @@
|
||||||
INTS=em2_t--- em2_---- em2_t-cp em2_t-c- em2_t--p \
|
INTS=em2_t--- em2_---- em2_t-cp em2_t-c- em2_t--p \
|
||||||
em4_t--- em4_---- em4_t-cp em4_t-c- em4_t--p
|
em4_t--- em4_---- em4_t-cp em4_t-c- em4_t--p
|
||||||
P = mloop
|
P = mloop
|
||||||
FILES=deffile $P0 $P1 $P2 $P3 $P4 $P5 $P6 $P7 $P8 $P9 $Pa $Pb $Pc $Pe
|
FILES=deffile $P0 $P1 $P2 $P3 $P4 $P5 $P6 $P7 $P8 $P9 $Pa $Pb $Pc
|
||||||
CPP=../../../lib/cpp
|
CPP=../../../lib/cpp
|
||||||
b=../../../lib/int
|
b=../../../lib/int
|
||||||
|
|
||||||
all: $(INTS) em
|
all: $(INTS) em
|
||||||
|
|
||||||
em: em.c
|
em: em.c
|
||||||
cc -o em -I../../../h em.c
|
$(CC) -o em -I../../../h em.c
|
||||||
|
|
||||||
em2_t---: $(FILES)
|
em2_t---: $(FILES) compile
|
||||||
cat $(FILES) | $(CPP) -P -Dopfreq=0 -Dlast=1 -Dcount=0 -Dtest=1 -Dflow=0 -Dprof=0 >tmp.s
|
cat $(FILES) | $(CPP) -P -Dopfreq=0 -Dlast=1 -Dcount=0 -Dtest=1 -Dflow=0 -Dprof=0 >tmp.s
|
||||||
m68k2 -o em2_t--- tmp.s
|
./compile -o em2_t--- tmp.s
|
||||||
rm -f tmp.s
|
rm -f tmp.s
|
||||||
|
|
||||||
em2_----: $(FILES)
|
em2_----: $(FILES) compile
|
||||||
cat $(FILES) | $(CPP) -P -Dopfreq=0 -Dlast=0 -Dcount=0 -Dtest=0 -Dflow=0 -Dprof=0 >tmp.s
|
cat $(FILES) | $(CPP) -P -Dopfreq=0 -Dlast=0 -Dcount=0 -Dtest=0 -Dflow=0 -Dprof=0 >tmp.s
|
||||||
m68k2 -o em2_---- tmp.s
|
./compile -o em2_---- tmp.s
|
||||||
rm -f tmp.s
|
rm -f tmp.s
|
||||||
|
|
||||||
em2_t-cp: $(FILES)
|
em2_t-cp: $(FILES) compile
|
||||||
cat $(FILES) | $(CPP) -P -Dopfreq=0 -Dlast=1 -Dcount=1 -Dtest=1 -Dflow=0 -Dprof=1 >tmp.s
|
cat $(FILES) | $(CPP) -P -Dopfreq=0 -Dlast=1 -Dcount=1 -Dtest=1 -Dflow=0 -Dprof=1 >tmp.s
|
||||||
m68k2 -o em2_t-cp tmp.s
|
./compile -o em2_t-cp tmp.s
|
||||||
rm -f tmp.s
|
rm -f tmp.s
|
||||||
|
|
||||||
em2_t-c-: $(FILES)
|
em2_t-c-: $(FILES) compile
|
||||||
cat $(FILES) | $(CPP) -P -Dopfreq=0 -Dlast=1 -Dcount=1 -Dtest=1 -Dflow=0 -Dprof=0 >tmp.s
|
cat $(FILES) | $(CPP) -P -Dopfreq=0 -Dlast=1 -Dcount=1 -Dtest=1 -Dflow=0 -Dprof=0 >tmp.s
|
||||||
m68k2 -o em2_t-c- tmp.s
|
./compile -o em2_t-c- tmp.s
|
||||||
rm -f tmp.s
|
rm -f tmp.s
|
||||||
|
|
||||||
em2_t--p: $(FILES)
|
em2_t--p: $(FILES) compile
|
||||||
cat $(FILES) | $(CPP) -P -Dopfreq=0 -Dlast=1 -Dcount=0 -Dtest=1 -Dflow=0 -Dprof=1 >tmp.s
|
cat $(FILES) | $(CPP) -P -Dopfreq=0 -Dlast=1 -Dcount=0 -Dtest=1 -Dflow=0 -Dprof=1 >tmp.s
|
||||||
m68k2 -o em2_t--p tmp.s
|
./compile -o em2_t--p tmp.s
|
||||||
rm -f tmp.s
|
rm -f tmp.s
|
||||||
|
|
||||||
em4_t---: $(FILES)
|
em4_t---: $(FILES) compile
|
||||||
cat $(FILES) | $(CPP) -P -Dlword -Dopfreq=0 -Dlast=1 -Dcount=0 -Dtest=1 -Dflow=0 -Dprof=0 >tmp.s
|
cat $(FILES) | $(CPP) -P -Dlword -Dopfreq=0 -Dlast=1 -Dcount=0 -Dtest=1 -Dflow=0 -Dprof=0 >tmp.s
|
||||||
m68k2 -o em4_t--- tmp.s
|
./compile -o em4_t--- tmp.s
|
||||||
rm -f tmp.s
|
rm -f tmp.s
|
||||||
|
|
||||||
em4_----: $(FILES)
|
em4_----: $(FILES) compile
|
||||||
cat $(FILES) | $(CPP) -P -Dlword -Dopfreq=0 -Dlast=0 -Dcount=0 -Dtest=0 -Dflow=0 -Dprof=0 >tmp.s
|
cat $(FILES) | $(CPP) -P -Dlword -Dopfreq=0 -Dlast=0 -Dcount=0 -Dtest=0 -Dflow=0 -Dprof=0 >tmp.s
|
||||||
m68k2 -o em4_---- tmp.s
|
./compile -o em4_---- tmp.s
|
||||||
rm -f tmp.s
|
rm -f tmp.s
|
||||||
|
|
||||||
em4_t-cp: $(FILES)
|
em4_t-cp: $(FILES) compile
|
||||||
cat $(FILES) | $(CPP) -P -Dlword -Dopfreq=0 -Dlast=1 -Dcount=1 -Dtest=1 -Dflow=0 -Dprof=1 >tmp.s
|
cat $(FILES) | $(CPP) -P -Dlword -Dopfreq=0 -Dlast=1 -Dcount=1 -Dtest=1 -Dflow=0 -Dprof=1 >tmp.s
|
||||||
m68k2 -o em4_t-cp tmp.s
|
./compile -o em4_t-cp tmp.s
|
||||||
rm -f tmp.s
|
rm -f tmp.s
|
||||||
|
|
||||||
em4_t-c-: $(FILES)
|
em4_t-c-: $(FILES) compile
|
||||||
cat $(FILES) | $(CPP) -P -Dlword -Dopfreq=0 -Dlast=1 -Dcount=1 -Dtest=1 -Dflow=0 -Dprof=0 >tmp.s
|
cat $(FILES) | $(CPP) -P -Dlword -Dopfreq=0 -Dlast=1 -Dcount=1 -Dtest=1 -Dflow=0 -Dprof=0 >tmp.s
|
||||||
m68k2 -o em4_t-c- tmp.s
|
./compile -o em4_t-c- tmp.s
|
||||||
rm -f tmp.s
|
rm -f tmp.s
|
||||||
|
|
||||||
em4_t--p: $(FILES)
|
em4_t--p: $(FILES) compile
|
||||||
cat $(FILES) | $(CPP) -P -Dlword -Dopfreq=0 -Dlast=1 -Dcount=0 -Dtest=1 -Dflow=0 -Dprof=1 >tmp.s
|
cat $(FILES) | $(CPP) -P -Dlword -Dopfreq=0 -Dlast=1 -Dcount=0 -Dtest=1 -Dflow=0 -Dprof=1 >tmp.s
|
||||||
m68k2 -o em4_t--p tmp.s
|
./compile -o em4_t--p tmp.s
|
||||||
rm -f tmp.s
|
rm -f tmp.s
|
||||||
|
|
||||||
|
compile: Makefile
|
||||||
|
case `ack_sys` in sun*) MACH=sun2;; pmds*) MACH=pmds4;; \
|
||||||
|
m68_sysV_0) MACH=mantra;; *) MACH=m68k4;; \
|
||||||
|
esac ; echo $$MACH -.m '$$*' > compile; chmod +x compile
|
||||||
install: all
|
install: all
|
||||||
-mkdir $b24 $b44
|
-mkdir $b24 $b44
|
||||||
ls em2_???? | sed 's:em2_\(.*\):cp & $b24/em_\1:' | sh
|
ls em2_???? | sed 's:em2_\(.*\):cp & $b24/em_\1:' | sh
|
||||||
|
@ -74,7 +78,7 @@ cmp: all
|
||||||
-cmp em.1 ../../../man/em.1
|
-cmp em.1 ../../../man/em.1
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
-rm -f *.o *.old a.out em tmp.s $(INTS)
|
-rm -f *.o *.old a.out em tmp.s $(INTS) compile
|
||||||
|
|
||||||
opr:
|
opr:
|
||||||
make pr | opr
|
make pr | opr
|
||||||
|
|
|
@ -72,7 +72,7 @@
|
||||||
#define l_8 -16
|
#define l_8 -16
|
||||||
#define checksize cmp.w #2,d0 ; beq 2f ; cmp.w #4,d0 ; beq 4f ; bra e_oddz
|
#define checksize cmp.w #2,d0 ; beq 2f ; cmp.w #4,d0 ; beq 4f ; bra e_oddz
|
||||||
#endif
|
#endif
|
||||||
#define adroff move.b (a3)+,(a1) ; move.b (a3)+,1(a1)
|
#define adroff move.b (a3)+,(a5) ; move.b (a3)+,1(a5)
|
||||||
#define claimstack tst.b -1024(sp)
|
#define claimstack tst.b -1024(sp)
|
||||||
#define locptr cmp.l sp,a0 ;\
|
#define locptr cmp.l sp,a0 ;\
|
||||||
bcc 6f
|
bcc 6f
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
.define filb
|
.define filb
|
||||||
|
.define _m_a_i_n
|
||||||
.define curproc
|
.define curproc
|
||||||
.define pd
|
.define pd
|
||||||
.define nproc
|
.define nproc
|
||||||
|
@ -20,16 +21,18 @@
|
||||||
! START OF THE PROGRAM
|
! START OF THE PROGRAM
|
||||||
!---------------------------------------------------------------------------
|
!---------------------------------------------------------------------------
|
||||||
|
|
||||||
lea retarea,a1 !a1 POINTS AT RETURN AREA
|
_m_a_i_n:
|
||||||
|
tst.l (sp)+
|
||||||
|
lea retarea,a5 !a5 POINTS AT RETURN AREA
|
||||||
move.l nd,-(sp) !nd contains endbss
|
move.l nd,-(sp) !nd contains endbss
|
||||||
bsr _Xbreak
|
bsr _Xbreak
|
||||||
add.l wrd,sp
|
add.l wrd,sp
|
||||||
#if last
|
#if last
|
||||||
move.l #126,d0 !initialise lasttable
|
move.l #126,d0 !initialise lasttable
|
||||||
lea lasttable,a5
|
lea lasttable,a1
|
||||||
0: clr.l (a5)+
|
0: clr.l (a1)+
|
||||||
dbra d0,0b
|
dbra d0,0b
|
||||||
move.l #-1,(a5)
|
move.l #-1,(a1)
|
||||||
move.l #linused-8,linused
|
move.l #linused-8,linused
|
||||||
#endif
|
#endif
|
||||||
move.l 4(sp),a2
|
move.l 4(sp),a2
|
||||||
|
@ -71,10 +74,10 @@ emfile: .asciz "e.out"
|
||||||
bne badarg1
|
bne badarg1
|
||||||
lea header,a0
|
lea header,a0
|
||||||
move.l #5,d0 !convert em integer to integer
|
move.l #5,d0 !convert em integer to integer
|
||||||
0: add.l #4,a1
|
0: add.l #4,a5
|
||||||
move.b (a0)+,-(a1) ; move.b (a0)+,-(a1)
|
move.b (a0)+,-(a5) ; move.b (a0)+,-(a5)
|
||||||
move.b (a0)+,-(a1) ; move.b (a0)+,-(a1)
|
move.b (a0)+,-(a5) ; move.b (a0)+,-(a5)
|
||||||
move.l (a1),-4(a0) ; dbra d0,0b
|
move.l (a5),-4(a0) ; dbra d0,0b
|
||||||
move.l nd,a0 ; move.l a0,pb !Bottom emtext
|
move.l nd,a0 ; move.l a0,pb !Bottom emtext
|
||||||
add.l ntext,a0 ; move.l a0,pd !proc. descr. base
|
add.l ntext,a0 ; move.l a0,pd !proc. descr. base
|
||||||
move.l nproc,d1 ; asl.l #3,d1 !2 pointers
|
move.l nproc,d1 ; asl.l #3,d1 !2 pointers
|
||||||
|
@ -101,19 +104,21 @@ emfile: .asciz "e.out"
|
||||||
lblbuf: sub.l #2048,sp
|
lblbuf: sub.l #2048,sp
|
||||||
claimstack
|
claimstack
|
||||||
move.l sp,a4 !transport ptr a4
|
move.l sp,a4 !transport ptr a4
|
||||||
move.l sp,a5
|
move.l sp,a1
|
||||||
|
move.l a1,-(sp)
|
||||||
move.l #2048,-(sp) ; move.l a4,-(sp)
|
move.l #2048,-(sp) ; move.l a4,-(sp)
|
||||||
mov savefd,-(sp) ; bsr _Xread
|
mov savefd,-(sp) ; bsr _Xread
|
||||||
testen (sp)+ ; bne badarg
|
testen (sp)+ ; bne badarg
|
||||||
move.l (sp)+,d0
|
move.l (sp)+,d0
|
||||||
|
move.l (sp)+,a1
|
||||||
cmp.l #2048,d0 ; bcs 0f
|
cmp.l #2048,d0 ; bcs 0f
|
||||||
add.l #1024,a5 ; bra 1f !a5 =buffer middle
|
add.l #1024,a1 ; bra 1f !a1 =buffer middle
|
||||||
0: add.l d0,a5 !a5 = buffer end
|
0: add.l d0,a1 !a1 = buffer end
|
||||||
1: move.l eb,a3 !At a3 filling has to start
|
1: move.l eb,a3 !At a3 filling has to start
|
||||||
clr.l d1 ; clr.l d2
|
clr.l d1 ; clr.l d2
|
||||||
move.l #datswi,a6
|
move.l #datswi,a6
|
||||||
|
|
||||||
datloop: cmp.l a4,a5 ; bhi 9f !Go on filling data
|
datloop: cmp.l a4,a1 ; bhi 9f !Go on filling data
|
||||||
bsr blshift !shift block down , read next block
|
bsr blshift !shift block down , read next block
|
||||||
9: sub.l #1,ndata ; blt finito
|
9: sub.l #1,ndata ; blt finito
|
||||||
move.b (a4)+,d1 ; beq dat0 !type byte in d1
|
move.b (a4)+,d1 ; beq dat0 !type byte in d1
|
||||||
|
@ -126,10 +131,10 @@ datswi: .data4 dat1; .data4 dat2; .data4 dat3; .data4 dat4
|
||||||
.data4 dat5; .data4 dat6; .data4 dat6; .data4 dofloat
|
.data4 dat5; .data4 dat6; .data4 dat6; .data4 dofloat
|
||||||
.sect .text
|
.sect .text
|
||||||
|
|
||||||
dat0: add.l #4,a1
|
dat0: add.l #4,a5
|
||||||
move.b (a4)+,-(a1) ; move.b (a4)+,-(a1)
|
move.b (a4)+,-(a5) ; move.b (a4)+,-(a5)
|
||||||
move.b (a4)+,-(a1) ; move.b (a4)+,-(a1)
|
move.b (a4)+,-(a5) ; move.b (a4)+,-(a5)
|
||||||
move.l (a1),d0 ; move.l a3,d4 !d0 =count
|
move.l (a5),d0 ; move.l a3,d4 !d0 =count
|
||||||
sub.l a2,d4 !reconstruct byte count of previous describtor
|
sub.l a2,d4 !reconstruct byte count of previous describtor
|
||||||
sub.l #1,d0 ; sub.l #1,d4
|
sub.l #1,d0 ; sub.l #1,d4
|
||||||
1: move.l d4,d3
|
1: move.l d4,d3
|
||||||
|
@ -167,18 +172,21 @@ dofloat: add.l d2,a3
|
||||||
atof: tst.b (a4)+ ; bne atof
|
atof: tst.b (a4)+ ; bne atof
|
||||||
rts
|
rts
|
||||||
|
|
||||||
blshift: move.l a5,a0 ; move.l #1024,d0
|
blshift: move.l a1,a0 ; move.l #1024,d0
|
||||||
|
tst.l -(sp)
|
||||||
sub.l d0,a0 ; move.l d0,-(sp)
|
sub.l d0,a0 ; move.l d0,-(sp)
|
||||||
sub.l d0,a4 !update pointer
|
sub.l d0,a4 !update pointer
|
||||||
asr.l #2,d0
|
asr.l #2,d0
|
||||||
0: move.l (a5)+,(a0)+ ; sub.w #1,d0
|
0: move.l (a1)+,(a0)+ ; sub.w #1,d0
|
||||||
bgt 0b ; move.l a0,a5
|
bgt 0b ; move.l a0,a1
|
||||||
move.l a5,-(sp) ; mov savefd,-(sp)
|
move.l a1,4(sp)
|
||||||
|
move.l a1,-(sp) ; mov savefd,-(sp)
|
||||||
bsr _Xread
|
bsr _Xread
|
||||||
testen (sp)+ ; bne badarg
|
testen (sp)+ ; bne badarg
|
||||||
move.l (sp)+,d0
|
move.l (sp)+,d0
|
||||||
|
move.l (sp)+,a1
|
||||||
cmp.l #1024,d0 ; beq 1f
|
cmp.l #1024,d0 ; beq 1f
|
||||||
add.l d0,a5
|
add.l d0,a1
|
||||||
1: rts
|
1: rts
|
||||||
|
|
||||||
finito: cmp.l hp,a3 ; bne badarg !load file error
|
finito: cmp.l hp,a3 ; bne badarg !load file error
|
||||||
|
@ -190,7 +198,7 @@ finito: cmp.l hp,a3 ; bne badarg !load file error
|
||||||
|
|
||||||
move.l nproc,d1 ; move.l pd,a3
|
move.l nproc,d1 ; move.l pd,a3
|
||||||
asl.l #3,d1 !proc. descr. is 8 bytes
|
asl.l #3,d1 !proc. descr. is 8 bytes
|
||||||
4: move.l a5,d2 ; sub.l a4,d2 !What is available?
|
4: move.l a1,d2 ; sub.l a4,d2 !What is available?
|
||||||
add.l #7,d2 ; and.w #-0x8,d2 !multiple of 8!
|
add.l #7,d2 ; and.w #-0x8,d2 !multiple of 8!
|
||||||
sub.l d2,d1 !subtract what can
|
sub.l d2,d1 !subtract what can
|
||||||
asr.l #3,d2 !be read. divide by 8
|
asr.l #3,d2 !be read. divide by 8
|
||||||
|
@ -237,39 +245,39 @@ finito: cmp.l hp,a3 ; bne badarg !load file error
|
||||||
! Count pointer zero is reserved for the case that no line number
|
! Count pointer zero is reserved for the case that no line number
|
||||||
! is yet defined.
|
! is yet defined.
|
||||||
|
|
||||||
! Register use: a6 is external base ("eb"), a1 points at return area, other
|
! Register use: a6 is external base ("eb"), a5 points at return area, other
|
||||||
! registers are free
|
! registers are free
|
||||||
|
|
||||||
makelink: move.l pd,a0
|
makelink: move.l pd,a0
|
||||||
move.l #0,a2
|
move.l #0,a2
|
||||||
move.l a0,a3 !a3 will point at the first proc.
|
move.l a0,a3 !a3 will point at the first proc.
|
||||||
move.l a0,a4 !a4 will point at proc descr base
|
move.l a0,a4 !a4 will point at proc descr base
|
||||||
0: move.l a0,a5 !keep former descr pointer in a5
|
0: move.l a0,a1 !keep former descr pointer in a1
|
||||||
add.l #24,a0 !a0 points at next one
|
add.l #24,a0 !a0 points at next one
|
||||||
cmp.l a0,a6 !top of descriptor space
|
cmp.l a0,a6 !top of descriptor space
|
||||||
bls 4f !yes? ready!
|
bls 4f !yes? ready!
|
||||||
1: move.l 4(a0),d0 !start address of current proc in d0
|
1: move.l 4(a0),d0 !start address of current proc in d0
|
||||||
cmp.l 4(a5),d0 !compair start address with previous
|
cmp.l 4(a1),d0 !compair start address with previous
|
||||||
bcc 2f !d0 large? follow link!
|
bcc 2f !d0 large? follow link!
|
||||||
sub.l #24,a5 !d0 small? compair with previous
|
sub.l #24,a1 !d0 small? compair with previous
|
||||||
cmp.l a5,a4 !is a5 smaller than pd
|
cmp.l a1,a4 !is a1 smaller than pd
|
||||||
bls 1b !no? try again
|
bls 1b !no? try again
|
||||||
move.l a3,16(a0) !yes? then smallest text add up to now
|
move.l a3,16(a0) !yes? then smallest text add up to now
|
||||||
move.l a0,a3 !remind a3 is to point at first proc
|
move.l a0,a3 !remind a3 is to point at first proc
|
||||||
bra 0b !next descriptor
|
bra 0b !next descriptor
|
||||||
2: move.l 16(a5),d1 !follow the link to find place
|
2: move.l 16(a1),d1 !follow the link to find place
|
||||||
beq 3f !if 0 then no link defined
|
beq 3f !if 0 then no link defined
|
||||||
move.l d1,a2
|
move.l d1,a2
|
||||||
cmp.l 4(a2),d0 !compair start address
|
cmp.l 4(a2),d0 !compair start address
|
||||||
bcs 3f !start addr between those of a5 and a2
|
bcs 3f !start addr between those of a1 and a2
|
||||||
move.l a2,a5 !d0 above start address of a5
|
move.l a2,a1 !d0 above start address of a1
|
||||||
bra 2b !go on looking
|
bra 2b !go on looking
|
||||||
3: move.l a0,16(a5) !a0 follows a5
|
3: move.l a0,16(a1) !a0 follows a1
|
||||||
move.l d1,16(a0) !a2 follows a0
|
move.l d1,16(a0) !a2 follows a0
|
||||||
bra 0b
|
bra 0b
|
||||||
4: move.l a3,firstp !firstp links to first procedure
|
4: move.l a3,firstp !firstp links to first procedure
|
||||||
|
|
||||||
! Register use: a3 points at first procedure , d0 opcode byte , a5 base of
|
! Register use: a3 points at first procedure , d0 opcode byte , a1 base of
|
||||||
! table , d1 keeps min line nr , d2 keeps max line nr , d3 current line nr ,
|
! table , d1 keeps min line nr , d2 keeps max line nr , d3 current line nr ,
|
||||||
! maxcount in d4
|
! maxcount in d4
|
||||||
|
|
||||||
|
@ -305,17 +313,17 @@ procinf: move.l #1,maxcount !count pointer for first procedure
|
||||||
bra 4f
|
bra 4f
|
||||||
3: adroff
|
3: adroff
|
||||||
move.l #0,d3
|
move.l #0,d3
|
||||||
move.w (a1),d3
|
move.w (a5),d3
|
||||||
bra 4f
|
bra 4f
|
||||||
6: move.b (a3)+,d0
|
6: move.b (a3)+,d0
|
||||||
cmp.b #35,d0 !lin_q ?
|
cmp.b #35,d0 !lin_q ?
|
||||||
bne 6f !skip for escape2 at 6f
|
bne 6f !skip for escape2 at 6f
|
||||||
move.b (a3)+,(a1)+
|
move.b (a3)+,(a5)+
|
||||||
move.b (a3)+,(a1)+
|
move.b (a3)+,(a5)+
|
||||||
move.b (a3)+,(a1)+
|
move.b (a3)+,(a5)+
|
||||||
move.b (a3)+,(a1)
|
move.b (a3)+,(a5)
|
||||||
sub.l #3,a1
|
sub.l #3,a5
|
||||||
move.l (a1),d3
|
move.l (a5),d3
|
||||||
4: cmp.l d1,d3 !d3 less than minimum ?
|
4: cmp.l d1,d3 !d3 less than minimum ?
|
||||||
bcc 5f
|
bcc 5f
|
||||||
move.l d3,d1
|
move.l d3,d1
|
||||||
|
|
|
@ -12,14 +12,14 @@ loop: move.l #0,d0
|
||||||
add.w d0,d0 !opcode to index in table
|
add.w d0,d0 !opcode to index in table
|
||||||
add.w d0,d0
|
add.w d0,d0
|
||||||
#if prof
|
#if prof
|
||||||
|
lea timeinf,a1
|
||||||
|
move.l 0(a1,d0),d1 !get operation time
|
||||||
move.l profile,a0
|
move.l profile,a0
|
||||||
lea timeinf,a5
|
|
||||||
move.l 0(a5,d0),d1 !get operation time
|
|
||||||
add.l d1,(a0)
|
add.l d1,(a0)
|
||||||
#endif
|
#endif
|
||||||
#if opfreq
|
#if opfreq
|
||||||
lea counttab,a5
|
lea counttab,a0
|
||||||
add.l #1,0(a5,d0)
|
add.l #1,0(a0,d0)
|
||||||
#endif
|
#endif
|
||||||
jmp dispat(pc,d0) !jump to branch to the operation
|
jmp dispat(pc,d0) !jump to branch to the operation
|
||||||
|
|
||||||
|
@ -112,13 +112,13 @@ escape1:
|
||||||
cmp.w #640,d0 !check for range
|
cmp.w #640,d0 !check for range
|
||||||
bhi e_illins !jump to ill instruction procedure
|
bhi e_illins !jump to ill instruction procedure
|
||||||
#if prof
|
#if prof
|
||||||
lea timeinf1,a5
|
lea timeinf1,a1
|
||||||
move.l 0(a5,d0),d1
|
move.l 0(a1,d0),d1
|
||||||
add.l d1,(a0)
|
add.l d1,(a0)
|
||||||
#endif
|
#endif
|
||||||
#if opfreq
|
#if opfreq
|
||||||
lea counttab+1024,a5
|
lea counttab+1024,a0
|
||||||
add.l #1,0(a5,d0)
|
add.l #1,0(a0,d0)
|
||||||
#endif
|
#endif
|
||||||
jmp dispae1(pc,d0) !jump to the operation
|
jmp dispae1(pc,d0) !jump to the operation
|
||||||
|
|
||||||
|
@ -188,13 +188,13 @@ escape2:
|
||||||
cmp.w #220,d0
|
cmp.w #220,d0
|
||||||
bhi e_illins
|
bhi e_illins
|
||||||
#if prof
|
#if prof
|
||||||
lea timeinf2,a5
|
lea timeinf2,a1
|
||||||
move.l 0(a5,d0),d1
|
move.l 0(a1,d0),d1
|
||||||
add.l d1,(a0)
|
add.l d1,(a0)
|
||||||
#endif
|
#endif
|
||||||
#if opfreq
|
#if opfreq
|
||||||
lea counttab+1664,a5
|
lea counttab+1664,a1
|
||||||
add.l #1,0(a5,d0)
|
add.l #1,0(a1,d0)
|
||||||
#endif
|
#endif
|
||||||
jmp dispae2(pc,d0)
|
jmp dispae2(pc,d0)
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ loc_s_1: mov #-1,d0
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
lpi_l:
|
lpi_l:
|
||||||
adroff
|
adroff
|
||||||
move.w (a1),d0
|
move.w (a5),d0
|
||||||
move.l d0,-(sp)
|
move.l d0,-(sp)
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
lpi_q: jmp (a4)
|
lpi_q: jmp (a4)
|
||||||
|
@ -40,7 +40,7 @@ loc_q: jmp (a4)
|
||||||
bra e_illins
|
bra e_illins
|
||||||
#endif
|
#endif
|
||||||
loc_l: adroff
|
loc_l: adroff
|
||||||
move.w (a1),d0
|
move.w (a5),d0
|
||||||
ext.l d0
|
ext.l d0
|
||||||
mov d0,-(sp)
|
mov d0,-(sp)
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
|
@ -49,7 +49,7 @@ ldc_0: cl -(sp)
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
ldc_l:
|
ldc_l:
|
||||||
adroff
|
adroff
|
||||||
move.w (a1),d0
|
move.w (a5),d0
|
||||||
ext.l d0 !ext works only on d register
|
ext.l d0 !ext works only on d register
|
||||||
4: move.l d0,-(sp)
|
4: move.l d0,-(sp)
|
||||||
#ifdef lword
|
#ifdef lword
|
||||||
|
@ -100,7 +100,7 @@ lol_w_1: move.l #-1,d0
|
||||||
mov 0(a2,d0),-(sp)
|
mov 0(a2,d0),-(sp)
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
lol_pw: adroff
|
lol_pw: adroff
|
||||||
move.w (a1),d0
|
move.w (a5),d0
|
||||||
5: asl.l wmu,d0
|
5: asl.l wmu,d0
|
||||||
add.l a2,d0
|
add.l a2,d0
|
||||||
move.l d0,a0
|
move.l d0,a0
|
||||||
|
@ -113,7 +113,7 @@ lol_pw: adroff
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
|
|
||||||
lol_nw: adroff
|
lol_nw: adroff
|
||||||
move.w (a1),d0
|
move.w (a5),d0
|
||||||
ext.l d0
|
ext.l d0
|
||||||
2: asl.l wmu,d0
|
2: asl.l wmu,d0
|
||||||
add.l a2,d0
|
add.l a2,d0
|
||||||
|
@ -150,7 +150,7 @@ ldl_w_1: move.l #-1,d0
|
||||||
mov (a0),-(sp)
|
mov (a0),-(sp)
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
ldl_pw: adroff
|
ldl_pw: adroff
|
||||||
move.w (a1),d0
|
move.w (a5),d0
|
||||||
5: asl.l wmu,d0
|
5: asl.l wmu,d0
|
||||||
add.l a2,d0
|
add.l a2,d0
|
||||||
move.l d0,a0
|
move.l d0,a0
|
||||||
|
@ -163,7 +163,7 @@ ldl_pw: adroff
|
||||||
mov l0(a0),-(sp)
|
mov l0(a0),-(sp)
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
ldl_nw: adroff
|
ldl_nw: adroff
|
||||||
move.w (a1),d0
|
move.w (a5),d0
|
||||||
ext.l d0
|
ext.l d0
|
||||||
bra 2b
|
bra 2b
|
||||||
ldl_qpw: move.l (sp)+,d0
|
ldl_qpw: move.l (sp)+,d0
|
||||||
|
@ -173,7 +173,7 @@ ldl_qnw: move.l (sp)+,d0
|
||||||
|
|
||||||
!-------------------------------------------------------------------------
|
!-------------------------------------------------------------------------
|
||||||
loe_lw: adroff
|
loe_lw: adroff
|
||||||
move.w (a1),d0
|
move.w (a5),d0
|
||||||
bra 1f
|
bra 1f
|
||||||
loe_qw: move.l (sp)+,d0
|
loe_qw: move.l (sp)+,d0
|
||||||
bra 1f
|
bra 1f
|
||||||
|
@ -194,7 +194,7 @@ loe_w0: loe_w1: loe_w2: loe_w3: loe_w4:
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
|
|
||||||
lde_lw: adroff
|
lde_lw: adroff
|
||||||
move.w (a1),d0
|
move.w (a5),d0
|
||||||
bra 1f
|
bra 1f
|
||||||
lde_qw: move.l (sp)+,d0
|
lde_qw: move.l (sp)+,d0
|
||||||
bra 1f
|
bra 1f
|
||||||
|
@ -235,7 +235,7 @@ lil_1W: move.l l1(a2),a0
|
||||||
mov (a0),-(sp)
|
mov (a0),-(sp)
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
lil_pw: adroff
|
lil_pw: adroff
|
||||||
move.w (a1),d0
|
move.w (a5),d0
|
||||||
bra 1f
|
bra 1f
|
||||||
lil_qpw: move.l (sp)+,d0
|
lil_qpw: move.l (sp)+,d0
|
||||||
bra 1f
|
bra 1f
|
||||||
|
@ -262,7 +262,7 @@ lil_w0: clr.w d0
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
|
|
||||||
lil_nw: adroff
|
lil_nw: adroff
|
||||||
move.w (a1),d0
|
move.w (a5),d0
|
||||||
ext.l d0
|
ext.l d0
|
||||||
bra 1f
|
bra 1f
|
||||||
lil_qnw: move.l (sp)+,d0
|
lil_qnw: move.l (sp)+,d0
|
||||||
|
@ -294,7 +294,7 @@ lof_s0: move.l d6,d0
|
||||||
move.b (a3)+,d0
|
move.b (a3)+,d0
|
||||||
bra 1f
|
bra 1f
|
||||||
lof_l: adroff
|
lof_l: adroff
|
||||||
move.w (a1),d0
|
move.w (a5),d0
|
||||||
ext.l d0
|
ext.l d0
|
||||||
bra 1f
|
bra 1f
|
||||||
lof_q: move.l (sp)+,d0
|
lof_q: move.l (sp)+,d0
|
||||||
|
@ -315,7 +315,7 @@ lof_2W: move.l wrd+word,d0 ; bra 1b
|
||||||
lof_3W: move.l wrd+word+word,d0 ; bra 1b
|
lof_3W: move.l wrd+word+word,d0 ; bra 1b
|
||||||
lof_4W: move.l wrd+word+word+word,d0 ; bra 1b
|
lof_4W: move.l wrd+word+word+word,d0 ; bra 1b
|
||||||
ldf_l: adroff
|
ldf_l: adroff
|
||||||
move.w (a1),d0
|
move.w (a5),d0
|
||||||
ext.l d0
|
ext.l d0
|
||||||
2: move.l (sp)+,a0
|
2: move.l (sp)+,a0
|
||||||
add.l d0,a0
|
add.l d0,a0
|
||||||
|
@ -335,7 +335,7 @@ ldf_q: move.l (sp)+,d0
|
||||||
!-------------------------------------------------------------------------
|
!-------------------------------------------------------------------------
|
||||||
|
|
||||||
lal_p: adroff
|
lal_p: adroff
|
||||||
move.w (a1),d0
|
move.w (a5),d0
|
||||||
bra 1f
|
bra 1f
|
||||||
lal_qp: move.l (sp)+,d0
|
lal_qp: move.l (sp)+,d0
|
||||||
1: add.l #0+l0,d0
|
1: add.l #0+l0,d0
|
||||||
|
@ -348,7 +348,7 @@ lal_w0: clr.w d0
|
||||||
add.l #0+l0,d0
|
add.l #0+l0,d0
|
||||||
bra 3f
|
bra 3f
|
||||||
lal_n: adroff
|
lal_n: adroff
|
||||||
move.w (a1),d0
|
move.w (a5),d0
|
||||||
ext.l d0
|
ext.l d0
|
||||||
bra 4f
|
bra 4f
|
||||||
lal_qn: move.l (sp)+,d0
|
lal_qn: move.l (sp)+,d0
|
||||||
|
@ -366,7 +366,7 @@ lal_w_2: move.l #-512,d0
|
||||||
bra 2b
|
bra 2b
|
||||||
|
|
||||||
lae_l: adroff
|
lae_l: adroff
|
||||||
move.w (a1),d0
|
move.w (a5),d0
|
||||||
1: add.l a6,d0
|
1: add.l a6,d0
|
||||||
move.l d0,-(sp)
|
move.l d0,-(sp)
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
|
@ -385,7 +385,7 @@ lae_w5: lae_w6:
|
||||||
lxl_1: move.l l0(a2),-(sp)
|
lxl_1: move.l l0(a2),-(sp)
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
lxl_l: adroff
|
lxl_l: adroff
|
||||||
move.w (a1),d0
|
move.w (a5),d0
|
||||||
beq 5f
|
beq 5f
|
||||||
bgt 1f
|
bgt 1f
|
||||||
blt e_oddz
|
blt e_oddz
|
||||||
|
@ -408,7 +408,7 @@ lxl_2: move.l #1,d0
|
||||||
lxa_1: move.l #0,d0
|
lxa_1: move.l #0,d0
|
||||||
bra 3f
|
bra 3f
|
||||||
lxa_l: adroff
|
lxa_l: adroff
|
||||||
move.w (a1),d0
|
move.w (a5),d0
|
||||||
bgt 1f
|
bgt 1f
|
||||||
blt e_oddz
|
blt e_oddz
|
||||||
pea l0(a2)
|
pea l0(a2)
|
||||||
|
@ -429,7 +429,7 @@ lxa_l: adroff
|
||||||
|
|
||||||
loi_l: adroff
|
loi_l: adroff
|
||||||
clr.l d1
|
clr.l d1
|
||||||
move.w (a1),d1
|
move.w (a5),d1
|
||||||
bra 8f
|
bra 8f
|
||||||
loi_s0: move.l #0,d1
|
loi_s0: move.l #0,d1
|
||||||
move.b (a3)+,d1
|
move.b (a3)+,d1
|
||||||
|
@ -487,7 +487,7 @@ loi_1: move.l (sp)+,a0
|
||||||
los_z: mov (sp)+,d0
|
los_z: mov (sp)+,d0
|
||||||
bra 0f
|
bra 0f
|
||||||
los_l: adroff
|
los_l: adroff
|
||||||
move.w (a1),d0
|
move.w (a5),d0
|
||||||
0: checksize
|
0: checksize
|
||||||
2: move.l #0,d1 ; move.w (sp)+,d1 ; bra 8b
|
2: move.l #0,d1 ; move.w (sp)+,d1 ; bra 8b
|
||||||
4: move.l (sp)+,d1 ; bra 8b
|
4: move.l (sp)+,d1 ; bra 8b
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
!---------------------------------------------------------------------
|
!---------------------------------------------------------------------
|
||||||
|
|
||||||
stl_pw: adroff
|
stl_pw: adroff
|
||||||
move.w (a1),d0
|
move.w (a5),d0
|
||||||
3: asl.l wmu,d0
|
3: asl.l wmu,d0
|
||||||
add.l a2,d0
|
add.l a2,d0
|
||||||
move.l d0,a0
|
move.l d0,a0
|
||||||
|
@ -23,7 +23,7 @@ stl_qpw: move.l (sp)+,d0
|
||||||
bra 3b
|
bra 3b
|
||||||
|
|
||||||
stl_nw: adroff
|
stl_nw: adroff
|
||||||
move.w (a1),d0
|
move.w (a5),d0
|
||||||
ext.l d0
|
ext.l d0
|
||||||
bra 1f
|
bra 1f
|
||||||
stl_qnw: move.l (sp)+,d0
|
stl_qnw: move.l (sp)+,d0
|
||||||
|
@ -61,7 +61,7 @@ sdl_w_1: move.l #-1,d0
|
||||||
mov (sp)+,word(a0)
|
mov (sp)+,word(a0)
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
sdl_nw: adroff
|
sdl_nw: adroff
|
||||||
move.w (a1),d0
|
move.w (a5),d0
|
||||||
ext.l d0
|
ext.l d0
|
||||||
bra 2b
|
bra 2b
|
||||||
sdl_qnw: move.l (sp)+,d0
|
sdl_qnw: move.l (sp)+,d0
|
||||||
|
@ -69,7 +69,7 @@ sdl_qnw: move.l (sp)+,d0
|
||||||
sdl_qpw: move.l (sp)+,d0
|
sdl_qpw: move.l (sp)+,d0
|
||||||
bra 4f
|
bra 4f
|
||||||
sdl_pw: adroff
|
sdl_pw: adroff
|
||||||
move.w (a1),d0
|
move.w (a5),d0
|
||||||
4: asl.l wmu,d0
|
4: asl.l wmu,d0
|
||||||
add.l a2,d0
|
add.l a2,d0
|
||||||
move.l d0,a0
|
move.l d0,a0
|
||||||
|
@ -87,7 +87,7 @@ sdl_pw: adroff
|
||||||
sde_q: move.l (sp)+,d0
|
sde_q: move.l (sp)+,d0
|
||||||
bra 1f
|
bra 1f
|
||||||
sde_l: adroff
|
sde_l: adroff
|
||||||
move.w (a1),d0
|
move.w (a5),d0
|
||||||
1: add.l a6,d0
|
1: add.l a6,d0
|
||||||
move.l d0,a0
|
move.l d0,a0
|
||||||
#if test
|
#if test
|
||||||
|
@ -101,7 +101,7 @@ sde_l: adroff
|
||||||
ste_qw: move.l (sp)+,d0
|
ste_qw: move.l (sp)+,d0
|
||||||
bra 1f
|
bra 1f
|
||||||
ste_lw: adroff
|
ste_lw: adroff
|
||||||
move.w (a1),d0
|
move.w (a5),d0
|
||||||
bra 1f
|
bra 1f
|
||||||
ste_w2: move.w #512,d0 ; bra 0f
|
ste_w2: move.w #512,d0 ; bra 0f
|
||||||
ste_w1: move.w #256,d0 ; bra 0f
|
ste_w1: move.w #256,d0 ; bra 0f
|
||||||
|
@ -124,7 +124,7 @@ stf_q: move.l (sp)+,a0
|
||||||
bra 0f
|
bra 0f
|
||||||
stf_l: adroff
|
stf_l: adroff
|
||||||
move.l #0,a0
|
move.l #0,a0
|
||||||
move.w (a1),a0
|
move.w (a5),a0
|
||||||
bra 0f
|
bra 0f
|
||||||
stf_2W: move.l wrd+word,d0 ; move.l d0,a0
|
stf_2W: move.l wrd+word,d0 ; move.l d0,a0
|
||||||
bra 0f
|
bra 0f
|
||||||
|
@ -147,7 +147,7 @@ sdf_q: move.l (sp)+,a0
|
||||||
bra 1f
|
bra 1f
|
||||||
sdf_l: adroff
|
sdf_l: adroff
|
||||||
move.l d6,a0
|
move.l d6,a0
|
||||||
move.w (a1),a0
|
move.w (a5),a0
|
||||||
1: add.l (sp)+,a0
|
1: add.l (sp)+,a0
|
||||||
#if test
|
#if test
|
||||||
locptr
|
locptr
|
||||||
|
@ -203,12 +203,12 @@ sil_w_1: move.l #-1,d0
|
||||||
mov (sp)+,(a0)
|
mov (sp)+,(a0)
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
sil_pw: adroff
|
sil_pw: adroff
|
||||||
move.w (a1),d0
|
move.w (a5),d0
|
||||||
bra 5b
|
bra 5b
|
||||||
sil_qpw: move.l (sp)+,d0
|
sil_qpw: move.l (sp)+,d0
|
||||||
bra 5b
|
bra 5b
|
||||||
sil_nw: adroff
|
sil_nw: adroff
|
||||||
move.w (a1),d0
|
move.w (a5),d0
|
||||||
ext.l d0
|
ext.l d0
|
||||||
bra 2b
|
bra 2b
|
||||||
sil_qnw: move.l (sp)+,d0
|
sil_qnw: move.l (sp)+,d0
|
||||||
|
@ -226,7 +226,7 @@ sti_1: move.l (sp)+,a0
|
||||||
move.b word-1(sp),(a0)
|
move.b word-1(sp),(a0)
|
||||||
add.l wrd,sp
|
add.l wrd,sp
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
sti_l: adroff ; move.w (a1),d0 ; bra 0f
|
sti_l: adroff ; move.w (a5),d0 ; bra 0f
|
||||||
sti_s0: clr.w d0 ; move.b (a3)+,d0
|
sti_s0: clr.w d0 ; move.b (a3)+,d0
|
||||||
0: asr.l #1,d0 ; bne 1f
|
0: asr.l #1,d0 ; bne 1f
|
||||||
bcs sti_1 ; bra e_oddz
|
bcs sti_1 ; bra e_oddz
|
||||||
|
@ -258,7 +258,7 @@ sti_1W: sti_2W: sti_3W: sti_4W:
|
||||||
4: mov (sp)+,(a0)+
|
4: mov (sp)+,(a0)+
|
||||||
dbra d0,4b
|
dbra d0,4b
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
sts_l: adroff ; move.w (a1),d0
|
sts_l: adroff ; move.w (a5),d0
|
||||||
6: checksize
|
6: checksize
|
||||||
4: move.l (sp)+,d0; bra 0b
|
4: move.l (sp)+,d0; bra 0b
|
||||||
2: move.w (sp)+,d0; bra 0b
|
2: move.w (sp)+,d0; bra 0b
|
||||||
|
@ -268,7 +268,7 @@ sts_z: mov (sp)+,d0
|
||||||
!------------------------------------------------------------------------------
|
!------------------------------------------------------------------------------
|
||||||
! POINTER ARITHMETIC
|
! POINTER ARITHMETIC
|
||||||
!------------------------------------------------------------------------------
|
!------------------------------------------------------------------------------
|
||||||
adp_l: adroff ; move.w (a1),d0
|
adp_l: adroff ; move.w (a5),d0
|
||||||
ext.l d0
|
ext.l d0
|
||||||
add.l d0,(sp); jmp (a4)
|
add.l d0,(sp); jmp (a4)
|
||||||
adp_q: move.l (sp)+,d0 ; add.l d0,(sp)
|
adp_q: move.l (sp)+,d0 ; add.l d0,(sp)
|
||||||
|
@ -279,7 +279,7 @@ adp_s0: move.l d6,d0 ; move.b (a3)+,d0
|
||||||
add.l d0,(sp); jmp (a4)
|
add.l d0,(sp); jmp (a4)
|
||||||
adp_s_1: move.l #-1,d0 ; move.b (a3)+,d0
|
adp_s_1: move.l #-1,d0 ; move.b (a3)+,d0
|
||||||
add.l d0,(sp) ; jmp (a4)
|
add.l d0,(sp) ; jmp (a4)
|
||||||
ads_l: adroff ; move.w (a1),d0
|
ads_l: adroff ; move.w (a5),d0
|
||||||
bra 0f
|
bra 0f
|
||||||
ads_z: mov (sp)+,d0
|
ads_z: mov (sp)+,d0
|
||||||
0: checksize
|
0: checksize
|
||||||
|
@ -289,7 +289,7 @@ ads_z: mov (sp)+,d0
|
||||||
ads_1W: mov (sp)+,d0
|
ads_1W: mov (sp)+,d0
|
||||||
extend d0
|
extend d0
|
||||||
add.l d0,(sp); jmp (a4)
|
add.l d0,(sp); jmp (a4)
|
||||||
sbs_l: adroff ; move.w (a1),d0
|
sbs_l: adroff ; move.w (a5),d0
|
||||||
bra 0f
|
bra 0f
|
||||||
sbs_z: mov (sp)+,d0 !d0 contains objectsize
|
sbs_z: mov (sp)+,d0 !d0 contains objectsize
|
||||||
0: checksize
|
0: checksize
|
||||||
|
|
|
@ -31,14 +31,14 @@ inl__3W: move.l a2,a0 ; sub.l #6,a0 ; bra 4b
|
||||||
inl_w_1: move.l #-1,d0 ; move.b (a3)+,d0
|
inl_w_1: move.l #-1,d0 ; move.b (a3)+,d0
|
||||||
2: asl.l wmu,d0
|
2: asl.l wmu,d0
|
||||||
1: move.l a2,a0 ; add.l d0,a0 ; bra 4b
|
1: move.l a2,a0 ; add.l d0,a0 ; bra 4b
|
||||||
inl_pw: adroff ; move.w (a1),d0
|
inl_pw: adroff ; move.w (a5),d0
|
||||||
6: asl.l wmu,d0 ; add.l #0+l0,d0
|
6: asl.l wmu,d0 ; add.l #0+l0,d0
|
||||||
bra 1b
|
bra 1b
|
||||||
inl_qpw: move.l (sp)+,d0 ; bra 6b
|
inl_qpw: move.l (sp)+,d0 ; bra 6b
|
||||||
inl_nw: adroff ; move.w (a1),d0
|
inl_nw: adroff ; move.w (a5),d0
|
||||||
ext.l d0 ; bra 2b
|
ext.l d0 ; bra 2b
|
||||||
inl_qnw: move.l (sp)+,d0 ; bra 2b
|
inl_qnw: move.l (sp)+,d0 ; bra 2b
|
||||||
ine_lw: adroff ; move.w (a1),d0 ; bra 5f
|
ine_lw: adroff ; move.w (a5),d0 ; bra 5f
|
||||||
ine_qw: move.l (sp)+,d0 ; bra 5f
|
ine_qw: move.l (sp)+,d0 ; bra 5f
|
||||||
ine_w0: clr.w d0 ; move.b (a3)+,d0
|
ine_w0: clr.w d0 ; move.b (a3)+,d0
|
||||||
5: asl.l wmu,d0 ; move.l d0,a0
|
5: asl.l wmu,d0 ; move.l d0,a0
|
||||||
|
@ -66,16 +66,16 @@ dec_z: move.l sp,a0
|
||||||
del_w_1: move.l #-1,d0 ; move.b (a3)+,d0
|
del_w_1: move.l #-1,d0 ; move.b (a3)+,d0
|
||||||
1: asl.l wmu,d0
|
1: asl.l wmu,d0
|
||||||
2: move.l a2,a0 ; add.l d0,a0 ; bra 4b
|
2: move.l a2,a0 ; add.l d0,a0 ; bra 4b
|
||||||
del_pw: adroff ; move.w (a1),d0
|
del_pw: adroff ; move.w (a5),d0
|
||||||
5: asl.l wmu,d0 ; add.l #0+l0,d0 ; bra 2b
|
5: asl.l wmu,d0 ; add.l #0+l0,d0 ; bra 2b
|
||||||
del_qpw: move.l (sp)+,d0 ; bra 5b
|
del_qpw: move.l (sp)+,d0 ; bra 5b
|
||||||
del_nw: adroff ; move.w (a1),d0
|
del_nw: adroff ; move.w (a5),d0
|
||||||
ext.l d0 ; bra 1f
|
ext.l d0 ; bra 1f
|
||||||
del_qnw: move.l (sp)+,d0 ; bra 1f
|
del_qnw: move.l (sp)+,d0 ; bra 1f
|
||||||
dee_w0: clr.w d0 ; move.b (a3)+,d0
|
dee_w0: clr.w d0 ; move.b (a3)+,d0
|
||||||
0: asl.l wmu,d0 ; move.l d0,a0
|
0: asl.l wmu,d0 ; move.l d0,a0
|
||||||
add.l a6,a0 ; bra 4b
|
add.l a6,a0 ; bra 4b
|
||||||
dee_lw: adroff ; move.w (a1),d0 ; bra 0b
|
dee_lw: adroff ; move.w (a5),d0 ; bra 0b
|
||||||
dee_qw: move.l (sp)+,d0 ; bra 0b
|
dee_qw: move.l (sp)+,d0 ; bra 0b
|
||||||
|
|
||||||
#if test
|
#if test
|
||||||
|
@ -97,15 +97,15 @@ zrl_w_1: move.l #-1,d0 ; move.b (a3)+,d0
|
||||||
#endif
|
#endif
|
||||||
cl (a0)
|
cl (a0)
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
zrl_nw: adroff ; move.w (a1),d0
|
zrl_nw: adroff ; move.w (a5),d0
|
||||||
ext.l d0 ; bra 1b
|
ext.l d0 ; bra 1b
|
||||||
zrl_qnw: move.l (sp)+,d0 ; bra 1b
|
zrl_qnw: move.l (sp)+,d0 ; bra 1b
|
||||||
zrl_pw: adroff ; move.w (a1),d0
|
zrl_pw: adroff ; move.w (a5),d0
|
||||||
2: asl.l wmu,d0 ; add.l a2,d0
|
2: asl.l wmu,d0 ; add.l a2,d0
|
||||||
move.l d0,a0 ; cl l0(a0)
|
move.l d0,a0 ; cl l0(a0)
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
zrl_qpw: move.l (sp)+,d0 ; bra 2b
|
zrl_qpw: move.l (sp)+,d0 ; bra 2b
|
||||||
zre_lw: adroff ; move.w (a1),d0 ; bra 7f
|
zre_lw: adroff ; move.w (a5),d0 ; bra 7f
|
||||||
zre_qw: move.l (sp)+,d0 ; bra 7f
|
zre_qw: move.l (sp)+,d0 ; bra 7f
|
||||||
zre_w0: clr.w d0 ; move.b (a3)+,d0
|
zre_w0: clr.w d0 ; move.b (a3)+,d0
|
||||||
7: asl.l wmu,d0 ; add.l a6,d0
|
7: asl.l wmu,d0 ; add.l a6,d0
|
||||||
|
@ -117,7 +117,7 @@ zre_w0: clr.w d0 ; move.b (a3)+,d0
|
||||||
#endif
|
#endif
|
||||||
cl (a0)
|
cl (a0)
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
zrf_l: adroff ; move.w (a1),d0 ; bra 8f
|
zrf_l: adroff ; move.w (a5),d0 ; bra 8f
|
||||||
zrf_z: mov (sp)+,d0
|
zrf_z: mov (sp)+,d0
|
||||||
8: move.l d7,d1
|
8: move.l d7,d1
|
||||||
3: asr.w #1,d0 ; dbcs d1,3b
|
3: asr.w #1,d0 ; dbcs d1,3b
|
||||||
|
@ -125,7 +125,7 @@ zrf_z: mov (sp)+,d0
|
||||||
0: cl -(sp) ; dbra d0,0b
|
0: cl -(sp) ; dbra d0,0b
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
zer_s0: clr.w d0 ; move.b (a3)+,d0 ; bra 8b
|
zer_s0: clr.w d0 ; move.b (a3)+,d0 ; bra 8b
|
||||||
zer_l: adroff ; move.w (a1),d0 ; bra 8b
|
zer_l: adroff ; move.w (a5),d0 ; bra 8b
|
||||||
zer_z: mov (sp),d0 ; bra 8b
|
zer_z: mov (sp),d0 ; bra 8b
|
||||||
! The test on illegal argument takes some time , specially in 4byte case.
|
! The test on illegal argument takes some time , specially in 4byte case.
|
||||||
|
|
||||||
|
@ -136,7 +136,7 @@ zer_z: mov (sp),d0 ; bra 8b
|
||||||
and_1W: mov (sp)+,d1
|
and_1W: mov (sp)+,d1
|
||||||
an d1,(sp)
|
an d1,(sp)
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
and_l: adroff ; move.w (a1),d0 ; bra 1f
|
and_l: adroff ; move.w (a5),d0 ; bra 1f
|
||||||
and_z: mov (sp)+,d0
|
and_z: mov (sp)+,d0
|
||||||
1: ble e_oddz ; move.l d0,a0
|
1: ble e_oddz ; move.l d0,a0
|
||||||
move.l d7,d2
|
move.l d7,d2
|
||||||
|
@ -150,7 +150,7 @@ and_z: mov (sp)+,d0
|
||||||
ior_1W: mov (sp)+,d1; inor d1,(sp)
|
ior_1W: mov (sp)+,d1; inor d1,(sp)
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
ior_s0: clr.w d0 ; move.b (a3)+,d0; bra 4f
|
ior_s0: clr.w d0 ; move.b (a3)+,d0; bra 4f
|
||||||
ior_l: adroff ; move.w (a1),d0 ; bra 4f
|
ior_l: adroff ; move.w (a5),d0 ; bra 4f
|
||||||
ior_z: mov (sp)+,d0
|
ior_z: mov (sp)+,d0
|
||||||
4: ble e_oddz ; move.l d0,a0
|
4: ble e_oddz ; move.l d0,a0
|
||||||
move.l d7,d2
|
move.l d7,d2
|
||||||
|
@ -163,7 +163,7 @@ ior_z: mov (sp)+,d0
|
||||||
|
|
||||||
!----------------------------------------------------------------------------
|
!----------------------------------------------------------------------------
|
||||||
|
|
||||||
xor_l: adroff ; move.w (a1),d0 ; bra 6f
|
xor_l: adroff ; move.w (a5),d0 ; bra 6f
|
||||||
xor_z: mov (sp)+,d0
|
xor_z: mov (sp)+,d0
|
||||||
6: ble e_oddz ; move.l d0,a0
|
6: ble e_oddz ; move.l d0,a0
|
||||||
move.l d7,d2
|
move.l d7,d2
|
||||||
|
@ -175,7 +175,7 @@ xor_z: mov (sp)+,d0
|
||||||
|
|
||||||
!----------------------------------------------------------------------------
|
!----------------------------------------------------------------------------
|
||||||
|
|
||||||
com_l: adroff ; move.w (a1),d0 ; bra 0f
|
com_l: adroff ; move.w (a5),d0 ; bra 0f
|
||||||
com_z: mov (sp)+,d0
|
com_z: mov (sp)+,d0
|
||||||
0: ble e_oddz ; move.l d7,d2
|
0: ble e_oddz ; move.l d7,d2
|
||||||
1: asr.l #1,d0 ; dbcs d2,1b ; bcs e_oddz
|
1: asr.l #1,d0 ; dbcs d2,1b ; bcs e_oddz
|
||||||
|
@ -185,7 +185,7 @@ com_z: mov (sp)+,d0
|
||||||
|
|
||||||
!---------------------------------------------------------------------------
|
!---------------------------------------------------------------------------
|
||||||
|
|
||||||
rol_l: adroff ; move.w (a1),d0 ; bra 3f
|
rol_l: adroff ; move.w (a5),d0 ; bra 3f
|
||||||
rol_z: mov (sp)+,d0
|
rol_z: mov (sp)+,d0
|
||||||
3: ble e_oddz ; move.l d7,d2
|
3: ble e_oddz ; move.l d7,d2
|
||||||
4: asr.l #1,d0 ; dbcs d2,4b
|
4: asr.l #1,d0 ; dbcs d2,4b
|
||||||
|
@ -199,7 +199,7 @@ rol_z: mov (sp)+,d0
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
2: nega d1 ; bra 0f
|
2: nega d1 ; bra 0f
|
||||||
2: nega d1 ; bra 0b
|
2: nega d1 ; bra 0b
|
||||||
ror_l: adroff ; move.w (a1),d0 ; bra 6f
|
ror_l: adroff ; move.w (a5),d0 ; bra 6f
|
||||||
ror_z: mov (sp)+,d0
|
ror_z: mov (sp)+,d0
|
||||||
6: ble e_oddz ; move.l d7,d2
|
6: ble e_oddz ; move.l d7,d2
|
||||||
7: asr.l #1,d0 ; dbcs d2,7b
|
7: asr.l #1,d0 ; dbcs d2,7b
|
||||||
|
@ -232,7 +232,7 @@ set_s0: clr.w d0 ; move.b (a3)+,d0
|
||||||
#endif
|
#endif
|
||||||
bchg #0,d2 ; add.l d2,a0
|
bchg #0,d2 ; add.l d2,a0
|
||||||
bset d1,(a0) ; jmp (a4) !d1 mod 8 bit set
|
bset d1,(a0) ; jmp (a4) !d1 mod 8 bit set
|
||||||
set_l: adroff ; move.w (a1),d0 ; bra 0b
|
set_l: adroff ; move.w (a5),d0 ; bra 0b
|
||||||
set_z: mov (sp)+,d0; bra 0b
|
set_z: mov (sp)+,d0; bra 0b
|
||||||
|
|
||||||
!----------------------------------------------------------------------------
|
!----------------------------------------------------------------------------
|
||||||
|
@ -262,7 +262,7 @@ inn_s0: clr.w d0 ; move.b (a3)+,d0
|
||||||
btst d1,(a0) ; beq 7f
|
btst d1,(a0) ; beq 7f
|
||||||
mov #1,-(sp); jmp (a4)
|
mov #1,-(sp); jmp (a4)
|
||||||
7: cl -(sp) ; jmp (a4)
|
7: cl -(sp) ; jmp (a4)
|
||||||
inn_l: adroff ; move.w (a1),d0 ; bra 0b
|
inn_l: adroff ; move.w (a5),d0 ; bra 0b
|
||||||
inn_z: mov (sp)+,d0; bra 0b
|
inn_z: mov (sp)+,d0; bra 0b
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ calcarr: move.l (sp)+,d3 !save return address
|
||||||
|
|
||||||
aar_1W: bsr calcarr ; move.l a0,-(sp)
|
aar_1W: bsr calcarr ; move.l a0,-(sp)
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
aar_l: adroff ; cmp.w wrd,(a1)
|
aar_l: adroff ; cmp.w wrd,(a5)
|
||||||
0: bne e_illins ; bra aar_1W
|
0: bne e_illins ; bra aar_1W
|
||||||
aar_z: comp wrd,(sp)+ ; bra 0b
|
aar_z: comp wrd,(sp)+ ; bra 0b
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ lar_1W: bsr calcarr ; add.l d1,a0
|
||||||
7: mov -(a0),-(sp); dbra d1,7b
|
7: mov -(a0),-(sp); dbra d1,7b
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
|
|
||||||
lar_l: adroff ; cmp.w wrd,(a1)
|
lar_l: adroff ; cmp.w wrd,(a5)
|
||||||
8: bne e_illins; bra lar_1W
|
8: bne e_illins; bra lar_1W
|
||||||
lar_z: comp wrd,(sp)+ ; bra 8b
|
lar_z: comp wrd,(sp)+ ; bra 8b
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ sar_1W: bsr calcarr ; asr.w #1,d1
|
||||||
7: mov (sp)+,(a0)+ ; dbra d1,7b
|
7: mov (sp)+,(a0)+ ; dbra d1,7b
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
sar_z: comp wrd,(sp)+ ; bra 1f
|
sar_z: comp wrd,(sp)+ ; bra 1f
|
||||||
sar_l: adroff ; cmp.w wrd,(a1)
|
sar_l: adroff ; cmp.w wrd,(a5)
|
||||||
1: bne e_illins ; bra sar_1W
|
1: bne e_illins ; bra sar_1W
|
||||||
|
|
||||||
!-------------------------------------------------------------------------
|
!-------------------------------------------------------------------------
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
! SIGNED INTEGER ARITHMETIC
|
! SIGNED INTEGER ARITHMETIC
|
||||||
!------------------------------------------------------------------------------
|
!------------------------------------------------------------------------------
|
||||||
|
|
||||||
adi_l: adroff ; move.w (a1),d0 ; bra 1f
|
adi_l: adroff ; move.w (a5),d0 ; bra 1f
|
||||||
adi_z: mov (sp)+,d0
|
adi_z: mov (sp)+,d0
|
||||||
1: sub.w wrd,d0 ; beq adi_1W
|
1: sub.w wrd,d0 ; beq adi_1W
|
||||||
sub.w wrd,d0 ; beq adi_2W
|
sub.w wrd,d0 ; beq adi_2W
|
||||||
|
@ -40,7 +40,7 @@ adi_2W:
|
||||||
!--------------------------------------------------------------------------
|
!--------------------------------------------------------------------------
|
||||||
|
|
||||||
sbi_z: mov (sp)+,d0 ; bra 1f
|
sbi_z: mov (sp)+,d0 ; bra 1f
|
||||||
sbi_l: adroff ; move.w (a1),d0
|
sbi_l: adroff ; move.w (a5),d0
|
||||||
1: sub.w wrd,d0 ; beq sbi_1W
|
1: sub.w wrd,d0 ; beq sbi_1W
|
||||||
sub.w wrd,d0 ; beq sbi_2W
|
sub.w wrd,d0 ; beq sbi_2W
|
||||||
bra e_oddz
|
bra e_oddz
|
||||||
|
@ -71,7 +71,7 @@ sbi_2W:
|
||||||
!----------------------------------------------------------------------------
|
!----------------------------------------------------------------------------
|
||||||
|
|
||||||
mli_z: mov (sp)+,d0 ; bra 0f
|
mli_z: mov (sp)+,d0 ; bra 0f
|
||||||
mli_l: adroff ; move.w (a1),d0
|
mli_l: adroff ; move.w (a5),d0
|
||||||
0: sub.w wrd,d0 ; beq mli_1W
|
0: sub.w wrd,d0 ; beq mli_1W
|
||||||
sub.w wrd,d0 ; beq mli_2W
|
sub.w wrd,d0 ; beq mli_2W
|
||||||
bra e_oddz
|
bra e_oddz
|
||||||
|
@ -150,7 +150,7 @@ mlu4: move.l d1,d3 ; move.l d0,d2
|
||||||
!---------------------------------------------------------------------------
|
!---------------------------------------------------------------------------
|
||||||
|
|
||||||
dvi_z: mov (sp)+,d0 ; bra 0f
|
dvi_z: mov (sp)+,d0 ; bra 0f
|
||||||
dvi_l: adroff ; move.w (a1),d0
|
dvi_l: adroff ; move.w (a5),d0
|
||||||
0: sub.w wrd,d0 ; beq dvi_1W
|
0: sub.w wrd,d0 ; beq dvi_1W
|
||||||
sub.w wrd,d0 ; beq dvi_2W
|
sub.w wrd,d0 ; beq dvi_2W
|
||||||
bra e_oddz
|
bra e_oddz
|
||||||
|
@ -172,7 +172,7 @@ dvi_2W:
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
|
|
||||||
rmi_z: mov (sp)+,d0 ; bra 1f
|
rmi_z: mov (sp)+,d0 ; bra 1f
|
||||||
rmi_l: adroff ; move.w (a1),d0
|
rmi_l: adroff ; move.w (a5),d0
|
||||||
1: sub.l wrd,d0 ; beq rmi_1W
|
1: sub.l wrd,d0 ; beq rmi_1W
|
||||||
sub.l wrd,d0 ; beq rmi_2W
|
sub.l wrd,d0 ; beq rmi_2W
|
||||||
bra e_oddz
|
bra e_oddz
|
||||||
|
@ -255,7 +255,7 @@ dvu4:
|
||||||
!----------------------------------------------------------------------------
|
!----------------------------------------------------------------------------
|
||||||
|
|
||||||
ngi_z: mov (sp)+,d0 ; bra 0f
|
ngi_z: mov (sp)+,d0 ; bra 0f
|
||||||
ngi_l: adroff ; move.w (a1),d0
|
ngi_l: adroff ; move.w (a5),d0
|
||||||
0: sub.l wrd,d0 ; bne 2f
|
0: sub.l wrd,d0 ; bne 2f
|
||||||
#if test
|
#if test
|
||||||
comp und,(sp) ; bne 1f
|
comp und,(sp) ; bne 1f
|
||||||
|
@ -281,7 +281,7 @@ ngi_l: adroff ; move.w (a1),d0
|
||||||
!--------------------------------------------------------------------------
|
!--------------------------------------------------------------------------
|
||||||
|
|
||||||
sli_z: mov (sp)+,d0 ; bra 0f
|
sli_z: mov (sp)+,d0 ; bra 0f
|
||||||
sli_l: adroff ; move.w (a1),d0
|
sli_l: adroff ; move.w (a5),d0
|
||||||
0: sub.w wrd,d0 ; beq sli_1W
|
0: sub.w wrd,d0 ; beq sli_1W
|
||||||
sub.w wrd,d0 ; beq sli2
|
sub.w wrd,d0 ; beq sli2
|
||||||
bra e_oddz
|
bra e_oddz
|
||||||
|
@ -330,7 +330,7 @@ sli2:
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
sri_z: mov (sp)+,d0 ; bra 0f
|
sri_z: mov (sp)+,d0 ; bra 0f
|
||||||
sri_l: adroff ; move.w (a1),d0
|
sri_l: adroff ; move.w (a5),d0
|
||||||
0: sub.w wrd,d0 ; bne sri2
|
0: sub.w wrd,d0 ; bne sri2
|
||||||
mov (sp)+,d0
|
mov (sp)+,d0
|
||||||
bmi 7b
|
bmi 7b
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
!-----------------------------------------------------------------------------
|
!-----------------------------------------------------------------------------
|
||||||
|
|
||||||
adu_z: mov (sp)+,d0 ; bra 0f
|
adu_z: mov (sp)+,d0 ; bra 0f
|
||||||
adu_l: adroff ; move.w (a1),d0
|
adu_l: adroff ; move.w (a5),d0
|
||||||
0: checksize
|
0: checksize
|
||||||
2: move.w (sp)+,d1 ; add.w d1,(sp)
|
2: move.w (sp)+,d1 ; add.w d1,(sp)
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
|
@ -16,7 +16,7 @@ adu_l: adroff ; move.w (a1),d0
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
|
|
||||||
sbu_z: mov (sp)+,d0 ; bra 0f
|
sbu_z: mov (sp)+,d0 ; bra 0f
|
||||||
sbu_l: adroff ; move.w (a1),d0
|
sbu_l: adroff ; move.w (a5),d0
|
||||||
0: checksize
|
0: checksize
|
||||||
2: move.w (sp)+,d1 ; sub.w d1,(sp)
|
2: move.w (sp)+,d1 ; sub.w d1,(sp)
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
|
@ -26,7 +26,7 @@ sbu_l: adroff ; move.w (a1),d0
|
||||||
!------------------------------------------------------------------------------
|
!------------------------------------------------------------------------------
|
||||||
|
|
||||||
mlu_z: mov (sp)+,d0 ; bra 0f
|
mlu_z: mov (sp)+,d0 ; bra 0f
|
||||||
mlu_l: adroff ; move.w (a1),d0
|
mlu_l: adroff ; move.w (a5),d0
|
||||||
0: checksize
|
0: checksize
|
||||||
2: move.w (sp)+,d0 ; mulu (sp),d0
|
2: move.w (sp)+,d0 ; mulu (sp),d0
|
||||||
move.w d0,(sp) ; jmp (a4)
|
move.w d0,(sp) ; jmp (a4)
|
||||||
|
@ -37,7 +37,7 @@ mlu_l: adroff ; move.w (a1),d0
|
||||||
!----------------------------------------------------------------------------
|
!----------------------------------------------------------------------------
|
||||||
|
|
||||||
dvu_z: mov (sp)+,d0 ; bra 0f
|
dvu_z: mov (sp)+,d0 ; bra 0f
|
||||||
dvu_l: adroff ; move.w (a1),d0
|
dvu_l: adroff ; move.w (a5),d0
|
||||||
0: checksize
|
0: checksize
|
||||||
2: move.w (sp)+,d1 ; beq 3f
|
2: move.w (sp)+,d1 ; beq 3f
|
||||||
move.w (sp),d0 ; divu d1,d0
|
move.w (sp),d0 ; divu d1,d0
|
||||||
|
@ -51,7 +51,7 @@ dvu_l: adroff ; move.w (a1),d0
|
||||||
!----------------------------------------------------------------------------
|
!----------------------------------------------------------------------------
|
||||||
|
|
||||||
rmu_z: mov (sp)+,d0 ; bra 0f
|
rmu_z: mov (sp)+,d0 ; bra 0f
|
||||||
rmu_l: adroff ; move.w (a1),d0
|
rmu_l: adroff ; move.w (a5),d0
|
||||||
0: checksize
|
0: checksize
|
||||||
2: move.w (sp)+,d1 ; beq 3f
|
2: move.w (sp)+,d1 ; beq 3f
|
||||||
move.w (sp),d0 ; divu d1,d0
|
move.w (sp),d0 ; divu d1,d0
|
||||||
|
@ -66,7 +66,7 @@ rmu_l: adroff ; move.w (a1),d0
|
||||||
!------------------------------------------------------------------------.
|
!------------------------------------------------------------------------.
|
||||||
|
|
||||||
slu_z: mov (sp)+,d0 ; bra 0f
|
slu_z: mov (sp)+,d0 ; bra 0f
|
||||||
slu_l: adroff ; move.w (a1),d0
|
slu_l: adroff ; move.w (a5),d0
|
||||||
0: checksize
|
0: checksize
|
||||||
2: move.w (sp)+,d0
|
2: move.w (sp)+,d0
|
||||||
bmi 7f
|
bmi 7f
|
||||||
|
@ -85,7 +85,7 @@ slu_l: adroff ; move.w (a1),d0
|
||||||
9: nega d0 ; bra 5b
|
9: nega d0 ; bra 5b
|
||||||
|
|
||||||
sru_z: mov (sp)+,d0 ; bra 0f
|
sru_z: mov (sp)+,d0 ; bra 0f
|
||||||
sru_l: adroff ; move.w (a1),d0
|
sru_l: adroff ; move.w (a5),d0
|
||||||
0: checksize
|
0: checksize
|
||||||
2: move.w (sp)+,d0
|
2: move.w (sp)+,d0
|
||||||
bmi 7b
|
bmi 7b
|
||||||
|
@ -102,7 +102,7 @@ sru_l: adroff ; move.w (a1),d0
|
||||||
! DUMMY FLOATING POINT ROUTINES
|
! DUMMY FLOATING POINT ROUTINES
|
||||||
!------------------------------------------------------------------------------
|
!------------------------------------------------------------------------------
|
||||||
adf_l: sbf_l: mlf_l: dvf_l:
|
adf_l: sbf_l: mlf_l: dvf_l:
|
||||||
adroff ; move.w (a1),d0
|
adroff ; move.w (a5),d0
|
||||||
1: add.l d0,sp
|
1: add.l d0,sp
|
||||||
#ifdef FLTRAP
|
#ifdef FLTRAP
|
||||||
bra flnim
|
bra flnim
|
||||||
|
|
|
@ -88,7 +88,7 @@ nobr3: add.l #2,a3 ; jmp (a4)
|
||||||
!-----------------------------------------------------------------------------
|
!-----------------------------------------------------------------------------
|
||||||
|
|
||||||
cmi_z: mov (sp)+,d0 ; bra 0f
|
cmi_z: mov (sp)+,d0 ; bra 0f
|
||||||
cmi_l: adroff ; move.w (a1),d0
|
cmi_l: adroff ; move.w (a5),d0
|
||||||
0: sub.w wrd,d0 ; beq cmi_1W
|
0: sub.w wrd,d0 ; beq cmi_1W
|
||||||
sub.w wrd,d0 ; beq cmi_2W
|
sub.w wrd,d0 ; beq cmi_2W
|
||||||
bra e_oddz
|
bra e_oddz
|
||||||
|
@ -104,7 +104,7 @@ cmi_2W:
|
||||||
bra 1b
|
bra 1b
|
||||||
|
|
||||||
cmu_z: mov (sp)+,d0 ; bra 4f
|
cmu_z: mov (sp)+,d0 ; bra 4f
|
||||||
cmu_l: adroff ; move.w (a1),d0
|
cmu_l: adroff ; move.w (a5),d0
|
||||||
4: sub.w wrd,d0 ; bne 5f
|
4: sub.w wrd,d0 ; bne 5f
|
||||||
comp (sp)+,(sp)+ ; bcs 3b
|
comp (sp)+,(sp)+ ; bcs 3b
|
||||||
beq 2b ; bra 1b
|
beq 2b ; bra 1b
|
||||||
|
@ -115,7 +115,7 @@ cmu_l: adroff ; move.w (a1),d0
|
||||||
cmp_z: cmp.l (sp)+,(sp)+ ; bcs 3b
|
cmp_z: cmp.l (sp)+,(sp)+ ; bcs 3b
|
||||||
beq 2b ; bra 1b
|
beq 2b ; bra 1b
|
||||||
|
|
||||||
cms_l: adroff ; move.w (a1),d0
|
cms_l: adroff ; move.w (a5),d0
|
||||||
bra 0f
|
bra 0f
|
||||||
cms_z: mov (sp)+,d0 ; bra 0f
|
cms_z: mov (sp)+,d0 ; bra 0f
|
||||||
cms_s0: move.l d6,d0 ; move.b (a3)+,d0
|
cms_s0: move.l d6,d0 ; move.b (a3)+,d0
|
||||||
|
@ -140,7 +140,7 @@ cmf_s0: move.l d6,d0 ; move.b (a3)+,d0
|
||||||
#else
|
#else
|
||||||
jmp (a4)
|
jmp (a4)
|
||||||
#endif
|
#endif
|
||||||
cmf_l: adroff ; move.w (a1),d0 ; bra 9b
|
cmf_l: adroff ; move.w (a5),d0 ; bra 9b
|
||||||
cmf_z: mov (sp)+,d0 ; bra 9b
|
cmf_z: mov (sp)+,d0 ; bra 9b
|
||||||
|
|
||||||
!-------------------------------------------------------------------------
|
!-------------------------------------------------------------------------
|
||||||
|
@ -149,7 +149,7 @@ cmf_z: mov (sp)+,d0 ; bra 9b
|
||||||
|
|
||||||
cai_z: move.l (sp)+,d0 ; bra 1f
|
cai_z: move.l (sp)+,d0 ; bra 1f
|
||||||
cal_q: move.l (sp)+,d0 ; bra 1f
|
cal_q: move.l (sp)+,d0 ; bra 1f
|
||||||
cal_l: adroff ; move.w (a1),d0 ; bra 1f
|
cal_l: adroff ; move.w (a5),d0 ; bra 1f
|
||||||
cal_s0: move.w d6,d0 ; move.b (a3)+,d0 ; bra 1f
|
cal_s0: move.w d6,d0 ; move.b (a3)+,d0 ; bra 1f
|
||||||
cal_1: cal_2: cal_3: cal_4: cal_5: cal_6: cal_7: cal_8:
|
cal_1: cal_2: cal_3: cal_4: cal_5: cal_6: cal_7: cal_8:
|
||||||
cal_9: cal_10: cal_11: cal_12: cal_13: cal_14: cal_15: cal_16:
|
cal_9: cal_10: cal_11: cal_12: cal_13: cal_14: cal_15: cal_16:
|
||||||
|
@ -184,7 +184,7 @@ lblcal:
|
||||||
2: mov und,-(sp) ; dbra d1,2b
|
2: mov und,-(sp) ; dbra d1,2b
|
||||||
3: move.l (a0),a3 ; jmp (a4)
|
3: move.l (a0),a3 ; jmp (a4)
|
||||||
|
|
||||||
ret_l: adroff ; move.w (a1),d0
|
ret_l: adroff ; move.w (a5),d0
|
||||||
bra 1f
|
bra 1f
|
||||||
ret_s0: move.l #0,d0 ; move.b (a3)+,d0
|
ret_s0: move.l #0,d0 ; move.b (a3)+,d0
|
||||||
1: blt e_oddz ; beq ret_0
|
1: blt e_oddz ; beq ret_0
|
||||||
|
@ -194,8 +194,8 @@ ret_s0: move.l #0,d0 ; move.b (a3)+,d0
|
||||||
bra 5f
|
bra 5f
|
||||||
ret_1W: move.l #0,d0
|
ret_1W: move.l #0,d0
|
||||||
5: move.w d0,retsize !RETSIZE CONTAINS
|
5: move.w d0,retsize !RETSIZE CONTAINS
|
||||||
3: mov (sp)+,(a1)+ ; dbra d0,3b ! #WORDS-1
|
3: mov (sp)+,(a5)+ ; dbra d0,3b ! #WORDS-1
|
||||||
lea retarea,a1 ; bra 4f
|
lea retarea,a5 ; bra 4f
|
||||||
ret_0: move.w #-1,retsize
|
ret_0: move.w #-1,retsize
|
||||||
4: unlk a2 ; cmp.l a2,d6
|
4: unlk a2 ; cmp.l a2,d6
|
||||||
beq hlt_z ; move.l (sp)+,a3
|
beq hlt_z ; move.l (sp)+,a3
|
||||||
|
@ -225,8 +225,8 @@ ret_0: move.w #-1,retsize
|
||||||
lfr_1W: move.w d6,d0 ; move.l wrd,d1
|
lfr_1W: move.w d6,d0 ; move.l wrd,d1
|
||||||
0: cmp.w retsize,d0 ; beq 1f
|
0: cmp.w retsize,d0 ; beq 1f
|
||||||
bsr e_badlfr
|
bsr e_badlfr
|
||||||
1: add.l d1,a1
|
1: add.l d1,a5
|
||||||
2: mov -(a1),-(sp) ; dbra d0,2b
|
2: mov -(a5),-(sp) ; dbra d0,2b
|
||||||
5: jmp (a4)
|
5: jmp (a4)
|
||||||
lfr_l: move.b (a3)+,-(sp) ; move.b (a3)+,1(sp)
|
lfr_l: move.b (a3)+,-(sp) ; move.b (a3)+,1(sp)
|
||||||
move.w (sp)+,d0 ; bra 3f
|
move.w (sp)+,d0 ; bra 3f
|
||||||
|
|
|
@ -38,31 +38,31 @@ asp_qw: move.l (sp)+,d0 ; bra 6b
|
||||||
|
|
||||||
!-----------------------------------------------------------------------------
|
!-----------------------------------------------------------------------------
|
||||||
bls_z: mov (sp)+,d0 ; bra 0f
|
bls_z: mov (sp)+,d0 ; bra 0f
|
||||||
bls_l: adroff ; move.w (a1),d0
|
bls_l: adroff ; move.w (a5),d0
|
||||||
0: checksize
|
0: checksize
|
||||||
2: move.w (sp)+,d0 ; bra 0f
|
2: move.w (sp)+,d0 ; bra 0f
|
||||||
4: move.l (sp)+,d0 ; bra 0f
|
4: move.l (sp)+,d0 ; bra 0f
|
||||||
|
|
||||||
blm_q: move.l (sp)+,d0 ; bra 0f
|
blm_q: move.l (sp)+,d0 ; bra 0f
|
||||||
blm_l: adroff ; move.w (a1),d0
|
blm_l: adroff ; move.w (a5),d0
|
||||||
bra 0f
|
bra 0f
|
||||||
blm_s0: move.l d6,d0 ; move.b (a3)+,d0
|
blm_s0: move.l d6,d0 ; move.b (a3)+,d0
|
||||||
0: move.l d0,d2 ; asr.w wmu,d2
|
0: move.l d0,d2 ; asr.w wmu,d2
|
||||||
beq 5f ; move.l a1,d1
|
beq 5f ; move.l a5,d1
|
||||||
sub.w #1,d2 ; move.l (sp)+,a0 !dest. address
|
sub.w #1,d2 ; move.l (sp)+,a0 !dest. address
|
||||||
move.l (sp)+,a1 ; cmp.l a0,a1
|
move.l (sp)+,a5 ; cmp.l a0,a5
|
||||||
!a1 contains source address. beware of overlap of pieces
|
!a5 contains source address. beware of overlap of pieces
|
||||||
beq 3f ; bcs 2f
|
beq 3f ; bcs 2f
|
||||||
1: mov (a1)+,(a0)+ ; dbra d2,1b
|
1: mov (a5)+,(a0)+ ; dbra d2,1b
|
||||||
3: move.l d1,a1
|
3: move.l d1,a5
|
||||||
5: jmp (a4)
|
5: jmp (a4)
|
||||||
2: add.l d0,a1 ; add.l d0,a0
|
2: add.l d0,a5 ; add.l d0,a0
|
||||||
4: mov -(a1),-(a0) ; dbra d2,4b
|
4: mov -(a5),-(a0) ; dbra d2,4b
|
||||||
bra 3b
|
bra 3b
|
||||||
|
|
||||||
!----------------------------------------------------------------------------
|
!----------------------------------------------------------------------------
|
||||||
csa_z: mov (sp)+,d0 ; bra 0f
|
csa_z: mov (sp)+,d0 ; bra 0f
|
||||||
csa_l: adroff ; move.w (a1),d0
|
csa_l: adroff ; move.w (a5),d0
|
||||||
0: sub.l wrd,d0 ; bne e_illins
|
0: sub.l wrd,d0 ; bne e_illins
|
||||||
csa_1W: move.l (sp)+,a0 ; mov (sp)+,d0
|
csa_1W: move.l (sp)+,a0 ; mov (sp)+,d0
|
||||||
add.l #4,a0 ; subt (a0),d0
|
add.l #4,a0 ; subt (a0),d0
|
||||||
|
@ -70,14 +70,14 @@ csa_1W: move.l (sp)+,a0 ; mov (sp)+,d0
|
||||||
comp word(a0),d0 ; bhi 6f
|
comp word(a0),d0 ; bhi 6f
|
||||||
extend d0
|
extend d0
|
||||||
asl.l #2,d0 ; add.l wrd,d0
|
asl.l #2,d0 ; add.l wrd,d0
|
||||||
move.l a0,a5 ; add.l d0,a5
|
move.l a0,a1 ; add.l d0,a1
|
||||||
move.l word(a5),d1 ; bne 5f
|
move.l word(a1),d1 ; bne 5f
|
||||||
6: sub.l #4,a0 ; move.l (a0),d1
|
6: sub.l #4,a0 ; move.l (a0),d1
|
||||||
beq e_case
|
beq e_case
|
||||||
5: move.l d1,a3 ; jmp (a4)
|
5: move.l d1,a3 ; jmp (a4)
|
||||||
|
|
||||||
csb_z: mov (sp)+,d0 ; bra 0f
|
csb_z: mov (sp)+,d0 ; bra 0f
|
||||||
csb_l: adroff ; move.w (a1),d0
|
csb_l: adroff ; move.w (a5),d0
|
||||||
0: comp wrd,d0 ; bne e_illins
|
0: comp wrd,d0 ; bne e_illins
|
||||||
csb_1W: move.l (sp)+,a0 ; mov (sp)+,d0
|
csb_1W: move.l (sp)+,a0 ; mov (sp)+,d0
|
||||||
mov 4(a0),d1 ; sub.l #1,d1
|
mov 4(a0),d1 ; sub.l #1,d1
|
||||||
|
@ -101,10 +101,10 @@ lpb_z: add.l #0+l0,(sp) ; jmp (a4)
|
||||||
!----------------------------------------------------------------------------
|
!----------------------------------------------------------------------------
|
||||||
|
|
||||||
dup_1W: mov (sp),-(sp) ; jmp (a4)
|
dup_1W: mov (sp),-(sp) ; jmp (a4)
|
||||||
dup_l: adroff ; move.w (a1),d0
|
dup_l: adroff ; move.w (a5),d0
|
||||||
bra 1f
|
bra 1f
|
||||||
dus_z: mov (sp)+,d0 ; bra 0f
|
dus_z: mov (sp)+,d0 ; bra 0f
|
||||||
dus_l: adroff ; move.w (a1),d0
|
dus_l: adroff ; move.w (a5),d0
|
||||||
0: checksize
|
0: checksize
|
||||||
2: move.w (sp)+,d0 ; bra 1f
|
2: move.w (sp)+,d0 ; bra 1f
|
||||||
4: move.l (sp)+,d0
|
4: move.l (sp)+,d0
|
||||||
|
@ -117,7 +117,7 @@ dus_l: adroff ; move.w (a1),d0
|
||||||
|
|
||||||
!-----------------------------------------------------------------------------
|
!-----------------------------------------------------------------------------
|
||||||
exg_z: mov (sp)+,d0 ; bra 0f
|
exg_z: mov (sp)+,d0 ; bra 0f
|
||||||
exg_l: adroff ; move.w (a1),d0
|
exg_l: adroff ; move.w (a5),d0
|
||||||
bra 0f
|
bra 0f
|
||||||
exg_s0: move.l d6,d0 ; move.b (a3)+,d0
|
exg_s0: move.l d6,d0 ; move.b (a3)+,d0
|
||||||
0: move.l d7,d1 ; move.l d0,a0
|
0: move.l d7,d1 ; move.l d0,a0
|
||||||
|
@ -185,7 +185,7 @@ str_s0: move.l d6,d0 ; move.b (a3)+,d0
|
||||||
|
|
||||||
!----------------------------------------------------------------------------
|
!----------------------------------------------------------------------------
|
||||||
rck_z: mov (sp)+,d0 ; bra 0f
|
rck_z: mov (sp)+,d0 ; bra 0f
|
||||||
rck_l: adroff ; move.w (a1),d0
|
rck_l: adroff ; move.w (a5),d0
|
||||||
0: sub.l wrd,d0 ; beq rck_1W
|
0: sub.l wrd,d0 ; beq rck_1W
|
||||||
sub.l wrd,d0 ; bne e_oddz
|
sub.l wrd,d0 ; bne e_oddz
|
||||||
move.l (sp)+,a0
|
move.l (sp)+,a0
|
||||||
|
@ -229,16 +229,16 @@ itoa: move.l #9,d4 ; add.l #11,a0
|
||||||
|
|
||||||
!------------------------------------------------------------------------------
|
!------------------------------------------------------------------------------
|
||||||
fil_q: move.l (sp)+,a0 ; bra 3f
|
fil_q: move.l (sp)+,a0 ; bra 3f
|
||||||
fil_l: adroff ; move.w (a1),d0
|
fil_l: adroff ; move.w (a5),d0
|
||||||
move.l d0,a0
|
move.l d0,a0
|
||||||
3: add.l a6,a0 ; cmp.l 4(a6),a0
|
3: add.l a6,a0 ; cmp.l 4(a6),a0
|
||||||
beq 0f
|
beq 0f
|
||||||
#if flow+count+prof
|
#if flow+count+prof
|
||||||
move.l curproc,a5
|
move.l curproc,a1
|
||||||
move.l 8(a5),d0
|
move.l 8(a1),d0
|
||||||
sub.l 12(a5),d0
|
sub.l 12(a1),d0
|
||||||
move.l d0,countfld !START COUNTPTR FOR THIS PROC
|
move.l d0,countfld !START COUNTPTR FOR THIS PROC
|
||||||
move.l a0,20(a5) !FILE POINTER IN PROC DES
|
move.l a0,20(a1) !FILE POINTER IN PROC DES
|
||||||
#endif
|
#endif
|
||||||
move.l a0,4(a6)
|
move.l a0,4(a6)
|
||||||
0: jmp (a4)
|
0: jmp (a4)
|
||||||
|
@ -252,7 +252,7 @@ lni_z: add.l #1,(a6)
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
bra 8f
|
bra 8f
|
||||||
lin_l: adroff ; move.w (a1),d0 ; bra 1f
|
lin_l: adroff ; move.w (a5),d0 ; bra 1f
|
||||||
lin_q: move.l (sp)+,d0 ; bra 1f
|
lin_q: move.l (sp)+,d0 ; bra 1f
|
||||||
lin_s0: move.l #0,d0 ; move.b (a3)+,d0
|
lin_s0: move.l #0,d0 ; move.b (a3)+,d0
|
||||||
1: cmp.l (a6),d0 ; beq 9f
|
1: cmp.l (a6),d0 ; beq 9f
|
||||||
|
@ -269,8 +269,9 @@ lin_s0: move.l #0,d0 ; move.b (a3)+,d0
|
||||||
#endif
|
#endif
|
||||||
8:
|
8:
|
||||||
#if last
|
#if last
|
||||||
bsr nexttab ; move.l 4(a6),(a5)+ !store new line
|
bsr nexttab ;
|
||||||
move.l (a6),(a5) !number in buffer lasttable
|
move.l 4(a6),(a1)+ !store new line
|
||||||
|
move.l (a6),(a1) !number in buffer lasttable
|
||||||
#endif
|
#endif
|
||||||
#if count
|
#if count
|
||||||
move.l countptr,d1 !LINE NUMBER IN d1
|
move.l countptr,d1 !LINE NUMBER IN d1
|
||||||
|
@ -311,7 +312,7 @@ syscal:
|
||||||
.data4 e_badmon, _Xdup, _Xpipe, _Xtimes
|
.data4 e_badmon, _Xdup, _Xpipe, _Xtimes
|
||||||
.data4 _Xprofil, e_badmon, _Xsetgid, _Xgetgid
|
.data4 _Xprofil, e_badmon, _Xsetgid, _Xgetgid
|
||||||
.data4 _sigtrp, e_badmon, e_badmon, _Xacct
|
.data4 _sigtrp, e_badmon, e_badmon, _Xacct
|
||||||
.data4 e_badmon, _Xlock, _Xioctl, e_badmon
|
.data4 e_badmon, e_badmon, _Xioctl, e_badmon
|
||||||
.data4 e_badmon, e_badmon, e_badmon, _Xexece
|
.data4 e_badmon, e_badmon, e_badmon, _Xexece
|
||||||
.data4 _Xumask, _Xchroot, e_badmon, e_badmon
|
.data4 _Xumask, _Xchroot, e_badmon, e_badmon
|
||||||
|
|
||||||
|
|
|
@ -39,9 +39,9 @@ fatal: clr.l -(sp) !dummy return address
|
||||||
|
|
||||||
error: movem.l d0/d1/d2/d3/d4/d5/d6/d7/a0/a1/a2/a3/a4/a5/a6,-(sp)
|
error: movem.l d0/d1/d2/d3/d4/d5/d6/d7/a0/a1/a2/a3/a4/a5/a6,-(sp)
|
||||||
mov 60(sp),d0 !ERROR NUMBER IN d0
|
mov 60(sp),d0 !ERROR NUMBER IN d0
|
||||||
lea retsize,a5
|
lea retsize,a1
|
||||||
move.l #16,d1
|
move.l #16,d1
|
||||||
1: move.w -(a5),-(sp)
|
1: move.w -(a1),-(sp)
|
||||||
dbra d1,1b
|
dbra d1,1b
|
||||||
cmp.w #0xB,d0
|
cmp.w #0xB,d0
|
||||||
bge 0f !FATAL ERROR , START ERROR HANDLING
|
bge 0f !FATAL ERROR , START ERROR HANDLING
|
||||||
|
@ -52,8 +52,8 @@ error: movem.l d0/d1/d2/d3/d4/d5/d6/d7/a0/a1/a2/a3/a4/a5/a6,-(sp)
|
||||||
and.w d2,d1
|
and.w d2,d1
|
||||||
bne 0f
|
bne 0f
|
||||||
move.l #16,d1
|
move.l #16,d1
|
||||||
lea retsize,a5
|
lea retsize,a1
|
||||||
1: move.w (sp)+,(a5)+
|
1: move.w (sp)+,(a1)+
|
||||||
dbra d1,1b
|
dbra d1,1b
|
||||||
movem.l (sp)+,d0/d1/d2/d3/d4/d5/d6/d7/a0/a1/a2/a3/a4/a5/a6
|
movem.l (sp)+,d0/d1/d2/d3/d4/d5/d6/d7/a0/a1/a2/a3/a4/a5/a6
|
||||||
|
|
||||||
|
@ -73,8 +73,8 @@ rtt_z: move.l a2,sp
|
||||||
add.l #0x10,sp !REMOVE RETURN STATUS BLOCK
|
add.l #0x10,sp !REMOVE RETURN STATUS BLOCK
|
||||||
add.l wrd,sp !REMOVE ERROR NUMBER
|
add.l wrd,sp !REMOVE ERROR NUMBER
|
||||||
move.l #16,d0
|
move.l #16,d0
|
||||||
lea retsize,a5
|
lea retsize,a1
|
||||||
1: move.w (sp)+,(a5)+
|
1: move.w (sp)+,(a1)+
|
||||||
dbra d0,1b
|
dbra d0,1b
|
||||||
movem.l (sp)+,d0/d1/d2/d3/d4/d5/d6/d7/a0/a1/a2/a3/a4/a5/a6
|
movem.l (sp)+,d0/d1/d2/d3/d4/d5/d6/d7/a0/a1/a2/a3/a4/a5/a6
|
||||||
add.l wrd,sp
|
add.l wrd,sp
|
||||||
|
@ -126,12 +126,12 @@ notrap1: comp #29,d0 !ERROR NUMBER STILL IN d0
|
||||||
2: move.l 4(a6),a0
|
2: move.l 4(a6),a0
|
||||||
cmp.l #0,a0
|
cmp.l #0,a0
|
||||||
beq 5f
|
beq 5f
|
||||||
move.l a0,a5
|
move.l a0,a1
|
||||||
sub.l #4,sp
|
sub.l #4,sp
|
||||||
move.l a5,-(sp)
|
move.l a1,-(sp)
|
||||||
move.l #-1,d0
|
move.l #-1,d0
|
||||||
1: add.l #1,d0
|
1: add.l #1,d0
|
||||||
tst.b (a5)+
|
tst.b (a1)+
|
||||||
bne 1b
|
bne 1b
|
||||||
move.l d0,4(sp)
|
move.l d0,4(sp)
|
||||||
mov #2,-(sp)
|
mov #2,-(sp)
|
||||||
|
@ -249,8 +249,8 @@ lhalt:
|
||||||
beq 0f
|
beq 0f
|
||||||
bsr nexttab
|
bsr nexttab
|
||||||
bra 1f
|
bra 1f
|
||||||
0: lea lasttable,a5
|
0: lea lasttable,a1
|
||||||
1: tst.l (a5)
|
1: tst.l (a1)
|
||||||
bne 2f !exists entry in table
|
bne 2f !exists entry in table
|
||||||
move.l #22,-(sp) !here case no lines processed
|
move.l #22,-(sp) !here case no lines processed
|
||||||
pea mess1
|
pea mess1
|
||||||
|
@ -263,9 +263,9 @@ lhalt:
|
||||||
mov d6,-(sp)
|
mov d6,-(sp)
|
||||||
bsr _Xwrite
|
bsr _Xwrite
|
||||||
add.l wrd+4,sp
|
add.l wrd+4,sp
|
||||||
move.l (a5),d7
|
move.l (a1),d7
|
||||||
move.l d7,a0 !keep file pointer in d7
|
move.l d7,a0 !keep file pointer in d7
|
||||||
clr.l (a5)+ !this will stop the printing
|
clr.l (a1)+ !this will stop the printing
|
||||||
move.l #-1,d1 !d1 will contain length of file name
|
move.l #-1,d1 !d1 will contain length of file name
|
||||||
3: add.l #1,d1
|
3: add.l #1,d1
|
||||||
tst.b (a0)+
|
tst.b (a0)+
|
||||||
|
@ -275,7 +275,7 @@ lhalt:
|
||||||
mov d6,-(sp)
|
mov d6,-(sp)
|
||||||
bsr _Xwrite
|
bsr _Xwrite
|
||||||
add.l wrd+4,sp
|
add.l wrd+4,sp
|
||||||
4: move.l (a5),d1 !next print line numbers
|
4: move.l (a1),d1 !next print line numbers
|
||||||
lea mess3,a0
|
lea mess3,a0
|
||||||
bsr itoa
|
bsr itoa
|
||||||
move.l #12,-(sp)
|
move.l #12,-(sp)
|
||||||
|
@ -284,11 +284,11 @@ lhalt:
|
||||||
bsr _Xwrite
|
bsr _Xwrite
|
||||||
add.l wrd+4,sp
|
add.l wrd+4,sp
|
||||||
bsr nexttab
|
bsr nexttab
|
||||||
tst.l (a5) !in case 0 no more lines
|
tst.l (a1) !in case 0 no more lines
|
||||||
beq 9f
|
beq 9f
|
||||||
cmp.l (a5),d7
|
cmp.l (a1),d7
|
||||||
bne 2b !new file name
|
bne 2b !new file name
|
||||||
clr.l (a5)+ !skip file name
|
clr.l (a1)+ !skip file name
|
||||||
bra 4b !only new line
|
bra 4b !only new line
|
||||||
9:
|
9:
|
||||||
.sect .data
|
.sect .data
|
||||||
|
@ -345,12 +345,12 @@ emess:
|
||||||
!------------------------------------------------------------------------------
|
!------------------------------------------------------------------------------
|
||||||
.sect .text
|
.sect .text
|
||||||
#if last
|
#if last
|
||||||
nexttab: move.l linused,a5
|
nexttab: move.l linused,a1
|
||||||
add.l #8,a5
|
add.l #8,a1
|
||||||
cmp.l #linused,a5 !top of buffer reached?
|
cmp.l #linused,a1 !top of buffer reached?
|
||||||
bne 1f !if so back to bottom
|
bne 1f !if so back to bottom
|
||||||
sub.l #512,a5
|
sub.l #512,a1
|
||||||
1: move.l a5,linused
|
1: move.l a1,linused
|
||||||
rts
|
rts
|
||||||
#endif
|
#endif
|
||||||
#if count+prof
|
#if count+prof
|
||||||
|
@ -359,9 +359,9 @@ nexttab: move.l linused,a5
|
||||||
.sect .text
|
.sect .text
|
||||||
tabprint: mov d0,-(sp) !KEEP FILE DESCRIPTOR FOR WRITING
|
tabprint: mov d0,-(sp) !KEEP FILE DESCRIPTOR FOR WRITING
|
||||||
lea buffer,a3
|
lea buffer,a3
|
||||||
move.l firstp,a5 !IN a5 POINTER TO CURRENT PROC.
|
move.l firstp,a1 !IN a1 POINTER TO CURRENT PROC.
|
||||||
move.l #0,a2 !IN a2 POINTER TO FILENAME .
|
move.l #0,a2 !IN a2 POINTER TO FILENAME .
|
||||||
2: move.l 16(a5),d0
|
2: move.l 16(a1),d0
|
||||||
beq 9f !LAST PROCEDURE , EXCEPTION .
|
beq 9f !LAST PROCEDURE , EXCEPTION .
|
||||||
move.l d0,a6 !IN a6 POINTER TO NEXT PROCEDURE .
|
move.l d0,a6 !IN a6 POINTER TO NEXT PROCEDURE .
|
||||||
7: move.l 8(a6),d7 !COUNTPTR OF NEXT IN d7
|
7: move.l 8(a6),d7 !COUNTPTR OF NEXT IN d7
|
||||||
|
@ -370,12 +370,12 @@ tabprint: mov d0,-(sp) !KEEP FILE DESCRIPTOR FOR WRITING
|
||||||
beq 9f
|
beq 9f
|
||||||
move.l d0,a6
|
move.l d0,a6
|
||||||
bra 7b
|
bra 7b
|
||||||
8: move.l 8(a5),d6 !COUNTPTR OF CURRENT IN d6.
|
8: move.l 8(a1),d6 !COUNTPTR OF CURRENT IN d6.
|
||||||
move.l 12(a5),d5 !FIRST LINE NUMBER IN d5.
|
move.l 12(a1),d5 !FIRST LINE NUMBER IN d5.
|
||||||
beq 1f !NO LINES : GO ON.
|
beq 1f !NO LINES : GO ON.
|
||||||
cmp.l 20(a5),a2 !START PRINTING FILE NAME .
|
cmp.l 20(a1),a2 !START PRINTING FILE NAME .
|
||||||
beq 6f !NO NEW NAME.
|
beq 6f !NO NEW NAME.
|
||||||
move.l 20(a5),a2 !NEW FILE NAME.
|
move.l 20(a1),a2 !NEW FILE NAME.
|
||||||
cmp.l #0,a2 !NO FILE NAME .
|
cmp.l #0,a2 !NO FILE NAME .
|
||||||
beq 6f
|
beq 6f
|
||||||
move.l #0,d1 !START SCANNING FILE NAME
|
move.l #0,d1 !START SCANNING FILE NAME
|
||||||
|
@ -407,8 +407,8 @@ tabprint: mov d0,-(sp) !KEEP FILE DESCRIPTOR FOR WRITING
|
||||||
add.l #4,d6 !NEXT COUNT.
|
add.l #4,d6 !NEXT COUNT.
|
||||||
sub.l #1,d7 !ONE LINE LESS TO GO.
|
sub.l #1,d7 !ONE LINE LESS TO GO.
|
||||||
bhi 0b
|
bhi 0b
|
||||||
1: move.l a6,a5
|
1: move.l a6,a1
|
||||||
cmp.l #0,a5
|
cmp.l #0,a1
|
||||||
bne 2b
|
bne 2b
|
||||||
add.l wrd,sp !REMOVE FILE DESCR.
|
add.l wrd,sp !REMOVE FILE DESCR.
|
||||||
rts !READY.
|
rts !READY.
|
||||||
|
|
|
@ -15,8 +15,8 @@ _sigtrp: move.l (sp)+,d2 !save return address
|
||||||
move.l d4,a0
|
move.l d4,a0
|
||||||
add.l a0,a0
|
add.l a0,a0
|
||||||
add.l a0,a0
|
add.l a0,a0
|
||||||
lea sig_trp-4(a0),a5
|
lea sig_trp-4(a0),a1
|
||||||
move.l (a5),d2 !previous trap number in d2
|
move.l (a1),d2 !previous trap number in d2
|
||||||
comp #256,d1 !-2 and -1 special
|
comp #256,d1 !-2 and -1 special
|
||||||
bcc 1f
|
bcc 1f
|
||||||
move.l sig_adr-4(a0),d3 !Get the pointer to the trap-
|
move.l sig_adr-4(a0),d3 !Get the pointer to the trap-
|
||||||
|
@ -28,7 +28,7 @@ sig_bad: mov 22,-(sp) !_Xsignal. If pointer 0 trapping is
|
||||||
bmi sig_bad
|
bmi sig_bad
|
||||||
move.l d1,d3
|
move.l d1,d3
|
||||||
ad #2,d3 !0:reset default for signal, -1: ignore
|
ad #2,d3 !0:reset default for signal, -1: ignore
|
||||||
2: move.l d1,(a5) !set new trapno
|
2: move.l d1,(a1) !set new trapno
|
||||||
move.l d3,-(sp) !set arguments to signal:
|
move.l d3,-(sp) !set arguments to signal:
|
||||||
mov d4,-(sp) !pointer ,signo to be trapped
|
mov d4,-(sp) !pointer ,signo to be trapped
|
||||||
bsr _Xsignal
|
bsr _Xsignal
|
||||||
|
@ -85,7 +85,7 @@ sig12: pea sig12
|
||||||
bsr _Xsignal
|
bsr _Xsignal
|
||||||
bsr e_badmon
|
bsr e_badmon
|
||||||
rtr
|
rtr
|
||||||
sig11: move.l 4(a1),d0
|
sig11: move.l 4(a5),d0
|
||||||
sub.l sp,d0
|
sub.l sp,d0
|
||||||
bcs e_memflt !in this case error handling possible
|
bcs e_memflt !in this case error handling possible
|
||||||
move.l ml,sp !refresh stack and stop .
|
move.l ml,sp !refresh stack and stop .
|
||||||
|
|
|
@ -1,32 +1,30 @@
|
||||||
.sect .text
|
.sect .text
|
||||||
.sect .rom
|
.sect .rom
|
||||||
.sect .data
|
.sect .data
|
||||||
|
.retaddr:
|
||||||
|
.data4 0
|
||||||
.sect .bss
|
.sect .bss
|
||||||
.sect .text
|
.sect .text
|
||||||
!THIS FILE CONTAINS THE SYSTEM CALLS FOR PMDS-II AS SUBROUTINES FOR THE
|
!THIS FILE CONTAINS THE SYSTEM CALLS FOR PMDS-II AS SUBROUTINES FOR THE
|
||||||
!EM-INTERPRETER. a1 CONTAINS A POINTER TO THE RETURN AREA . EACH SUBROUTINE
|
!EM-INTERPRETER. a5 CONTAINS A POINTER TO THE RETURN AREA . EACH SUBROUTINE
|
||||||
!EXPECTS ITS DATA IN THE FORM EM PRODUCES AND GIVES ITS RESULTS AS EM
|
!EXPECTS ITS DATA IN THE FORM EM PRODUCES AND GIVES ITS RESULTS AS EM
|
||||||
!REQUIRES.
|
!REQUIRES.
|
||||||
!THE PMDS-II REQUIRES THE ARGUMENTS ON THE STACK AS 4 BYTE INTEGERS OR
|
!THE PMDS-II REQUIRES THE ARGUMENTS ON THE STACK AS 4 BYTE INTEGERS OR
|
||||||
!POINTERS , AND USES THE C-CALLING CONVENTION. THE 2 BYTE WORDS 4 BYTE
|
!POINTERS , AND USES THE C-CALLING CONVENTION. THE 2 BYTE WORDS 4 BYTE
|
||||||
!POINTERS VERSION HAS TO DO SOME CONVERSION FIRST .
|
!POINTERS VERSION HAS TO DO SOME CONVERSION FIRST .
|
||||||
|
|
||||||
_Xexit: move.l (sp),(a1)
|
_Xexit: move.l (sp)+,.retaddr
|
||||||
#ifndef lword
|
#ifndef lword
|
||||||
bsr st241
|
bsr st241
|
||||||
#endif
|
#endif
|
||||||
trap #0
|
jsr __exit
|
||||||
.data2 1
|
|
||||||
|
|
||||||
_Xfork: move.l (sp),(a1)
|
_Xfork: move.l (sp)+,.retaddr
|
||||||
trap #0
|
jsr _fork
|
||||||
.data2 2
|
tst.l d0
|
||||||
lea 4(sp),sp
|
blt 2f
|
||||||
bcs 2f
|
|
||||||
tst.l d0 !PID OF CHILD IN PARENT, 0 IN CHILD
|
|
||||||
bne 1f
|
bne 1f
|
||||||
trap #0
|
jsr _getpid
|
||||||
.data2 20
|
|
||||||
mov d1,-(sp) !PID OF PARENT IN d1
|
mov d1,-(sp) !PID OF PARENT IN d1
|
||||||
mov #1,-(sp) !(PID OF CHILD IN D0),FLAG 1 IN CHILD
|
mov #1,-(sp) !(PID OF CHILD IN D0),FLAG 1 IN CHILD
|
||||||
bra 0f
|
bra 0f
|
||||||
|
@ -34,373 +32,351 @@ _Xfork: move.l (sp),(a1)
|
||||||
cl -(sp) !FLAG 0 IN PARENT
|
cl -(sp) !FLAG 0 IN PARENT
|
||||||
0: cl -(sp)
|
0: cl -(sp)
|
||||||
bra 3f
|
bra 3f
|
||||||
2: mov d0,-(sp)
|
2: move.l _errno,d0
|
||||||
mov d0,-(sp)
|
mov d0,-(sp)
|
||||||
3: move.l (a1),a0
|
mov d0,-(sp)
|
||||||
|
3: move.l .retaddr,a0
|
||||||
jmp (a0)
|
jmp (a0)
|
||||||
!_Xfork is special
|
!_Xfork is special
|
||||||
|
|
||||||
_Xread: move.l (sp),(a1)
|
_Xread: move.l (sp)+,.retaddr
|
||||||
#ifndef lword
|
#ifndef lword
|
||||||
bsr st241
|
bsr st241
|
||||||
#endif
|
#endif
|
||||||
trap #0
|
jsr _read
|
||||||
.data2 3
|
sys0: lea 12(sp),sp
|
||||||
sys0: lea 16(sp),sp
|
cmp.l #-1,d0
|
||||||
bcc 1f
|
bne 1f
|
||||||
|
move.l _errno,d0
|
||||||
mov d0,-(sp)
|
mov d0,-(sp)
|
||||||
mov d0,-(sp)
|
mov d0,-(sp)
|
||||||
bra 2f
|
bra 2f
|
||||||
1: move.l d0,-(sp)
|
1: move.l d0,-(sp)
|
||||||
cl -(sp)
|
cl -(sp)
|
||||||
2: move.l (a1),a0
|
2: move.l .retaddr,a0
|
||||||
jmp (a0)
|
jmp (a0)
|
||||||
|
|
||||||
_Xwrite: move.l (sp),(a1)
|
_Xwrite: move.l (sp)+,.retaddr
|
||||||
#ifndef lword
|
#ifndef lword
|
||||||
bsr st241
|
bsr st241
|
||||||
#endif
|
#endif
|
||||||
trap #0
|
jsr _write
|
||||||
.data2 4
|
|
||||||
bra sys0
|
bra sys0
|
||||||
|
|
||||||
_Xopen: move.l (sp),(a1)
|
_Xopen: move.l (sp)+,.retaddr
|
||||||
#ifndef lword
|
#ifndef lword
|
||||||
bsr st243
|
bsr st243
|
||||||
#endif
|
#endif
|
||||||
trap #0
|
jsr _open
|
||||||
.data2 5
|
sys1: lea 8(sp),sp
|
||||||
sys1: lea 12(sp),sp
|
sys5: cmp.l #-1,d0
|
||||||
sys5: bcc 1f
|
bne 1f
|
||||||
|
move.l _errno,d0
|
||||||
mov d0,-(sp)
|
mov d0,-(sp)
|
||||||
mov d0,-(sp)
|
mov d0,-(sp)
|
||||||
bra 2f
|
bra 2f
|
||||||
1: mov d0,-(sp)
|
1: mov d0,-(sp)
|
||||||
cl -(sp)
|
cl -(sp)
|
||||||
2: move.l (a1),a0
|
2: move.l .retaddr,a0
|
||||||
jmp (a0)
|
jmp (a0)
|
||||||
|
|
||||||
_Xclose: move.l (sp),(a1)
|
_Xclose: move.l (sp)+,.retaddr
|
||||||
#ifndef lword
|
#ifndef lword
|
||||||
bsr st241
|
bsr st241
|
||||||
#endif
|
#endif
|
||||||
trap #0
|
jsr _close
|
||||||
.data2 6
|
sys3: lea 4(sp),sp
|
||||||
sys3: lea 8(sp),sp
|
sys4: cmp.l #-1,d0
|
||||||
sys4: bcc 1f
|
bne 1f
|
||||||
|
move.l _errno,d0
|
||||||
mov d0,-(sp)
|
mov d0,-(sp)
|
||||||
mov d0,-(sp)
|
mov d0,-(sp)
|
||||||
bra 2f
|
bra 2f
|
||||||
1: cl -(sp)
|
1: cl -(sp)
|
||||||
2: move.l (a1),a0
|
2: move.l .retaddr,a0
|
||||||
jmp (a0)
|
jmp (a0)
|
||||||
|
|
||||||
_Xwait: move.l (sp),(a1)
|
_Xwait: move.l (sp)+,.retaddr
|
||||||
trap #0
|
.sect .data
|
||||||
.data2 7
|
xxxx:
|
||||||
sys6: lea 4(sp),sp
|
.data4 0, 0
|
||||||
bcc 1f
|
.sect .text
|
||||||
|
move.l #xxxx,-(sp)
|
||||||
|
jsr _wait
|
||||||
|
add.l #4,sp
|
||||||
|
sys6: cmp.l #-1,d0
|
||||||
|
bne 1f
|
||||||
|
move.l _errno,d0
|
||||||
mov d0,-(sp)
|
mov d0,-(sp)
|
||||||
mov d0,-(sp)
|
mov d0,-(sp)
|
||||||
bra 2f
|
bra 2f
|
||||||
1: mov d1,-(sp) ! ??
|
1: mov xxxx+4,-(sp) ! ??
|
||||||
mov d0,-(sp)
|
mov xxxx,-(sp)
|
||||||
cl -(sp)
|
cl -(sp)
|
||||||
2: move.l (a1),a0
|
2: move.l .retaddr,a0
|
||||||
jmp (a0)
|
jmp (a0)
|
||||||
|
|
||||||
_Xcreat: move.l (sp),(a1)
|
_Xcreat: move.l (sp)+,.retaddr
|
||||||
#ifndef lword
|
#ifndef lword
|
||||||
bsr st243
|
bsr st243
|
||||||
#endif
|
#endif
|
||||||
trap #0
|
jsr _creat
|
||||||
.data2 8
|
|
||||||
bra sys1
|
bra sys1
|
||||||
|
|
||||||
_Xlink: move.l (sp),(a1)
|
_Xlink: move.l (sp)+,.retaddr
|
||||||
trap #0
|
jsr _link
|
||||||
.data2 9
|
lea 8(sp),sp
|
||||||
lea 12(sp),sp
|
|
||||||
bra sys4
|
bra sys4
|
||||||
|
|
||||||
_Xunlink: move.l (sp),(a1)
|
_Xunlink: move.l (sp)+,.retaddr
|
||||||
trap #0
|
jsr _unlink
|
||||||
.data2 10
|
|
||||||
bra sys3
|
bra sys3
|
||||||
|
|
||||||
_Xchdir: move.l (sp),(a1)
|
_Xchdir: move.l (sp)+,.retaddr
|
||||||
trap #0
|
jsr _chdir
|
||||||
.data2 12
|
|
||||||
bra sys3
|
bra sys3
|
||||||
|
|
||||||
_Xmknod: move.l (sp),(a1)
|
_Xmknod: move.l (sp)+,.retaddr
|
||||||
#ifndef lword
|
#ifndef lword
|
||||||
bsr st244
|
bsr st244
|
||||||
#endif
|
#endif
|
||||||
trap #0
|
jsr _mknod
|
||||||
.data2 14
|
lea 12(sp),sp
|
||||||
lea 16(sp),sp
|
|
||||||
bra sys4
|
bra sys4
|
||||||
|
|
||||||
_Xchmod: move.l (sp),(a1)
|
_Xchmod: move.l (sp)+,.retaddr
|
||||||
#ifndef lword
|
#ifndef lword
|
||||||
bsr st243
|
bsr st243
|
||||||
#endif
|
#endif
|
||||||
trap #0
|
jsr _chmod
|
||||||
.data2 15
|
lea 8(sp),sp
|
||||||
lea 12(sp),sp
|
|
||||||
bra sys4
|
bra sys4
|
||||||
|
|
||||||
_Xchown: move.l (sp),(a1)
|
_Xchown: move.l (sp)+,.retaddr
|
||||||
#ifndef lword
|
#ifndef lword
|
||||||
bsr st244
|
bsr st244
|
||||||
#endif
|
#endif
|
||||||
trap #0
|
jsr _chown
|
||||||
.data2 16
|
lea 12(sp),sp
|
||||||
lea 16(sp),sp
|
|
||||||
bra sys4
|
bra sys4
|
||||||
|
|
||||||
_Xbreak: move.l (sp),(a1)
|
_Xbreak: move.l (sp)+,.retaddr
|
||||||
trap #0
|
jsr _brk
|
||||||
.data2 17
|
lea 4(sp),sp
|
||||||
lea 8(sp),sp
|
cmp.l #-1,d0
|
||||||
bcc 1f
|
bne 1f
|
||||||
|
move.l _errno,d0
|
||||||
mov d0,-(sp)
|
mov d0,-(sp)
|
||||||
mov d0,-(sp)
|
mov d0,-(sp)
|
||||||
bra 2f
|
bra 2f
|
||||||
1: move.l -4(sp),nd
|
1: move.l -4(sp),nd
|
||||||
cl -(sp)
|
cl -(sp)
|
||||||
2: move.l (a1),a0
|
2: move.l .retaddr,a0
|
||||||
jmp (a0)
|
jmp (a0)
|
||||||
|
|
||||||
.sect .data
|
.sect .data
|
||||||
nd: .data4 endbss
|
nd: .data4 endbss
|
||||||
.sect .text
|
.sect .text
|
||||||
|
|
||||||
_Xstat: move.l (sp),(a1)
|
_Xstat: move.l (sp)+,.retaddr
|
||||||
trap #0
|
jsr _stat
|
||||||
.data2 18
|
lea 8(sp),sp
|
||||||
lea 12(sp),sp
|
|
||||||
bra sys4
|
bra sys4
|
||||||
|
|
||||||
_Xlseek: move.l (sp),(a1)
|
_Xlseek: move.l (sp)+,.retaddr
|
||||||
#ifndef lword
|
#ifndef lword
|
||||||
bsr st245
|
bsr st245
|
||||||
#endif
|
#endif
|
||||||
trap #0
|
jsr _lseek
|
||||||
.data2 19
|
lea 12(sp),sp
|
||||||
lea 16(sp),sp
|
cmp.l #-1,d0
|
||||||
bcc 1f
|
bne 1f
|
||||||
|
move.l _errno,d0
|
||||||
mov d0,-(sp)
|
mov d0,-(sp)
|
||||||
mov d0,-(sp)
|
mov d0,-(sp)
|
||||||
bra 2f
|
bra 2f
|
||||||
1: move.l d0,-(sp)
|
1: move.l d0,-(sp)
|
||||||
cl -(sp)
|
cl -(sp)
|
||||||
2: move.l (a1),a0
|
2: move.l .retaddr,a0
|
||||||
jmp (a0)
|
jmp (a0)
|
||||||
|
|
||||||
|
_Xgetpid: move.l (sp)+,.retaddr
|
||||||
_Xgetpid: move.l (sp),(a1)
|
jsr _getpid
|
||||||
trap #0
|
|
||||||
.data2 20
|
|
||||||
add.l #4,sp
|
|
||||||
mov d0,-(sp)
|
mov d0,-(sp)
|
||||||
move.l (a1),a0
|
move.l .retaddr,a0
|
||||||
jmp (a0)
|
jmp (a0)
|
||||||
|
|
||||||
_Xmount: move.l (sp),(a1)
|
_Xmount: move.l (sp)+,.retaddr
|
||||||
#ifndef lword
|
#ifndef lword
|
||||||
bsr st246
|
bsr st246
|
||||||
#endif
|
#endif
|
||||||
trap #0
|
jsr _mount
|
||||||
.data2 21
|
lea 12(sp),sp
|
||||||
lea 16(sp),sp
|
|
||||||
bra sys4
|
bra sys4
|
||||||
|
|
||||||
_Xumount: move.l (sp),(a1)
|
_Xumount: move.l (sp)+,.retaddr
|
||||||
trap #0
|
jsr _umount
|
||||||
.data2 22
|
|
||||||
bra sys3
|
bra sys3
|
||||||
|
|
||||||
_Xsetuid: move.l (sp),(a1)
|
_Xsetuid: move.l (sp)+,.retaddr
|
||||||
#ifndef lword
|
#ifndef lword
|
||||||
bsr st241
|
bsr st241
|
||||||
#endif
|
#endif
|
||||||
trap #0
|
jsr _setuid
|
||||||
.data2 23
|
|
||||||
bra sys3
|
bra sys3
|
||||||
|
|
||||||
_Xgetuid: move.l (sp),(a1)
|
_Xgetuid: move.l (sp)+,.retaddr
|
||||||
trap #0
|
jsr _getuid
|
||||||
.data2 24
|
sys7: mov d1,-(sp)
|
||||||
sys7: add.l #4,sp
|
|
||||||
mov d1,-(sp)
|
|
||||||
mov d0,-(sp)
|
mov d0,-(sp)
|
||||||
move.l (a1),a0
|
move.l .retaddr,a0
|
||||||
jmp (a0)
|
jmp (a0)
|
||||||
|
|
||||||
_Xstime: move.l (sp),(a1)
|
_Xstime: move.l (sp)+,.retaddr
|
||||||
trap #0
|
jsr _stime
|
||||||
.data2 25
|
|
||||||
bra sys3
|
bra sys3
|
||||||
|
|
||||||
_Xptrace: move.l (sp),(a1)
|
_Xptrace: move.l (sp)+,.retaddr
|
||||||
#ifndef lword
|
#ifndef lword
|
||||||
bsr st247
|
bsr st247
|
||||||
#endif
|
#endif
|
||||||
trap #0
|
jsr _ptrace
|
||||||
.data2 26
|
lea 16(sp),sp
|
||||||
lea 20(sp),sp
|
|
||||||
bra sys5
|
bra sys5
|
||||||
|
|
||||||
_Xalarm: move.l (sp),(a1)
|
_Xalarm: move.l (sp)+,.retaddr
|
||||||
#ifndef lword
|
#ifndef lword
|
||||||
sub.l #2,sp
|
sub.l #2,sp
|
||||||
clr.w 4(sp)
|
clr.w (sp)
|
||||||
#endif
|
#endif
|
||||||
trap #0
|
jsr _alarm
|
||||||
.data2 27
|
lea 4(sp),sp
|
||||||
lea 8(sp),sp
|
|
||||||
mov d0,-(sp)
|
mov d0,-(sp)
|
||||||
move.l (a1),a0
|
move.l .retaddr,a0
|
||||||
jmp (a0)
|
jmp (a0)
|
||||||
|
|
||||||
_Xfstat: move.l (sp),(a1)
|
_Xfstat: move.l (sp)+,.retaddr
|
||||||
#ifndef lword
|
#ifndef lword
|
||||||
bsr st241
|
bsr st241
|
||||||
#endif
|
#endif
|
||||||
trap #0
|
jsr _fstat
|
||||||
.data2 28
|
lea 8(sp),sp
|
||||||
lea 12(sp),sp
|
|
||||||
bra sys4
|
bra sys4
|
||||||
|
|
||||||
_Xpause: trap #0
|
_Xpause: jsr _pause
|
||||||
.data2 29
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
_Xutime: move.l (sp),(a1)
|
_Xutime: move.l (sp)+,.retaddr
|
||||||
trap #0
|
jsr _utime
|
||||||
.data2 30
|
lea 8(sp),sp
|
||||||
lea 12(sp),sp
|
|
||||||
bra sys4
|
bra sys4
|
||||||
|
|
||||||
_Xaccess: move.l (sp),(a1)
|
_Xaccess: move.l (sp)+,.retaddr
|
||||||
#ifndef lword
|
#ifndef lword
|
||||||
bsr st248
|
bsr st248
|
||||||
#endif
|
#endif
|
||||||
trap #0
|
jsr _access
|
||||||
.data2 33
|
lea 8(sp),sp
|
||||||
lea 12(sp),sp
|
|
||||||
bra sys4
|
bra sys4
|
||||||
|
|
||||||
_Xnice:
|
_Xnice: move.l (sp)+,.retaddr
|
||||||
#ifndef lword
|
#ifndef lword
|
||||||
bsr 241
|
bsr 241
|
||||||
#endif
|
#endif
|
||||||
trap #0
|
jsr _nice
|
||||||
.data2 34
|
move.l .retaddr,(sp)
|
||||||
move.l (sp)+,(sp)
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
_Xftime: move.l (sp),(a1)
|
_Xftime: move.l (sp)+,.retaddr
|
||||||
trap #0
|
jsr _ftime
|
||||||
.data2 35
|
|
||||||
bra sys3
|
bra sys3
|
||||||
|
|
||||||
_Xsync: trap #0
|
_Xsync: jsr _sync
|
||||||
.data2 36
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
_Xkill: move.l (sp),(a1)
|
_Xkill: move.l (sp)+,.retaddr
|
||||||
#ifndef lword
|
#ifndef lword
|
||||||
bsr st248
|
bsr st248
|
||||||
#endif
|
#endif
|
||||||
trap #0
|
jsr _kill
|
||||||
.data2 37
|
lea 4(sp),sp
|
||||||
lea 12(sp),sp
|
|
||||||
bra sys4
|
bra sys4
|
||||||
|
|
||||||
_Xdup: move.l (sp),(a1)
|
_Xdup: move.l (sp)+,.retaddr
|
||||||
#ifndef lword
|
#ifndef lword
|
||||||
bsr st248
|
bsr st248
|
||||||
#endif
|
#endif
|
||||||
trap #0
|
jsr _dup
|
||||||
.data2 38
|
|
||||||
bra sys1
|
bra sys1
|
||||||
|
|
||||||
_Xpipe: move.l (sp),(a1)
|
_Xpipe: move.l (sp)+,.retaddr
|
||||||
trap #0
|
move.l #xxxx,-(sp)
|
||||||
.data2 42
|
jsr _pipe
|
||||||
|
add.l #4,sp
|
||||||
bra sys6
|
bra sys6
|
||||||
|
|
||||||
_Xtimes: trap #0
|
_Xtimes: move.l (sp)+,.retaddr
|
||||||
.data2 43
|
jsr _times
|
||||||
move.l (sp),a0
|
move.l .retaddr,a0
|
||||||
add.l #8,sp
|
add.l #4,sp
|
||||||
jmp (a0)
|
jmp (a0)
|
||||||
|
|
||||||
_Xprofil: trap #0
|
_Xprofil: move.l (sp)+,.retaddr
|
||||||
.data2 44
|
jsr _profil
|
||||||
move.l (sp),a0
|
move.l .retaddr,a0
|
||||||
lea 20(sp),sp
|
lea 16(sp),sp
|
||||||
jmp (a0)
|
jmp (a0)
|
||||||
|
|
||||||
_Xsetgid: move.l (sp),(a1)
|
_Xsetgid: move.l (sp)+,.retaddr
|
||||||
#ifndef lword
|
#ifndef lword
|
||||||
bsr st241
|
bsr st241
|
||||||
#endif
|
#endif
|
||||||
trap #0
|
jsr _setgid
|
||||||
.data2 46
|
|
||||||
bra sys3
|
bra sys3
|
||||||
|
|
||||||
_Xgetgid: move.l (sp),(a1)
|
_Xgetgid: move.l (sp)+,.retaddr
|
||||||
trap #0
|
jsr _getpid
|
||||||
.data2 47
|
|
||||||
bra sys7
|
bra sys7
|
||||||
|
|
||||||
|
_Xsignal: move.l (sp)+,.retaddr
|
||||||
_Xsignal: move.l (sp)+,retaddr
|
|
||||||
mov (sp)+,d4
|
mov (sp)+,d4
|
||||||
extend d4
|
extend d4
|
||||||
move.l d4,-(sp)
|
move.l d4,-(sp)
|
||||||
move.l retaddr,-(sp)
|
move.l .retaddr,-(sp)
|
||||||
trap #0
|
jsr _signal
|
||||||
.data2 48
|
|
||||||
lea 12(sp),sp !remove arguments
|
lea 12(sp),sp !remove arguments
|
||||||
bcc 1f
|
cmp.l #-1,d0
|
||||||
|
bne 1f
|
||||||
|
move.l _errno,d0
|
||||||
mov d0,-(sp)
|
mov d0,-(sp)
|
||||||
mov d0,-(sp)
|
mov d0,-(sp)
|
||||||
bra 2f
|
bra 2f
|
||||||
1: mov d0,-(sp)
|
1:
|
||||||
|
mov d0,-(sp)
|
||||||
cl -(sp)
|
cl -(sp)
|
||||||
2: move.l retaddr,a0
|
2:
|
||||||
|
move.l .retaddr,a0
|
||||||
jmp (a0)
|
jmp (a0)
|
||||||
.sect .data
|
|
||||||
retaddr: .data4 0
|
|
||||||
.sect .text
|
|
||||||
|
|
||||||
_Xacct: move.l (sp),(a1)
|
_Xacct: move.l (sp)+,.retaddr
|
||||||
trap #0
|
jsr _acct
|
||||||
.data2 51
|
|
||||||
bra sys3
|
|
||||||
_Xlock: move.l (sp),(a1)
|
|
||||||
#ifndef lword
|
|
||||||
bsr st241
|
|
||||||
#endif
|
|
||||||
trap #0
|
|
||||||
.data2 53
|
|
||||||
bra sys3
|
bra sys3
|
||||||
|
!_Xlock: move.l (sp)+,.retaddr
|
||||||
|
!#ifndef lword
|
||||||
|
! bsr st241
|
||||||
|
!#endif
|
||||||
|
! jsr _lock
|
||||||
|
! bra sys3
|
||||||
|
|
||||||
_Xioctl: move.l (sp),(a1)
|
_Xioctl: move.l (sp)+,.retaddr
|
||||||
#ifndef lword
|
#ifndef lword
|
||||||
bsr st248
|
bsr st248
|
||||||
#endif
|
#endif
|
||||||
trap #0
|
jsr _ioctl
|
||||||
.data2 54
|
lea 12(sp),sp
|
||||||
lea 16(sp),sp
|
|
||||||
bra sys4
|
bra sys4
|
||||||
|
|
||||||
!_Xmpxcall: move.l (sp),(a1)
|
!_Xmpxcall: move.l (sp)+,.retaddr
|
||||||
!#ifndef lword
|
!#ifndef lword
|
||||||
! bsr st241
|
! bsr st241
|
||||||
!#endif
|
!#endif
|
||||||
|
@ -409,26 +385,23 @@ _Xioctl: move.l (sp),(a1)
|
||||||
! lea 12(sp),sp
|
! lea 12(sp),sp
|
||||||
! bra sys4
|
! bra sys4
|
||||||
|
|
||||||
_Xexece: move.l (sp),(a1)
|
_Xexece: move.l (sp)+,.retaddr
|
||||||
trap #0
|
jsr _execve
|
||||||
.data2 59
|
lea 12(sp),sp
|
||||||
lea 16(sp),sp
|
|
||||||
bra sys4
|
bra sys4
|
||||||
|
|
||||||
_Xumask: move.l (sp),(a1)
|
_Xumask: move.l (sp)+,.retaddr
|
||||||
#ifndef lword
|
#ifndef lword
|
||||||
bsr st241
|
bsr st241
|
||||||
#endif
|
#endif
|
||||||
trap #0
|
jsr _umask
|
||||||
.data2 60
|
add.l #4,sp
|
||||||
add.l #8,sp
|
|
||||||
mov d0,-(sp)
|
mov d0,-(sp)
|
||||||
move.l (a1),a0
|
move.l .retaddr,a0
|
||||||
jmp (a0)
|
jmp (a0)
|
||||||
|
|
||||||
_Xchroot: move.l (sp),(a1)
|
_Xchroot: move.l (sp)+,.retaddr
|
||||||
trap #0
|
jsr _chroot
|
||||||
.data2 61
|
|
||||||
bra sys3
|
bra sys3
|
||||||
|
|
||||||
|
|
||||||
|
@ -438,6 +411,13 @@ _Xchroot: move.l (sp),(a1)
|
||||||
#ifndef lword
|
#ifndef lword
|
||||||
|
|
||||||
st241: sub.l #2,sp
|
st241: sub.l #2,sp
|
||||||
|
move.l 2(sp),(sp)
|
||||||
|
move.w 6(sp),d0
|
||||||
|
ext.l d0
|
||||||
|
move.l d0,4(sp)
|
||||||
|
rts
|
||||||
|
|
||||||
|
st243: sub.l #2,sp
|
||||||
move.l 2(sp),(sp)
|
move.l 2(sp),(sp)
|
||||||
move.l 6(sp),4(sp)
|
move.l 6(sp),4(sp)
|
||||||
move.w 10(sp),d0
|
move.w 10(sp),d0
|
||||||
|
@ -445,70 +425,56 @@ st241: sub.l #2,sp
|
||||||
move.l d0,8(sp)
|
move.l d0,8(sp)
|
||||||
rts
|
rts
|
||||||
|
|
||||||
st243: sub.l #2,sp
|
|
||||||
move.l 2(sp),(sp)
|
|
||||||
move.l 6(sp),4(sp)
|
|
||||||
move.l 10(sp),8(sp)
|
|
||||||
move.w 14(sp),d0
|
|
||||||
ext.l d0
|
|
||||||
move.l d0,12(sp)
|
|
||||||
rts
|
|
||||||
|
|
||||||
st244: move.l (sp),-(sp)
|
st244: move.l (sp),-(sp)
|
||||||
move.l 8(sp),4(sp)
|
|
||||||
move.l 12(sp),8(sp)
|
|
||||||
move.w 16(sp),d0
|
|
||||||
ext.l d0
|
|
||||||
move.l d0,12(sp)
|
|
||||||
move.w 18(sp),d0
|
|
||||||
ext.l d0
|
|
||||||
move.l d0,16(sp)
|
|
||||||
rts
|
|
||||||
|
|
||||||
st245: move.l (sp),-(sp)
|
|
||||||
move.l 8(sp),4(sp)
|
move.l 8(sp),4(sp)
|
||||||
move.w 12(sp),d0
|
move.w 12(sp),d0
|
||||||
ext.l d0
|
ext.l d0
|
||||||
move.l d0,8(sp)
|
move.l d0,8(sp)
|
||||||
move.l 14(sp),12(sp)
|
move.w 16(sp),d0
|
||||||
move.w 18(sp),d0
|
|
||||||
ext.l d0
|
ext.l d0
|
||||||
move.l d0,16(sp)
|
move.l d0,12(sp)
|
||||||
|
rts
|
||||||
|
|
||||||
|
st245: move.l (sp),-(sp)
|
||||||
|
move.w 8(sp),d0
|
||||||
|
ext.l d0
|
||||||
|
move.l d0,4(sp)
|
||||||
|
move.l 10(sp),8(sp)
|
||||||
|
move.w 14(sp),d0
|
||||||
|
ext.l d0
|
||||||
|
move.l d0,12(sp)
|
||||||
rts
|
rts
|
||||||
|
|
||||||
st246: sub.l #2,sp
|
st246: sub.l #2,sp
|
||||||
move.l 2(sp),(sp)
|
move.l 2(sp),(sp)
|
||||||
move.l 6(sp),4(sp)
|
move.l 6(sp),4(sp)
|
||||||
move.l 10(sp),8(sp)
|
move.l 10(sp),8(sp)
|
||||||
|
move.w 14(sp),d0
|
||||||
|
ext.l d0
|
||||||
|
move.l d0,12(sp)
|
||||||
|
rts
|
||||||
|
|
||||||
|
st247: sub.l #6,sp
|
||||||
|
move.l 6(sp),(sp)
|
||||||
|
move.w 10(sp),d0
|
||||||
|
ext.l d0
|
||||||
|
move.l d0,4(sp)
|
||||||
|
move.w 12(sp),d0
|
||||||
|
ext.l d0
|
||||||
|
move.l d0,8(sp)
|
||||||
move.l 14(sp),12(sp)
|
move.l 14(sp),12(sp)
|
||||||
move.w 18(sp),d0
|
move.w 18(sp),d0
|
||||||
ext.l d0
|
ext.l d0
|
||||||
move.l d0,16(sp)
|
move.l d0,16(sp)
|
||||||
rts
|
rts
|
||||||
|
|
||||||
st247: sub.l #6,sp
|
|
||||||
move.l 6(sp),(sp)
|
|
||||||
move.l 10(sp),4(sp)
|
|
||||||
move.w 14(sp),d0
|
|
||||||
ext.l d0
|
|
||||||
move.l d0,8(sp)
|
|
||||||
move.w 16(sp),d0
|
|
||||||
ext.l d0
|
|
||||||
move.l d0,12(sp)
|
|
||||||
move.l 18(sp),16(sp)
|
|
||||||
move.w 22(sp),d0
|
|
||||||
ext.l d0
|
|
||||||
move.l d0,20(sp)
|
|
||||||
rts
|
|
||||||
|
|
||||||
st248: move.l (sp),-(sp)
|
st248: move.l (sp),-(sp)
|
||||||
move.l 8(sp),4(sp)
|
move.w 8(sp),d0
|
||||||
|
ext.l d0
|
||||||
|
move.l d0,4(sp)
|
||||||
move.w 12(sp),d0
|
move.w 12(sp),d0
|
||||||
ext.l d0
|
ext.l d0
|
||||||
move.l d0,8(sp)
|
move.l d0,8(sp)
|
||||||
move.w 14(sp),d0
|
|
||||||
ext.l d0
|
|
||||||
move.l d0,12(sp)
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue