Ported to other m68000 systems

This commit is contained in:
ceriel 1987-03-31 09:23:20 +00:00
parent 526d769271
commit bc6486d7b0
15 changed files with 443 additions and 464 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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
!------------------------------------------------------------------------- !-------------------------------------------------------------------------

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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.

View file

@ -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 .

View file

@ -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