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 \
|
||||
em4_t--- em4_---- em4_t-cp em4_t-c- em4_t--p
|
||||
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
|
||||
b=../../../lib/int
|
||||
|
||||
all: $(INTS) em
|
||||
|
||||
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
|
||||
m68k2 -o em2_t--- tmp.s
|
||||
./compile -o em2_t--- 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
|
||||
m68k2 -o em2_---- tmp.s
|
||||
./compile -o em2_---- 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
|
||||
m68k2 -o em2_t-cp tmp.s
|
||||
./compile -o em2_t-cp 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
|
||||
m68k2 -o em2_t-c- tmp.s
|
||||
./compile -o em2_t-c- 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
|
||||
m68k2 -o em2_t--p tmp.s
|
||||
./compile -o em2_t--p 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
|
||||
m68k2 -o em4_t--- tmp.s
|
||||
./compile -o em4_t--- 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
|
||||
m68k2 -o em4_---- tmp.s
|
||||
./compile -o em4_---- 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
|
||||
m68k2 -o em4_t-cp tmp.s
|
||||
./compile -o em4_t-cp 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
|
||||
m68k2 -o em4_t-c- tmp.s
|
||||
./compile -o em4_t-c- 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
|
||||
m68k2 -o em4_t--p tmp.s
|
||||
./compile -o em4_t--p 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
|
||||
-mkdir $b24 $b44
|
||||
ls em2_???? | sed 's:em2_\(.*\):cp & $b24/em_\1:' | sh
|
||||
|
@ -74,7 +78,7 @@ cmp: all
|
|||
-cmp em.1 ../../../man/em.1
|
||||
|
||||
clean:
|
||||
-rm -f *.o *.old a.out em tmp.s $(INTS)
|
||||
-rm -f *.o *.old a.out em tmp.s $(INTS) compile
|
||||
|
||||
opr:
|
||||
make pr | opr
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
#define l_8 -16
|
||||
#define checksize cmp.w #2,d0 ; beq 2f ; cmp.w #4,d0 ; beq 4f ; bra e_oddz
|
||||
#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 locptr cmp.l sp,a0 ;\
|
||||
bcc 6f
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
.define filb
|
||||
.define _m_a_i_n
|
||||
.define curproc
|
||||
.define pd
|
||||
.define nproc
|
||||
|
@ -20,16 +21,18 @@
|
|||
! 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
|
||||
bsr _Xbreak
|
||||
add.l wrd,sp
|
||||
#if last
|
||||
move.l #126,d0 !initialise lasttable
|
||||
lea lasttable,a5
|
||||
0: clr.l (a5)+
|
||||
lea lasttable,a1
|
||||
0: clr.l (a1)+
|
||||
dbra d0,0b
|
||||
move.l #-1,(a5)
|
||||
move.l #-1,(a1)
|
||||
move.l #linused-8,linused
|
||||
#endif
|
||||
move.l 4(sp),a2
|
||||
|
@ -71,10 +74,10 @@ emfile: .asciz "e.out"
|
|||
bne badarg1
|
||||
lea header,a0
|
||||
move.l #5,d0 !convert em integer to integer
|
||||
0: add.l #4,a1
|
||||
move.b (a0)+,-(a1) ; move.b (a0)+,-(a1)
|
||||
move.b (a0)+,-(a1) ; move.b (a0)+,-(a1)
|
||||
move.l (a1),-4(a0) ; dbra d0,0b
|
||||
0: add.l #4,a5
|
||||
move.b (a0)+,-(a5) ; move.b (a0)+,-(a5)
|
||||
move.b (a0)+,-(a5) ; move.b (a0)+,-(a5)
|
||||
move.l (a5),-4(a0) ; dbra d0,0b
|
||||
move.l nd,a0 ; move.l a0,pb !Bottom emtext
|
||||
add.l ntext,a0 ; move.l a0,pd !proc. descr. base
|
||||
move.l nproc,d1 ; asl.l #3,d1 !2 pointers
|
||||
|
@ -101,19 +104,21 @@ emfile: .asciz "e.out"
|
|||
lblbuf: sub.l #2048,sp
|
||||
claimstack
|
||||
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)
|
||||
mov savefd,-(sp) ; bsr _Xread
|
||||
testen (sp)+ ; bne badarg
|
||||
move.l (sp)+,d0
|
||||
move.l (sp)+,a1
|
||||
cmp.l #2048,d0 ; bcs 0f
|
||||
add.l #1024,a5 ; bra 1f !a5 =buffer middle
|
||||
0: add.l d0,a5 !a5 = buffer end
|
||||
add.l #1024,a1 ; bra 1f !a1 =buffer middle
|
||||
0: add.l d0,a1 !a1 = buffer end
|
||||
1: move.l eb,a3 !At a3 filling has to start
|
||||
clr.l d1 ; clr.l d2
|
||||
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
|
||||
9: sub.l #1,ndata ; blt finito
|
||||
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
|
||||
.sect .text
|
||||
|
||||
dat0: add.l #4,a1
|
||||
move.b (a4)+,-(a1) ; move.b (a4)+,-(a1)
|
||||
move.b (a4)+,-(a1) ; move.b (a4)+,-(a1)
|
||||
move.l (a1),d0 ; move.l a3,d4 !d0 =count
|
||||
dat0: add.l #4,a5
|
||||
move.b (a4)+,-(a5) ; move.b (a4)+,-(a5)
|
||||
move.b (a4)+,-(a5) ; move.b (a4)+,-(a5)
|
||||
move.l (a5),d0 ; move.l a3,d4 !d0 =count
|
||||
sub.l a2,d4 !reconstruct byte count of previous describtor
|
||||
sub.l #1,d0 ; sub.l #1,d4
|
||||
1: move.l d4,d3
|
||||
|
@ -167,18 +172,21 @@ dofloat: add.l d2,a3
|
|||
atof: tst.b (a4)+ ; bne atof
|
||||
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,a4 !update pointer
|
||||
asr.l #2,d0
|
||||
0: move.l (a5)+,(a0)+ ; sub.w #1,d0
|
||||
bgt 0b ; move.l a0,a5
|
||||
move.l a5,-(sp) ; mov savefd,-(sp)
|
||||
0: move.l (a1)+,(a0)+ ; sub.w #1,d0
|
||||
bgt 0b ; move.l a0,a1
|
||||
move.l a1,4(sp)
|
||||
move.l a1,-(sp) ; mov savefd,-(sp)
|
||||
bsr _Xread
|
||||
testen (sp)+ ; bne badarg
|
||||
move.l (sp)+,d0
|
||||
move.l (sp)+,a1
|
||||
cmp.l #1024,d0 ; beq 1f
|
||||
add.l d0,a5
|
||||
add.l d0,a1
|
||||
1: rts
|
||||
|
||||
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
|
||||
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!
|
||||
sub.l d2,d1 !subtract what can
|
||||
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
|
||||
! 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
|
||||
|
||||
makelink: move.l pd,a0
|
||||
move.l #0,a2
|
||||
move.l a0,a3 !a3 will point at the first proc.
|
||||
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
|
||||
cmp.l a0,a6 !top of descriptor space
|
||||
bls 4f !yes? ready!
|
||||
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!
|
||||
sub.l #24,a5 !d0 small? compair with previous
|
||||
cmp.l a5,a4 !is a5 smaller than pd
|
||||
sub.l #24,a1 !d0 small? compair with previous
|
||||
cmp.l a1,a4 !is a1 smaller than pd
|
||||
bls 1b !no? try again
|
||||
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
|
||||
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
|
||||
move.l d1,a2
|
||||
cmp.l 4(a2),d0 !compair start address
|
||||
bcs 3f !start addr between those of a5 and a2
|
||||
move.l a2,a5 !d0 above start address of a5
|
||||
bcs 3f !start addr between those of a1 and a2
|
||||
move.l a2,a1 !d0 above start address of a1
|
||||
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
|
||||
bra 0b
|
||||
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 ,
|
||||
! maxcount in d4
|
||||
|
||||
|
@ -305,17 +313,17 @@ procinf: move.l #1,maxcount !count pointer for first procedure
|
|||
bra 4f
|
||||
3: adroff
|
||||
move.l #0,d3
|
||||
move.w (a1),d3
|
||||
move.w (a5),d3
|
||||
bra 4f
|
||||
6: move.b (a3)+,d0
|
||||
cmp.b #35,d0 !lin_q ?
|
||||
bne 6f !skip for escape2 at 6f
|
||||
move.b (a3)+,(a1)+
|
||||
move.b (a3)+,(a1)+
|
||||
move.b (a3)+,(a1)+
|
||||
move.b (a3)+,(a1)
|
||||
sub.l #3,a1
|
||||
move.l (a1),d3
|
||||
move.b (a3)+,(a5)+
|
||||
move.b (a3)+,(a5)+
|
||||
move.b (a3)+,(a5)+
|
||||
move.b (a3)+,(a5)
|
||||
sub.l #3,a5
|
||||
move.l (a5),d3
|
||||
4: cmp.l d1,d3 !d3 less than minimum ?
|
||||
bcc 5f
|
||||
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
|
||||
#if prof
|
||||
lea timeinf,a1
|
||||
move.l 0(a1,d0),d1 !get operation time
|
||||
move.l profile,a0
|
||||
lea timeinf,a5
|
||||
move.l 0(a5,d0),d1 !get operation time
|
||||
add.l d1,(a0)
|
||||
#endif
|
||||
#if opfreq
|
||||
lea counttab,a5
|
||||
add.l #1,0(a5,d0)
|
||||
lea counttab,a0
|
||||
add.l #1,0(a0,d0)
|
||||
#endif
|
||||
jmp dispat(pc,d0) !jump to branch to the operation
|
||||
|
||||
|
@ -112,13 +112,13 @@ escape1:
|
|||
cmp.w #640,d0 !check for range
|
||||
bhi e_illins !jump to ill instruction procedure
|
||||
#if prof
|
||||
lea timeinf1,a5
|
||||
move.l 0(a5,d0),d1
|
||||
lea timeinf1,a1
|
||||
move.l 0(a1,d0),d1
|
||||
add.l d1,(a0)
|
||||
#endif
|
||||
#if opfreq
|
||||
lea counttab+1024,a5
|
||||
add.l #1,0(a5,d0)
|
||||
lea counttab+1024,a0
|
||||
add.l #1,0(a0,d0)
|
||||
#endif
|
||||
jmp dispae1(pc,d0) !jump to the operation
|
||||
|
||||
|
@ -188,13 +188,13 @@ escape2:
|
|||
cmp.w #220,d0
|
||||
bhi e_illins
|
||||
#if prof
|
||||
lea timeinf2,a5
|
||||
move.l 0(a5,d0),d1
|
||||
lea timeinf2,a1
|
||||
move.l 0(a1,d0),d1
|
||||
add.l d1,(a0)
|
||||
#endif
|
||||
#if opfreq
|
||||
lea counttab+1664,a5
|
||||
add.l #1,0(a5,d0)
|
||||
lea counttab+1664,a1
|
||||
add.l #1,0(a1,d0)
|
||||
#endif
|
||||
jmp dispae2(pc,d0)
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ loc_s_1: mov #-1,d0
|
|||
jmp (a4)
|
||||
lpi_l:
|
||||
adroff
|
||||
move.w (a1),d0
|
||||
move.w (a5),d0
|
||||
move.l d0,-(sp)
|
||||
jmp (a4)
|
||||
lpi_q: jmp (a4)
|
||||
|
@ -40,7 +40,7 @@ loc_q: jmp (a4)
|
|||
bra e_illins
|
||||
#endif
|
||||
loc_l: adroff
|
||||
move.w (a1),d0
|
||||
move.w (a5),d0
|
||||
ext.l d0
|
||||
mov d0,-(sp)
|
||||
jmp (a4)
|
||||
|
@ -49,7 +49,7 @@ ldc_0: cl -(sp)
|
|||
jmp (a4)
|
||||
ldc_l:
|
||||
adroff
|
||||
move.w (a1),d0
|
||||
move.w (a5),d0
|
||||
ext.l d0 !ext works only on d register
|
||||
4: move.l d0,-(sp)
|
||||
#ifdef lword
|
||||
|
@ -100,7 +100,7 @@ lol_w_1: move.l #-1,d0
|
|||
mov 0(a2,d0),-(sp)
|
||||
jmp (a4)
|
||||
lol_pw: adroff
|
||||
move.w (a1),d0
|
||||
move.w (a5),d0
|
||||
5: asl.l wmu,d0
|
||||
add.l a2,d0
|
||||
move.l d0,a0
|
||||
|
@ -113,7 +113,7 @@ lol_pw: adroff
|
|||
jmp (a4)
|
||||
|
||||
lol_nw: adroff
|
||||
move.w (a1),d0
|
||||
move.w (a5),d0
|
||||
ext.l d0
|
||||
2: asl.l wmu,d0
|
||||
add.l a2,d0
|
||||
|
@ -150,7 +150,7 @@ ldl_w_1: move.l #-1,d0
|
|||
mov (a0),-(sp)
|
||||
jmp (a4)
|
||||
ldl_pw: adroff
|
||||
move.w (a1),d0
|
||||
move.w (a5),d0
|
||||
5: asl.l wmu,d0
|
||||
add.l a2,d0
|
||||
move.l d0,a0
|
||||
|
@ -163,7 +163,7 @@ ldl_pw: adroff
|
|||
mov l0(a0),-(sp)
|
||||
jmp (a4)
|
||||
ldl_nw: adroff
|
||||
move.w (a1),d0
|
||||
move.w (a5),d0
|
||||
ext.l d0
|
||||
bra 2b
|
||||
ldl_qpw: move.l (sp)+,d0
|
||||
|
@ -173,7 +173,7 @@ ldl_qnw: move.l (sp)+,d0
|
|||
|
||||
!-------------------------------------------------------------------------
|
||||
loe_lw: adroff
|
||||
move.w (a1),d0
|
||||
move.w (a5),d0
|
||||
bra 1f
|
||||
loe_qw: move.l (sp)+,d0
|
||||
bra 1f
|
||||
|
@ -194,7 +194,7 @@ loe_w0: loe_w1: loe_w2: loe_w3: loe_w4:
|
|||
jmp (a4)
|
||||
|
||||
lde_lw: adroff
|
||||
move.w (a1),d0
|
||||
move.w (a5),d0
|
||||
bra 1f
|
||||
lde_qw: move.l (sp)+,d0
|
||||
bra 1f
|
||||
|
@ -235,7 +235,7 @@ lil_1W: move.l l1(a2),a0
|
|||
mov (a0),-(sp)
|
||||
jmp (a4)
|
||||
lil_pw: adroff
|
||||
move.w (a1),d0
|
||||
move.w (a5),d0
|
||||
bra 1f
|
||||
lil_qpw: move.l (sp)+,d0
|
||||
bra 1f
|
||||
|
@ -262,7 +262,7 @@ lil_w0: clr.w d0
|
|||
jmp (a4)
|
||||
|
||||
lil_nw: adroff
|
||||
move.w (a1),d0
|
||||
move.w (a5),d0
|
||||
ext.l d0
|
||||
bra 1f
|
||||
lil_qnw: move.l (sp)+,d0
|
||||
|
@ -294,7 +294,7 @@ lof_s0: move.l d6,d0
|
|||
move.b (a3)+,d0
|
||||
bra 1f
|
||||
lof_l: adroff
|
||||
move.w (a1),d0
|
||||
move.w (a5),d0
|
||||
ext.l d0
|
||||
bra 1f
|
||||
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_4W: move.l wrd+word+word+word,d0 ; bra 1b
|
||||
ldf_l: adroff
|
||||
move.w (a1),d0
|
||||
move.w (a5),d0
|
||||
ext.l d0
|
||||
2: move.l (sp)+,a0
|
||||
add.l d0,a0
|
||||
|
@ -335,7 +335,7 @@ ldf_q: move.l (sp)+,d0
|
|||
!-------------------------------------------------------------------------
|
||||
|
||||
lal_p: adroff
|
||||
move.w (a1),d0
|
||||
move.w (a5),d0
|
||||
bra 1f
|
||||
lal_qp: move.l (sp)+,d0
|
||||
1: add.l #0+l0,d0
|
||||
|
@ -348,7 +348,7 @@ lal_w0: clr.w d0
|
|||
add.l #0+l0,d0
|
||||
bra 3f
|
||||
lal_n: adroff
|
||||
move.w (a1),d0
|
||||
move.w (a5),d0
|
||||
ext.l d0
|
||||
bra 4f
|
||||
lal_qn: move.l (sp)+,d0
|
||||
|
@ -366,7 +366,7 @@ lal_w_2: move.l #-512,d0
|
|||
bra 2b
|
||||
|
||||
lae_l: adroff
|
||||
move.w (a1),d0
|
||||
move.w (a5),d0
|
||||
1: add.l a6,d0
|
||||
move.l d0,-(sp)
|
||||
jmp (a4)
|
||||
|
@ -385,7 +385,7 @@ lae_w5: lae_w6:
|
|||
lxl_1: move.l l0(a2),-(sp)
|
||||
jmp (a4)
|
||||
lxl_l: adroff
|
||||
move.w (a1),d0
|
||||
move.w (a5),d0
|
||||
beq 5f
|
||||
bgt 1f
|
||||
blt e_oddz
|
||||
|
@ -408,7 +408,7 @@ lxl_2: move.l #1,d0
|
|||
lxa_1: move.l #0,d0
|
||||
bra 3f
|
||||
lxa_l: adroff
|
||||
move.w (a1),d0
|
||||
move.w (a5),d0
|
||||
bgt 1f
|
||||
blt e_oddz
|
||||
pea l0(a2)
|
||||
|
@ -429,7 +429,7 @@ lxa_l: adroff
|
|||
|
||||
loi_l: adroff
|
||||
clr.l d1
|
||||
move.w (a1),d1
|
||||
move.w (a5),d1
|
||||
bra 8f
|
||||
loi_s0: move.l #0,d1
|
||||
move.b (a3)+,d1
|
||||
|
@ -487,7 +487,7 @@ loi_1: move.l (sp)+,a0
|
|||
los_z: mov (sp)+,d0
|
||||
bra 0f
|
||||
los_l: adroff
|
||||
move.w (a1),d0
|
||||
move.w (a5),d0
|
||||
0: checksize
|
||||
2: move.l #0,d1 ; move.w (sp)+,d1 ; bra 8b
|
||||
4: move.l (sp)+,d1 ; bra 8b
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
!---------------------------------------------------------------------
|
||||
|
||||
stl_pw: adroff
|
||||
move.w (a1),d0
|
||||
move.w (a5),d0
|
||||
3: asl.l wmu,d0
|
||||
add.l a2,d0
|
||||
move.l d0,a0
|
||||
|
@ -23,7 +23,7 @@ stl_qpw: move.l (sp)+,d0
|
|||
bra 3b
|
||||
|
||||
stl_nw: adroff
|
||||
move.w (a1),d0
|
||||
move.w (a5),d0
|
||||
ext.l d0
|
||||
bra 1f
|
||||
stl_qnw: move.l (sp)+,d0
|
||||
|
@ -61,7 +61,7 @@ sdl_w_1: move.l #-1,d0
|
|||
mov (sp)+,word(a0)
|
||||
jmp (a4)
|
||||
sdl_nw: adroff
|
||||
move.w (a1),d0
|
||||
move.w (a5),d0
|
||||
ext.l d0
|
||||
bra 2b
|
||||
sdl_qnw: move.l (sp)+,d0
|
||||
|
@ -69,7 +69,7 @@ sdl_qnw: move.l (sp)+,d0
|
|||
sdl_qpw: move.l (sp)+,d0
|
||||
bra 4f
|
||||
sdl_pw: adroff
|
||||
move.w (a1),d0
|
||||
move.w (a5),d0
|
||||
4: asl.l wmu,d0
|
||||
add.l a2,d0
|
||||
move.l d0,a0
|
||||
|
@ -87,7 +87,7 @@ sdl_pw: adroff
|
|||
sde_q: move.l (sp)+,d0
|
||||
bra 1f
|
||||
sde_l: adroff
|
||||
move.w (a1),d0
|
||||
move.w (a5),d0
|
||||
1: add.l a6,d0
|
||||
move.l d0,a0
|
||||
#if test
|
||||
|
@ -101,7 +101,7 @@ sde_l: adroff
|
|||
ste_qw: move.l (sp)+,d0
|
||||
bra 1f
|
||||
ste_lw: adroff
|
||||
move.w (a1),d0
|
||||
move.w (a5),d0
|
||||
bra 1f
|
||||
ste_w2: move.w #512,d0 ; bra 0f
|
||||
ste_w1: move.w #256,d0 ; bra 0f
|
||||
|
@ -124,7 +124,7 @@ stf_q: move.l (sp)+,a0
|
|||
bra 0f
|
||||
stf_l: adroff
|
||||
move.l #0,a0
|
||||
move.w (a1),a0
|
||||
move.w (a5),a0
|
||||
bra 0f
|
||||
stf_2W: move.l wrd+word,d0 ; move.l d0,a0
|
||||
bra 0f
|
||||
|
@ -147,7 +147,7 @@ sdf_q: move.l (sp)+,a0
|
|||
bra 1f
|
||||
sdf_l: adroff
|
||||
move.l d6,a0
|
||||
move.w (a1),a0
|
||||
move.w (a5),a0
|
||||
1: add.l (sp)+,a0
|
||||
#if test
|
||||
locptr
|
||||
|
@ -203,12 +203,12 @@ sil_w_1: move.l #-1,d0
|
|||
mov (sp)+,(a0)
|
||||
jmp (a4)
|
||||
sil_pw: adroff
|
||||
move.w (a1),d0
|
||||
move.w (a5),d0
|
||||
bra 5b
|
||||
sil_qpw: move.l (sp)+,d0
|
||||
bra 5b
|
||||
sil_nw: adroff
|
||||
move.w (a1),d0
|
||||
move.w (a5),d0
|
||||
ext.l d0
|
||||
bra 2b
|
||||
sil_qnw: move.l (sp)+,d0
|
||||
|
@ -226,7 +226,7 @@ sti_1: move.l (sp)+,a0
|
|||
move.b word-1(sp),(a0)
|
||||
add.l wrd,sp
|
||||
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
|
||||
0: asr.l #1,d0 ; bne 1f
|
||||
bcs sti_1 ; bra e_oddz
|
||||
|
@ -258,7 +258,7 @@ sti_1W: sti_2W: sti_3W: sti_4W:
|
|||
4: mov (sp)+,(a0)+
|
||||
dbra d0,4b
|
||||
jmp (a4)
|
||||
sts_l: adroff ; move.w (a1),d0
|
||||
sts_l: adroff ; move.w (a5),d0
|
||||
6: checksize
|
||||
4: move.l (sp)+,d0; bra 0b
|
||||
2: move.w (sp)+,d0; bra 0b
|
||||
|
@ -268,7 +268,7 @@ sts_z: mov (sp)+,d0
|
|||
!------------------------------------------------------------------------------
|
||||
! POINTER ARITHMETIC
|
||||
!------------------------------------------------------------------------------
|
||||
adp_l: adroff ; move.w (a1),d0
|
||||
adp_l: adroff ; move.w (a5),d0
|
||||
ext.l d0
|
||||
add.l d0,(sp); jmp (a4)
|
||||
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)
|
||||
adp_s_1: move.l #-1,d0 ; move.b (a3)+,d0
|
||||
add.l d0,(sp) ; jmp (a4)
|
||||
ads_l: adroff ; move.w (a1),d0
|
||||
ads_l: adroff ; move.w (a5),d0
|
||||
bra 0f
|
||||
ads_z: mov (sp)+,d0
|
||||
0: checksize
|
||||
|
@ -289,7 +289,7 @@ ads_z: mov (sp)+,d0
|
|||
ads_1W: mov (sp)+,d0
|
||||
extend d0
|
||||
add.l d0,(sp); jmp (a4)
|
||||
sbs_l: adroff ; move.w (a1),d0
|
||||
sbs_l: adroff ; move.w (a5),d0
|
||||
bra 0f
|
||||
sbs_z: mov (sp)+,d0 !d0 contains objectsize
|
||||
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
|
||||
2: asl.l wmu,d0
|
||||
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
|
||||
bra 1b
|
||||
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
|
||||
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_w0: clr.w d0 ; move.b (a3)+,d0
|
||||
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
|
||||
1: asl.l wmu,d0
|
||||
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
|
||||
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
|
||||
del_qnw: move.l (sp)+,d0 ; bra 1f
|
||||
dee_w0: clr.w d0 ; move.b (a3)+,d0
|
||||
0: asl.l wmu,d0 ; move.l d0,a0
|
||||
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
|
||||
|
||||
#if test
|
||||
|
@ -97,15 +97,15 @@ zrl_w_1: move.l #-1,d0 ; move.b (a3)+,d0
|
|||
#endif
|
||||
cl (a0)
|
||||
jmp (a4)
|
||||
zrl_nw: adroff ; move.w (a1),d0
|
||||
zrl_nw: adroff ; move.w (a5),d0
|
||||
ext.l 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
|
||||
move.l d0,a0 ; cl l0(a0)
|
||||
jmp (a4)
|
||||
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_w0: clr.w d0 ; move.b (a3)+,d0
|
||||
7: asl.l wmu,d0 ; add.l a6,d0
|
||||
|
@ -117,7 +117,7 @@ zre_w0: clr.w d0 ; move.b (a3)+,d0
|
|||
#endif
|
||||
cl (a0)
|
||||
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
|
||||
8: move.l d7,d1
|
||||
3: asr.w #1,d0 ; dbcs d1,3b
|
||||
|
@ -125,7 +125,7 @@ zrf_z: mov (sp)+,d0
|
|||
0: cl -(sp) ; dbra d0,0b
|
||||
jmp (a4)
|
||||
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
|
||||
! 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
|
||||
an d1,(sp)
|
||||
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
|
||||
1: ble e_oddz ; move.l d0,a0
|
||||
move.l d7,d2
|
||||
|
@ -150,7 +150,7 @@ and_z: mov (sp)+,d0
|
|||
ior_1W: mov (sp)+,d1; inor d1,(sp)
|
||||
jmp (a4)
|
||||
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
|
||||
4: ble e_oddz ; move.l d0,a0
|
||||
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
|
||||
6: ble e_oddz ; move.l d0,a0
|
||||
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
|
||||
0: ble e_oddz ; move.l d7,d2
|
||||
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
|
||||
3: ble e_oddz ; move.l d7,d2
|
||||
4: asr.l #1,d0 ; dbcs d2,4b
|
||||
|
@ -199,7 +199,7 @@ rol_z: mov (sp)+,d0
|
|||
jmp (a4)
|
||||
2: nega d1 ; bra 0f
|
||||
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
|
||||
6: ble e_oddz ; move.l d7,d2
|
||||
7: asr.l #1,d0 ; dbcs d2,7b
|
||||
|
@ -232,7 +232,7 @@ set_s0: clr.w d0 ; move.b (a3)+,d0
|
|||
#endif
|
||||
bchg #0,d2 ; add.l d2,a0
|
||||
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
|
||||
|
||||
!----------------------------------------------------------------------------
|
||||
|
@ -262,7 +262,7 @@ inn_s0: clr.w d0 ; move.b (a3)+,d0
|
|||
btst d1,(a0) ; beq 7f
|
||||
mov #1,-(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
|
||||
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ calcarr: move.l (sp)+,d3 !save return address
|
|||
|
||||
aar_1W: bsr calcarr ; move.l a0,-(sp)
|
||||
jmp (a4)
|
||||
aar_l: adroff ; cmp.w wrd,(a1)
|
||||
aar_l: adroff ; cmp.w wrd,(a5)
|
||||
0: bne e_illins ; bra aar_1W
|
||||
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
|
||||
jmp (a4)
|
||||
|
||||
lar_l: adroff ; cmp.w wrd,(a1)
|
||||
lar_l: adroff ; cmp.w wrd,(a5)
|
||||
8: bne e_illins; bra lar_1W
|
||||
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
|
||||
jmp (a4)
|
||||
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
|
||||
|
||||
!-------------------------------------------------------------------------
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
! 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
|
||||
1: sub.w wrd,d0 ; beq adi_1W
|
||||
sub.w wrd,d0 ; beq adi_2W
|
||||
|
@ -40,7 +40,7 @@ adi_2W:
|
|||
!--------------------------------------------------------------------------
|
||||
|
||||
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
|
||||
sub.w wrd,d0 ; beq sbi_2W
|
||||
bra e_oddz
|
||||
|
@ -71,7 +71,7 @@ sbi_2W:
|
|||
!----------------------------------------------------------------------------
|
||||
|
||||
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
|
||||
sub.w wrd,d0 ; beq mli_2W
|
||||
bra e_oddz
|
||||
|
@ -150,7 +150,7 @@ mlu4: move.l d1,d3 ; move.l d0,d2
|
|||
!---------------------------------------------------------------------------
|
||||
|
||||
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
|
||||
sub.w wrd,d0 ; beq dvi_2W
|
||||
bra e_oddz
|
||||
|
@ -172,7 +172,7 @@ dvi_2W:
|
|||
jmp (a4)
|
||||
|
||||
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
|
||||
sub.l wrd,d0 ; beq rmi_2W
|
||||
bra e_oddz
|
||||
|
@ -255,7 +255,7 @@ dvu4:
|
|||
!----------------------------------------------------------------------------
|
||||
|
||||
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
|
||||
#if test
|
||||
comp und,(sp) ; bne 1f
|
||||
|
@ -281,7 +281,7 @@ ngi_l: adroff ; move.w (a1),d0
|
|||
!--------------------------------------------------------------------------
|
||||
|
||||
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
|
||||
sub.w wrd,d0 ; beq sli2
|
||||
bra e_oddz
|
||||
|
@ -330,7 +330,7 @@ sli2:
|
|||
#endif
|
||||
|
||||
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
|
||||
mov (sp)+,d0
|
||||
bmi 7b
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
!-----------------------------------------------------------------------------
|
||||
|
||||
adu_z: mov (sp)+,d0 ; bra 0f
|
||||
adu_l: adroff ; move.w (a1),d0
|
||||
adu_l: adroff ; move.w (a5),d0
|
||||
0: checksize
|
||||
2: move.w (sp)+,d1 ; add.w d1,(sp)
|
||||
jmp (a4)
|
||||
|
@ -16,7 +16,7 @@ adu_l: adroff ; move.w (a1),d0
|
|||
jmp (a4)
|
||||
|
||||
sbu_z: mov (sp)+,d0 ; bra 0f
|
||||
sbu_l: adroff ; move.w (a1),d0
|
||||
sbu_l: adroff ; move.w (a5),d0
|
||||
0: checksize
|
||||
2: move.w (sp)+,d1 ; sub.w d1,(sp)
|
||||
jmp (a4)
|
||||
|
@ -26,7 +26,7 @@ sbu_l: adroff ; move.w (a1),d0
|
|||
!------------------------------------------------------------------------------
|
||||
|
||||
mlu_z: mov (sp)+,d0 ; bra 0f
|
||||
mlu_l: adroff ; move.w (a1),d0
|
||||
mlu_l: adroff ; move.w (a5),d0
|
||||
0: checksize
|
||||
2: move.w (sp)+,d0 ; mulu (sp),d0
|
||||
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_l: adroff ; move.w (a1),d0
|
||||
dvu_l: adroff ; move.w (a5),d0
|
||||
0: checksize
|
||||
2: move.w (sp)+,d1 ; beq 3f
|
||||
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_l: adroff ; move.w (a1),d0
|
||||
rmu_l: adroff ; move.w (a5),d0
|
||||
0: checksize
|
||||
2: move.w (sp)+,d1 ; beq 3f
|
||||
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_l: adroff ; move.w (a1),d0
|
||||
slu_l: adroff ; move.w (a5),d0
|
||||
0: checksize
|
||||
2: move.w (sp)+,d0
|
||||
bmi 7f
|
||||
|
@ -85,7 +85,7 @@ slu_l: adroff ; move.w (a1),d0
|
|||
9: nega d0 ; bra 5b
|
||||
|
||||
sru_z: mov (sp)+,d0 ; bra 0f
|
||||
sru_l: adroff ; move.w (a1),d0
|
||||
sru_l: adroff ; move.w (a5),d0
|
||||
0: checksize
|
||||
2: move.w (sp)+,d0
|
||||
bmi 7b
|
||||
|
@ -102,7 +102,7 @@ sru_l: adroff ; move.w (a1),d0
|
|||
! DUMMY FLOATING POINT ROUTINES
|
||||
!------------------------------------------------------------------------------
|
||||
adf_l: sbf_l: mlf_l: dvf_l:
|
||||
adroff ; move.w (a1),d0
|
||||
adroff ; move.w (a5),d0
|
||||
1: add.l d0,sp
|
||||
#ifdef FLTRAP
|
||||
bra flnim
|
||||
|
|
|
@ -88,7 +88,7 @@ nobr3: add.l #2,a3 ; jmp (a4)
|
|||
!-----------------------------------------------------------------------------
|
||||
|
||||
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
|
||||
sub.w wrd,d0 ; beq cmi_2W
|
||||
bra e_oddz
|
||||
|
@ -104,7 +104,7 @@ cmi_2W:
|
|||
bra 1b
|
||||
|
||||
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
|
||||
comp (sp)+,(sp)+ ; bcs 3b
|
||||
beq 2b ; bra 1b
|
||||
|
@ -115,7 +115,7 @@ cmu_l: adroff ; move.w (a1),d0
|
|||
cmp_z: cmp.l (sp)+,(sp)+ ; bcs 3b
|
||||
beq 2b ; bra 1b
|
||||
|
||||
cms_l: adroff ; move.w (a1),d0
|
||||
cms_l: adroff ; move.w (a5),d0
|
||||
bra 0f
|
||||
cms_z: mov (sp)+,d0 ; bra 0f
|
||||
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
|
||||
jmp (a4)
|
||||
#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
|
||||
|
||||
!-------------------------------------------------------------------------
|
||||
|
@ -149,7 +149,7 @@ cmf_z: mov (sp)+,d0 ; bra 9b
|
|||
|
||||
cai_z: 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_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:
|
||||
|
@ -184,7 +184,7 @@ lblcal:
|
|||
2: mov und,-(sp) ; dbra d1,2b
|
||||
3: move.l (a0),a3 ; jmp (a4)
|
||||
|
||||
ret_l: adroff ; move.w (a1),d0
|
||||
ret_l: adroff ; move.w (a5),d0
|
||||
bra 1f
|
||||
ret_s0: move.l #0,d0 ; move.b (a3)+,d0
|
||||
1: blt e_oddz ; beq ret_0
|
||||
|
@ -194,8 +194,8 @@ ret_s0: move.l #0,d0 ; move.b (a3)+,d0
|
|||
bra 5f
|
||||
ret_1W: move.l #0,d0
|
||||
5: move.w d0,retsize !RETSIZE CONTAINS
|
||||
3: mov (sp)+,(a1)+ ; dbra d0,3b ! #WORDS-1
|
||||
lea retarea,a1 ; bra 4f
|
||||
3: mov (sp)+,(a5)+ ; dbra d0,3b ! #WORDS-1
|
||||
lea retarea,a5 ; bra 4f
|
||||
ret_0: move.w #-1,retsize
|
||||
4: unlk a2 ; cmp.l a2,d6
|
||||
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
|
||||
0: cmp.w retsize,d0 ; beq 1f
|
||||
bsr e_badlfr
|
||||
1: add.l d1,a1
|
||||
2: mov -(a1),-(sp) ; dbra d0,2b
|
||||
1: add.l d1,a5
|
||||
2: mov -(a5),-(sp) ; dbra d0,2b
|
||||
5: jmp (a4)
|
||||
lfr_l: move.b (a3)+,-(sp) ; move.b (a3)+,1(sp)
|
||||
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_l: adroff ; move.w (a1),d0
|
||||
bls_l: adroff ; move.w (a5),d0
|
||||
0: checksize
|
||||
2: move.w (sp)+,d0 ; bra 0f
|
||||
4: 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
|
||||
blm_s0: move.l d6,d0 ; move.b (a3)+,d0
|
||||
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
|
||||
move.l (sp)+,a1 ; cmp.l a0,a1
|
||||
!a1 contains source address. beware of overlap of pieces
|
||||
move.l (sp)+,a5 ; cmp.l a0,a5
|
||||
!a5 contains source address. beware of overlap of pieces
|
||||
beq 3f ; bcs 2f
|
||||
1: mov (a1)+,(a0)+ ; dbra d2,1b
|
||||
3: move.l d1,a1
|
||||
1: mov (a5)+,(a0)+ ; dbra d2,1b
|
||||
3: move.l d1,a5
|
||||
5: jmp (a4)
|
||||
2: add.l d0,a1 ; add.l d0,a0
|
||||
4: mov -(a1),-(a0) ; dbra d2,4b
|
||||
2: add.l d0,a5 ; add.l d0,a0
|
||||
4: mov -(a5),-(a0) ; dbra d2,4b
|
||||
bra 3b
|
||||
|
||||
!----------------------------------------------------------------------------
|
||||
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
|
||||
csa_1W: move.l (sp)+,a0 ; mov (sp)+,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
|
||||
extend d0
|
||||
asl.l #2,d0 ; add.l wrd,d0
|
||||
move.l a0,a5 ; add.l d0,a5
|
||||
move.l word(a5),d1 ; bne 5f
|
||||
move.l a0,a1 ; add.l d0,a1
|
||||
move.l word(a1),d1 ; bne 5f
|
||||
6: sub.l #4,a0 ; move.l (a0),d1
|
||||
beq e_case
|
||||
5: move.l d1,a3 ; jmp (a4)
|
||||
|
||||
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
|
||||
csb_1W: move.l (sp)+,a0 ; mov (sp)+,d0
|
||||
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_l: adroff ; move.w (a1),d0
|
||||
dup_l: adroff ; move.w (a5),d0
|
||||
bra 1f
|
||||
dus_z: mov (sp)+,d0 ; bra 0f
|
||||
dus_l: adroff ; move.w (a1),d0
|
||||
dus_l: adroff ; move.w (a5),d0
|
||||
0: checksize
|
||||
2: move.w (sp)+,d0 ; bra 1f
|
||||
4: move.l (sp)+,d0
|
||||
|
@ -117,7 +117,7 @@ dus_l: adroff ; move.w (a1),d0
|
|||
|
||||
!-----------------------------------------------------------------------------
|
||||
exg_z: mov (sp)+,d0 ; bra 0f
|
||||
exg_l: adroff ; move.w (a1),d0
|
||||
exg_l: adroff ; move.w (a5),d0
|
||||
bra 0f
|
||||
exg_s0: move.l d6,d0 ; move.b (a3)+,d0
|
||||
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_l: adroff ; move.w (a1),d0
|
||||
rck_l: adroff ; move.w (a5),d0
|
||||
0: sub.l wrd,d0 ; beq rck_1W
|
||||
sub.l wrd,d0 ; bne e_oddz
|
||||
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_l: adroff ; move.w (a1),d0
|
||||
fil_l: adroff ; move.w (a5),d0
|
||||
move.l d0,a0
|
||||
3: add.l a6,a0 ; cmp.l 4(a6),a0
|
||||
beq 0f
|
||||
#if flow+count+prof
|
||||
move.l curproc,a5
|
||||
move.l 8(a5),d0
|
||||
sub.l 12(a5),d0
|
||||
move.l curproc,a1
|
||||
move.l 8(a1),d0
|
||||
sub.l 12(a1),d0
|
||||
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
|
||||
move.l a0,4(a6)
|
||||
0: jmp (a4)
|
||||
|
@ -252,7 +252,7 @@ lni_z: add.l #1,(a6)
|
|||
#endif
|
||||
#endif
|
||||
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_s0: move.l #0,d0 ; move.b (a3)+,d0
|
||||
1: cmp.l (a6),d0 ; beq 9f
|
||||
|
@ -269,8 +269,9 @@ lin_s0: move.l #0,d0 ; move.b (a3)+,d0
|
|||
#endif
|
||||
8:
|
||||
#if last
|
||||
bsr nexttab ; move.l 4(a6),(a5)+ !store new line
|
||||
move.l (a6),(a5) !number in buffer lasttable
|
||||
bsr nexttab ;
|
||||
move.l 4(a6),(a1)+ !store new line
|
||||
move.l (a6),(a1) !number in buffer lasttable
|
||||
#endif
|
||||
#if count
|
||||
move.l countptr,d1 !LINE NUMBER IN d1
|
||||
|
@ -311,7 +312,7 @@ syscal:
|
|||
.data4 e_badmon, _Xdup, _Xpipe, _Xtimes
|
||||
.data4 _Xprofil, e_badmon, _Xsetgid, _Xgetgid
|
||||
.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 _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)
|
||||
mov 60(sp),d0 !ERROR NUMBER IN d0
|
||||
lea retsize,a5
|
||||
lea retsize,a1
|
||||
move.l #16,d1
|
||||
1: move.w -(a5),-(sp)
|
||||
1: move.w -(a1),-(sp)
|
||||
dbra d1,1b
|
||||
cmp.w #0xB,d0
|
||||
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
|
||||
bne 0f
|
||||
move.l #16,d1
|
||||
lea retsize,a5
|
||||
1: move.w (sp)+,(a5)+
|
||||
lea retsize,a1
|
||||
1: move.w (sp)+,(a1)+
|
||||
dbra d1,1b
|
||||
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 wrd,sp !REMOVE ERROR NUMBER
|
||||
move.l #16,d0
|
||||
lea retsize,a5
|
||||
1: move.w (sp)+,(a5)+
|
||||
lea retsize,a1
|
||||
1: move.w (sp)+,(a1)+
|
||||
dbra d0,1b
|
||||
movem.l (sp)+,d0/d1/d2/d3/d4/d5/d6/d7/a0/a1/a2/a3/a4/a5/a6
|
||||
add.l wrd,sp
|
||||
|
@ -126,12 +126,12 @@ notrap1: comp #29,d0 !ERROR NUMBER STILL IN d0
|
|||
2: move.l 4(a6),a0
|
||||
cmp.l #0,a0
|
||||
beq 5f
|
||||
move.l a0,a5
|
||||
move.l a0,a1
|
||||
sub.l #4,sp
|
||||
move.l a5,-(sp)
|
||||
move.l a1,-(sp)
|
||||
move.l #-1,d0
|
||||
1: add.l #1,d0
|
||||
tst.b (a5)+
|
||||
tst.b (a1)+
|
||||
bne 1b
|
||||
move.l d0,4(sp)
|
||||
mov #2,-(sp)
|
||||
|
@ -249,8 +249,8 @@ lhalt:
|
|||
beq 0f
|
||||
bsr nexttab
|
||||
bra 1f
|
||||
0: lea lasttable,a5
|
||||
1: tst.l (a5)
|
||||
0: lea lasttable,a1
|
||||
1: tst.l (a1)
|
||||
bne 2f !exists entry in table
|
||||
move.l #22,-(sp) !here case no lines processed
|
||||
pea mess1
|
||||
|
@ -263,9 +263,9 @@ lhalt:
|
|||
mov d6,-(sp)
|
||||
bsr _Xwrite
|
||||
add.l wrd+4,sp
|
||||
move.l (a5),d7
|
||||
move.l (a1),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
|
||||
3: add.l #1,d1
|
||||
tst.b (a0)+
|
||||
|
@ -275,7 +275,7 @@ lhalt:
|
|||
mov d6,-(sp)
|
||||
bsr _Xwrite
|
||||
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
|
||||
bsr itoa
|
||||
move.l #12,-(sp)
|
||||
|
@ -284,11 +284,11 @@ lhalt:
|
|||
bsr _Xwrite
|
||||
add.l wrd+4,sp
|
||||
bsr nexttab
|
||||
tst.l (a5) !in case 0 no more lines
|
||||
tst.l (a1) !in case 0 no more lines
|
||||
beq 9f
|
||||
cmp.l (a5),d7
|
||||
cmp.l (a1),d7
|
||||
bne 2b !new file name
|
||||
clr.l (a5)+ !skip file name
|
||||
clr.l (a1)+ !skip file name
|
||||
bra 4b !only new line
|
||||
9:
|
||||
.sect .data
|
||||
|
@ -345,12 +345,12 @@ emess:
|
|||
!------------------------------------------------------------------------------
|
||||
.sect .text
|
||||
#if last
|
||||
nexttab: move.l linused,a5
|
||||
add.l #8,a5
|
||||
cmp.l #linused,a5 !top of buffer reached?
|
||||
nexttab: move.l linused,a1
|
||||
add.l #8,a1
|
||||
cmp.l #linused,a1 !top of buffer reached?
|
||||
bne 1f !if so back to bottom
|
||||
sub.l #512,a5
|
||||
1: move.l a5,linused
|
||||
sub.l #512,a1
|
||||
1: move.l a1,linused
|
||||
rts
|
||||
#endif
|
||||
#if count+prof
|
||||
|
@ -359,9 +359,9 @@ nexttab: move.l linused,a5
|
|||
.sect .text
|
||||
tabprint: mov d0,-(sp) !KEEP FILE DESCRIPTOR FOR WRITING
|
||||
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 .
|
||||
2: move.l 16(a5),d0
|
||||
2: move.l 16(a1),d0
|
||||
beq 9f !LAST PROCEDURE , EXCEPTION .
|
||||
move.l d0,a6 !IN a6 POINTER TO NEXT PROCEDURE .
|
||||
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
|
||||
move.l d0,a6
|
||||
bra 7b
|
||||
8: move.l 8(a5),d6 !COUNTPTR OF CURRENT IN d6.
|
||||
move.l 12(a5),d5 !FIRST LINE NUMBER IN d5.
|
||||
8: move.l 8(a1),d6 !COUNTPTR OF CURRENT IN d6.
|
||||
move.l 12(a1),d5 !FIRST LINE NUMBER IN d5.
|
||||
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.
|
||||
move.l 20(a5),a2 !NEW FILE NAME.
|
||||
move.l 20(a1),a2 !NEW FILE NAME.
|
||||
cmp.l #0,a2 !NO FILE NAME .
|
||||
beq 6f
|
||||
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.
|
||||
sub.l #1,d7 !ONE LINE LESS TO GO.
|
||||
bhi 0b
|
||||
1: move.l a6,a5
|
||||
cmp.l #0,a5
|
||||
1: move.l a6,a1
|
||||
cmp.l #0,a1
|
||||
bne 2b
|
||||
add.l wrd,sp !REMOVE FILE DESCR.
|
||||
rts !READY.
|
||||
|
|
|
@ -15,8 +15,8 @@ _sigtrp: move.l (sp)+,d2 !save return address
|
|||
move.l d4,a0
|
||||
add.l a0,a0
|
||||
add.l a0,a0
|
||||
lea sig_trp-4(a0),a5
|
||||
move.l (a5),d2 !previous trap number in d2
|
||||
lea sig_trp-4(a0),a1
|
||||
move.l (a1),d2 !previous trap number in d2
|
||||
comp #256,d1 !-2 and -1 special
|
||||
bcc 1f
|
||||
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
|
||||
move.l d1,d3
|
||||
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:
|
||||
mov d4,-(sp) !pointer ,signo to be trapped
|
||||
bsr _Xsignal
|
||||
|
@ -85,7 +85,7 @@ sig12: pea sig12
|
|||
bsr _Xsignal
|
||||
bsr e_badmon
|
||||
rtr
|
||||
sig11: move.l 4(a1),d0
|
||||
sig11: move.l 4(a5),d0
|
||||
sub.l sp,d0
|
||||
bcs e_memflt !in this case error handling possible
|
||||
move.l ml,sp !refresh stack and stop .
|
||||
|
|
|
@ -1,32 +1,30 @@
|
|||
.sect .text
|
||||
.sect .rom
|
||||
.sect .data
|
||||
.retaddr:
|
||||
.data4 0
|
||||
.sect .bss
|
||||
.sect .text
|
||||
!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
|
||||
!REQUIRES.
|
||||
!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 VERSION HAS TO DO SOME CONVERSION FIRST .
|
||||
|
||||
_Xexit: move.l (sp),(a1)
|
||||
_Xexit: move.l (sp)+,.retaddr
|
||||
#ifndef lword
|
||||
bsr st241
|
||||
#endif
|
||||
trap #0
|
||||
.data2 1
|
||||
jsr __exit
|
||||
|
||||
_Xfork: move.l (sp),(a1)
|
||||
trap #0
|
||||
.data2 2
|
||||
lea 4(sp),sp
|
||||
bcs 2f
|
||||
tst.l d0 !PID OF CHILD IN PARENT, 0 IN CHILD
|
||||
_Xfork: move.l (sp)+,.retaddr
|
||||
jsr _fork
|
||||
tst.l d0
|
||||
blt 2f
|
||||
bne 1f
|
||||
trap #0
|
||||
.data2 20
|
||||
jsr _getpid
|
||||
mov d1,-(sp) !PID OF PARENT IN d1
|
||||
mov #1,-(sp) !(PID OF CHILD IN D0),FLAG 1 IN CHILD
|
||||
bra 0f
|
||||
|
@ -34,373 +32,351 @@ _Xfork: move.l (sp),(a1)
|
|||
cl -(sp) !FLAG 0 IN PARENT
|
||||
0: cl -(sp)
|
||||
bra 3f
|
||||
2: mov d0,-(sp)
|
||||
2: move.l _errno,d0
|
||||
mov d0,-(sp)
|
||||
3: move.l (a1),a0
|
||||
mov d0,-(sp)
|
||||
3: move.l .retaddr,a0
|
||||
jmp (a0)
|
||||
!_Xfork is special
|
||||
|
||||
_Xread: move.l (sp),(a1)
|
||||
_Xread: move.l (sp)+,.retaddr
|
||||
#ifndef lword
|
||||
bsr st241
|
||||
#endif
|
||||
trap #0
|
||||
.data2 3
|
||||
sys0: lea 16(sp),sp
|
||||
bcc 1f
|
||||
jsr _read
|
||||
sys0: lea 12(sp),sp
|
||||
cmp.l #-1,d0
|
||||
bne 1f
|
||||
move.l _errno,d0
|
||||
mov d0,-(sp)
|
||||
mov d0,-(sp)
|
||||
bra 2f
|
||||
1: move.l d0,-(sp)
|
||||
cl -(sp)
|
||||
2: move.l (a1),a0
|
||||
2: move.l .retaddr,a0
|
||||
jmp (a0)
|
||||
|
||||
_Xwrite: move.l (sp),(a1)
|
||||
_Xwrite: move.l (sp)+,.retaddr
|
||||
#ifndef lword
|
||||
bsr st241
|
||||
#endif
|
||||
trap #0
|
||||
.data2 4
|
||||
jsr _write
|
||||
bra sys0
|
||||
|
||||
_Xopen: move.l (sp),(a1)
|
||||
_Xopen: move.l (sp)+,.retaddr
|
||||
#ifndef lword
|
||||
bsr st243
|
||||
#endif
|
||||
trap #0
|
||||
.data2 5
|
||||
sys1: lea 12(sp),sp
|
||||
sys5: bcc 1f
|
||||
jsr _open
|
||||
sys1: lea 8(sp),sp
|
||||
sys5: cmp.l #-1,d0
|
||||
bne 1f
|
||||
move.l _errno,d0
|
||||
mov d0,-(sp)
|
||||
mov d0,-(sp)
|
||||
bra 2f
|
||||
1: mov d0,-(sp)
|
||||
cl -(sp)
|
||||
2: move.l (a1),a0
|
||||
2: move.l .retaddr,a0
|
||||
jmp (a0)
|
||||
|
||||
_Xclose: move.l (sp),(a1)
|
||||
_Xclose: move.l (sp)+,.retaddr
|
||||
#ifndef lword
|
||||
bsr st241
|
||||
#endif
|
||||
trap #0
|
||||
.data2 6
|
||||
sys3: lea 8(sp),sp
|
||||
sys4: bcc 1f
|
||||
jsr _close
|
||||
sys3: lea 4(sp),sp
|
||||
sys4: cmp.l #-1,d0
|
||||
bne 1f
|
||||
move.l _errno,d0
|
||||
mov d0,-(sp)
|
||||
mov d0,-(sp)
|
||||
bra 2f
|
||||
1: cl -(sp)
|
||||
2: move.l (a1),a0
|
||||
2: move.l .retaddr,a0
|
||||
jmp (a0)
|
||||
|
||||
_Xwait: move.l (sp),(a1)
|
||||
trap #0
|
||||
.data2 7
|
||||
sys6: lea 4(sp),sp
|
||||
bcc 1f
|
||||
_Xwait: move.l (sp)+,.retaddr
|
||||
.sect .data
|
||||
xxxx:
|
||||
.data4 0, 0
|
||||
.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)
|
||||
bra 2f
|
||||
1: mov d1,-(sp) ! ??
|
||||
mov d0,-(sp)
|
||||
1: mov xxxx+4,-(sp) ! ??
|
||||
mov xxxx,-(sp)
|
||||
cl -(sp)
|
||||
2: move.l (a1),a0
|
||||
2: move.l .retaddr,a0
|
||||
jmp (a0)
|
||||
|
||||
_Xcreat: move.l (sp),(a1)
|
||||
_Xcreat: move.l (sp)+,.retaddr
|
||||
#ifndef lword
|
||||
bsr st243
|
||||
#endif
|
||||
trap #0
|
||||
.data2 8
|
||||
jsr _creat
|
||||
bra sys1
|
||||
|
||||
_Xlink: move.l (sp),(a1)
|
||||
trap #0
|
||||
.data2 9
|
||||
lea 12(sp),sp
|
||||
_Xlink: move.l (sp)+,.retaddr
|
||||
jsr _link
|
||||
lea 8(sp),sp
|
||||
bra sys4
|
||||
|
||||
_Xunlink: move.l (sp),(a1)
|
||||
trap #0
|
||||
.data2 10
|
||||
_Xunlink: move.l (sp)+,.retaddr
|
||||
jsr _unlink
|
||||
bra sys3
|
||||
|
||||
_Xchdir: move.l (sp),(a1)
|
||||
trap #0
|
||||
.data2 12
|
||||
_Xchdir: move.l (sp)+,.retaddr
|
||||
jsr _chdir
|
||||
bra sys3
|
||||
|
||||
_Xmknod: move.l (sp),(a1)
|
||||
_Xmknod: move.l (sp)+,.retaddr
|
||||
#ifndef lword
|
||||
bsr st244
|
||||
#endif
|
||||
trap #0
|
||||
.data2 14
|
||||
lea 16(sp),sp
|
||||
jsr _mknod
|
||||
lea 12(sp),sp
|
||||
bra sys4
|
||||
|
||||
_Xchmod: move.l (sp),(a1)
|
||||
_Xchmod: move.l (sp)+,.retaddr
|
||||
#ifndef lword
|
||||
bsr st243
|
||||
#endif
|
||||
trap #0
|
||||
.data2 15
|
||||
lea 12(sp),sp
|
||||
jsr _chmod
|
||||
lea 8(sp),sp
|
||||
bra sys4
|
||||
|
||||
_Xchown: move.l (sp),(a1)
|
||||
_Xchown: move.l (sp)+,.retaddr
|
||||
#ifndef lword
|
||||
bsr st244
|
||||
#endif
|
||||
trap #0
|
||||
.data2 16
|
||||
lea 16(sp),sp
|
||||
jsr _chown
|
||||
lea 12(sp),sp
|
||||
bra sys4
|
||||
|
||||
_Xbreak: move.l (sp),(a1)
|
||||
trap #0
|
||||
.data2 17
|
||||
lea 8(sp),sp
|
||||
bcc 1f
|
||||
_Xbreak: move.l (sp)+,.retaddr
|
||||
jsr _brk
|
||||
lea 4(sp),sp
|
||||
cmp.l #-1,d0
|
||||
bne 1f
|
||||
move.l _errno,d0
|
||||
mov d0,-(sp)
|
||||
mov d0,-(sp)
|
||||
bra 2f
|
||||
1: move.l -4(sp),nd
|
||||
cl -(sp)
|
||||
2: move.l (a1),a0
|
||||
2: move.l .retaddr,a0
|
||||
jmp (a0)
|
||||
|
||||
.sect .data
|
||||
nd: .data4 endbss
|
||||
.sect .text
|
||||
|
||||
_Xstat: move.l (sp),(a1)
|
||||
trap #0
|
||||
.data2 18
|
||||
lea 12(sp),sp
|
||||
_Xstat: move.l (sp)+,.retaddr
|
||||
jsr _stat
|
||||
lea 8(sp),sp
|
||||
bra sys4
|
||||
|
||||
_Xlseek: move.l (sp),(a1)
|
||||
_Xlseek: move.l (sp)+,.retaddr
|
||||
#ifndef lword
|
||||
bsr st245
|
||||
#endif
|
||||
trap #0
|
||||
.data2 19
|
||||
lea 16(sp),sp
|
||||
bcc 1f
|
||||
jsr _lseek
|
||||
lea 12(sp),sp
|
||||
cmp.l #-1,d0
|
||||
bne 1f
|
||||
move.l _errno,d0
|
||||
mov d0,-(sp)
|
||||
mov d0,-(sp)
|
||||
bra 2f
|
||||
1: move.l d0,-(sp)
|
||||
cl -(sp)
|
||||
2: move.l (a1),a0
|
||||
2: move.l .retaddr,a0
|
||||
jmp (a0)
|
||||
|
||||
|
||||
_Xgetpid: move.l (sp),(a1)
|
||||
trap #0
|
||||
.data2 20
|
||||
add.l #4,sp
|
||||
_Xgetpid: move.l (sp)+,.retaddr
|
||||
jsr _getpid
|
||||
mov d0,-(sp)
|
||||
move.l (a1),a0
|
||||
move.l .retaddr,a0
|
||||
jmp (a0)
|
||||
|
||||
_Xmount: move.l (sp),(a1)
|
||||
_Xmount: move.l (sp)+,.retaddr
|
||||
#ifndef lword
|
||||
bsr st246
|
||||
#endif
|
||||
trap #0
|
||||
.data2 21
|
||||
lea 16(sp),sp
|
||||
jsr _mount
|
||||
lea 12(sp),sp
|
||||
bra sys4
|
||||
|
||||
_Xumount: move.l (sp),(a1)
|
||||
trap #0
|
||||
.data2 22
|
||||
_Xumount: move.l (sp)+,.retaddr
|
||||
jsr _umount
|
||||
bra sys3
|
||||
|
||||
_Xsetuid: move.l (sp),(a1)
|
||||
_Xsetuid: move.l (sp)+,.retaddr
|
||||
#ifndef lword
|
||||
bsr st241
|
||||
#endif
|
||||
trap #0
|
||||
.data2 23
|
||||
jsr _setuid
|
||||
bra sys3
|
||||
|
||||
_Xgetuid: move.l (sp),(a1)
|
||||
trap #0
|
||||
.data2 24
|
||||
sys7: add.l #4,sp
|
||||
mov d1,-(sp)
|
||||
_Xgetuid: move.l (sp)+,.retaddr
|
||||
jsr _getuid
|
||||
sys7: mov d1,-(sp)
|
||||
mov d0,-(sp)
|
||||
move.l (a1),a0
|
||||
move.l .retaddr,a0
|
||||
jmp (a0)
|
||||
|
||||
_Xstime: move.l (sp),(a1)
|
||||
trap #0
|
||||
.data2 25
|
||||
_Xstime: move.l (sp)+,.retaddr
|
||||
jsr _stime
|
||||
bra sys3
|
||||
|
||||
_Xptrace: move.l (sp),(a1)
|
||||
_Xptrace: move.l (sp)+,.retaddr
|
||||
#ifndef lword
|
||||
bsr st247
|
||||
#endif
|
||||
trap #0
|
||||
.data2 26
|
||||
lea 20(sp),sp
|
||||
jsr _ptrace
|
||||
lea 16(sp),sp
|
||||
bra sys5
|
||||
|
||||
_Xalarm: move.l (sp),(a1)
|
||||
_Xalarm: move.l (sp)+,.retaddr
|
||||
#ifndef lword
|
||||
sub.l #2,sp
|
||||
clr.w 4(sp)
|
||||
clr.w (sp)
|
||||
#endif
|
||||
trap #0
|
||||
.data2 27
|
||||
lea 8(sp),sp
|
||||
jsr _alarm
|
||||
lea 4(sp),sp
|
||||
mov d0,-(sp)
|
||||
move.l (a1),a0
|
||||
move.l .retaddr,a0
|
||||
jmp (a0)
|
||||
|
||||
_Xfstat: move.l (sp),(a1)
|
||||
_Xfstat: move.l (sp)+,.retaddr
|
||||
#ifndef lword
|
||||
bsr st241
|
||||
#endif
|
||||
trap #0
|
||||
.data2 28
|
||||
lea 12(sp),sp
|
||||
jsr _fstat
|
||||
lea 8(sp),sp
|
||||
bra sys4
|
||||
|
||||
_Xpause: trap #0
|
||||
.data2 29
|
||||
_Xpause: jsr _pause
|
||||
rts
|
||||
|
||||
_Xutime: move.l (sp),(a1)
|
||||
trap #0
|
||||
.data2 30
|
||||
lea 12(sp),sp
|
||||
_Xutime: move.l (sp)+,.retaddr
|
||||
jsr _utime
|
||||
lea 8(sp),sp
|
||||
bra sys4
|
||||
|
||||
_Xaccess: move.l (sp),(a1)
|
||||
_Xaccess: move.l (sp)+,.retaddr
|
||||
#ifndef lword
|
||||
bsr st248
|
||||
#endif
|
||||
trap #0
|
||||
.data2 33
|
||||
lea 12(sp),sp
|
||||
jsr _access
|
||||
lea 8(sp),sp
|
||||
bra sys4
|
||||
|
||||
_Xnice:
|
||||
_Xnice: move.l (sp)+,.retaddr
|
||||
#ifndef lword
|
||||
bsr 241
|
||||
#endif
|
||||
trap #0
|
||||
.data2 34
|
||||
move.l (sp)+,(sp)
|
||||
jsr _nice
|
||||
move.l .retaddr,(sp)
|
||||
rts
|
||||
|
||||
_Xftime: move.l (sp),(a1)
|
||||
trap #0
|
||||
.data2 35
|
||||
_Xftime: move.l (sp)+,.retaddr
|
||||
jsr _ftime
|
||||
bra sys3
|
||||
|
||||
_Xsync: trap #0
|
||||
.data2 36
|
||||
_Xsync: jsr _sync
|
||||
rts
|
||||
|
||||
_Xkill: move.l (sp),(a1)
|
||||
_Xkill: move.l (sp)+,.retaddr
|
||||
#ifndef lword
|
||||
bsr st248
|
||||
#endif
|
||||
trap #0
|
||||
.data2 37
|
||||
lea 12(sp),sp
|
||||
jsr _kill
|
||||
lea 4(sp),sp
|
||||
bra sys4
|
||||
|
||||
_Xdup: move.l (sp),(a1)
|
||||
_Xdup: move.l (sp)+,.retaddr
|
||||
#ifndef lword
|
||||
bsr st248
|
||||
#endif
|
||||
trap #0
|
||||
.data2 38
|
||||
jsr _dup
|
||||
bra sys1
|
||||
|
||||
_Xpipe: move.l (sp),(a1)
|
||||
trap #0
|
||||
.data2 42
|
||||
_Xpipe: move.l (sp)+,.retaddr
|
||||
move.l #xxxx,-(sp)
|
||||
jsr _pipe
|
||||
add.l #4,sp
|
||||
bra sys6
|
||||
|
||||
_Xtimes: trap #0
|
||||
.data2 43
|
||||
move.l (sp),a0
|
||||
add.l #8,sp
|
||||
_Xtimes: move.l (sp)+,.retaddr
|
||||
jsr _times
|
||||
move.l .retaddr,a0
|
||||
add.l #4,sp
|
||||
jmp (a0)
|
||||
|
||||
_Xprofil: trap #0
|
||||
.data2 44
|
||||
move.l (sp),a0
|
||||
lea 20(sp),sp
|
||||
_Xprofil: move.l (sp)+,.retaddr
|
||||
jsr _profil
|
||||
move.l .retaddr,a0
|
||||
lea 16(sp),sp
|
||||
jmp (a0)
|
||||
|
||||
_Xsetgid: move.l (sp),(a1)
|
||||
_Xsetgid: move.l (sp)+,.retaddr
|
||||
#ifndef lword
|
||||
bsr st241
|
||||
#endif
|
||||
trap #0
|
||||
.data2 46
|
||||
jsr _setgid
|
||||
bra sys3
|
||||
|
||||
_Xgetgid: move.l (sp),(a1)
|
||||
trap #0
|
||||
.data2 47
|
||||
_Xgetgid: move.l (sp)+,.retaddr
|
||||
jsr _getpid
|
||||
bra sys7
|
||||
|
||||
|
||||
_Xsignal: move.l (sp)+,retaddr
|
||||
_Xsignal: move.l (sp)+,.retaddr
|
||||
mov (sp)+,d4
|
||||
extend d4
|
||||
move.l d4,-(sp)
|
||||
move.l retaddr,-(sp)
|
||||
trap #0
|
||||
.data2 48
|
||||
move.l .retaddr,-(sp)
|
||||
jsr _signal
|
||||
lea 12(sp),sp !remove arguments
|
||||
bcc 1f
|
||||
cmp.l #-1,d0
|
||||
bne 1f
|
||||
move.l _errno,d0
|
||||
mov d0,-(sp)
|
||||
mov d0,-(sp)
|
||||
bra 2f
|
||||
1: mov d0,-(sp)
|
||||
1:
|
||||
mov d0,-(sp)
|
||||
cl -(sp)
|
||||
2: move.l retaddr,a0
|
||||
2:
|
||||
move.l .retaddr,a0
|
||||
jmp (a0)
|
||||
.sect .data
|
||||
retaddr: .data4 0
|
||||
.sect .text
|
||||
|
||||
_Xacct: move.l (sp),(a1)
|
||||
trap #0
|
||||
.data2 51
|
||||
bra sys3
|
||||
_Xlock: move.l (sp),(a1)
|
||||
#ifndef lword
|
||||
bsr st241
|
||||
#endif
|
||||
trap #0
|
||||
.data2 53
|
||||
_Xacct: move.l (sp)+,.retaddr
|
||||
jsr _acct
|
||||
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
|
||||
bsr st248
|
||||
#endif
|
||||
trap #0
|
||||
.data2 54
|
||||
lea 16(sp),sp
|
||||
jsr _ioctl
|
||||
lea 12(sp),sp
|
||||
bra sys4
|
||||
|
||||
!_Xmpxcall: move.l (sp),(a1)
|
||||
!_Xmpxcall: move.l (sp)+,.retaddr
|
||||
!#ifndef lword
|
||||
! bsr st241
|
||||
!#endif
|
||||
|
@ -409,26 +385,23 @@ _Xioctl: move.l (sp),(a1)
|
|||
! lea 12(sp),sp
|
||||
! bra sys4
|
||||
|
||||
_Xexece: move.l (sp),(a1)
|
||||
trap #0
|
||||
.data2 59
|
||||
lea 16(sp),sp
|
||||
_Xexece: move.l (sp)+,.retaddr
|
||||
jsr _execve
|
||||
lea 12(sp),sp
|
||||
bra sys4
|
||||
|
||||
_Xumask: move.l (sp),(a1)
|
||||
_Xumask: move.l (sp)+,.retaddr
|
||||
#ifndef lword
|
||||
bsr st241
|
||||
#endif
|
||||
trap #0
|
||||
.data2 60
|
||||
add.l #8,sp
|
||||
jsr _umask
|
||||
add.l #4,sp
|
||||
mov d0,-(sp)
|
||||
move.l (a1),a0
|
||||
move.l .retaddr,a0
|
||||
jmp (a0)
|
||||
|
||||
_Xchroot: move.l (sp),(a1)
|
||||
trap #0
|
||||
.data2 61
|
||||
_Xchroot: move.l (sp)+,.retaddr
|
||||
jsr _chroot
|
||||
bra sys3
|
||||
|
||||
|
||||
|
@ -438,6 +411,13 @@ _Xchroot: move.l (sp),(a1)
|
|||
#ifndef lword
|
||||
|
||||
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 6(sp),4(sp)
|
||||
move.w 10(sp),d0
|
||||
|
@ -445,70 +425,56 @@ st241: sub.l #2,sp
|
|||
move.l d0,8(sp)
|
||||
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)
|
||||
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.w 12(sp),d0
|
||||
ext.l d0
|
||||
move.l d0,8(sp)
|
||||
move.l 14(sp),12(sp)
|
||||
move.w 18(sp),d0
|
||||
move.w 16(sp),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
|
||||
|
||||
st246: 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
|
||||
|
||||
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.w 18(sp),d0
|
||||
ext.l d0
|
||||
move.l d0,16(sp)
|
||||
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)
|
||||
move.l 8(sp),4(sp)
|
||||
move.w 8(sp),d0
|
||||
ext.l d0
|
||||
move.l d0,4(sp)
|
||||
move.w 12(sp),d0
|
||||
ext.l d0
|
||||
move.l d0,8(sp)
|
||||
move.w 14(sp),d0
|
||||
ext.l d0
|
||||
move.l d0,12(sp)
|
||||
rts
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue