mirror of
https://github.com/brouhaha/a2zip.git
synced 2024-05-29 01:41:29 +00:00
Update to assemble with Macro Asssembler AS, and move old sources for ALDS into alds subdirectory.
This commit is contained in:
parent
452314951d
commit
3843e01624
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -1 +1,4 @@
|
||||||
*~
|
*~
|
||||||
|
*.p
|
||||||
|
*.bin
|
||||||
|
*.lst
|
||||||
|
|
17
Makefile
Normal file
17
Makefile
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
all: zip.lst zip.bin check
|
||||||
|
|
||||||
|
%.p %.lst: %.asm
|
||||||
|
asl $< -o $*.p -L
|
||||||
|
|
||||||
|
zip.bin: zip.p
|
||||||
|
p2bin -r '$$0800-$$21ff' zip.p
|
||||||
|
|
||||||
|
check: zip.bin
|
||||||
|
echo "2050236bf501794d01b7610288eafcaf54a739f5caaf77c17a253e75f4928f1a zip.bin" | sha256sum -c -
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm liron-if.bin *.p *.lst
|
||||||
|
|
||||||
|
check:
|
||||||
|
|
||||||
|
.PRECIOUS: %.lst
|
31
README.md
31
README.md
|
@ -14,31 +14,8 @@ many computers, including the Apple II. In 1984 I did reverse-engineered
|
||||||
a substantial portion of the Apple II release 3 ZIP interpreter, as
|
a substantial portion of the Apple II release 3 ZIP interpreter, as
|
||||||
used by e.g. Zork 3 release 10 and release 15.
|
used by e.g. Zork 3 release 10 and release 15.
|
||||||
|
|
||||||
At the time, the best 6502 assembler available to me was the Microsoft
|
Originally I assembled the code using Microsoft ALDS; the version of the
|
||||||
ALDS assembler, which ran on CP/M on the Apple II using a Microsoft
|
sources for that assembler are in the alds subdirectory.
|
||||||
Z80 Softcard. The assembly source code is thus written for that
|
|
||||||
assembler, and will not without some changes assemble with any other
|
|
||||||
assembler.
|
|
||||||
|
|
||||||
To use ALDS, ensure that the source files use CR LF line endings (as
|
|
||||||
used by MS-DOS) and have a control-Z character at the end. (CP/M doesn't
|
|
||||||
have precise file lengths, so it uses a control-Z to denote end of file.)
|
|
||||||
Copy the files to an Apple CP/M disk (or disk image).
|
|
||||||
|
|
||||||
An single Apple II floppy isn't large enough to hold all of the files
|
|
||||||
needed. If you have a larger drive (perhaps a hard disk) accessible to
|
|
||||||
CP/M, you can use these commands:
|
|
||||||
|
|
||||||
m80 =zip/l/c/r
|
|
||||||
cref80 =zip
|
|
||||||
l80 zip,zip/n/e
|
|
||||||
|
|
||||||
If you need to use multiple drives, the commands will have to be adjusted.
|
|
||||||
For example, if you have tools and source code on drive A, scratch files
|
|
||||||
on drive B, and final object code and listing files on drive C, you could
|
|
||||||
use:
|
|
||||||
|
|
||||||
m80 zip,b:zip=zip/c
|
|
||||||
cref80 c:zip=b:zip
|
|
||||||
l80 zip,c:zip/n/e
|
|
||||||
|
|
||||||
|
The current source code assembles using the Macro Assembler AS:
|
||||||
|
http://john.ccac.rwth-aachen.de:8000/as/
|
||||||
|
|
35
alds/README.md
Normal file
35
alds/README.md
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
# a2zip - Infocom ZIP release 3 interpreter for Apple II, partially reverse-engineered
|
||||||
|
|
||||||
|
Original code copyright Infocom, Inc.
|
||||||
|
Disassembly including labels and comments copyright 1984 Eric Smith <spacewar@gmail.com>
|
||||||
|
|
||||||
|
In 1984, the best 6502 assembler available to me was the Microsoft
|
||||||
|
ALDS assembler, which ran on CP/M on the Apple II using a Microsoft
|
||||||
|
Z80 Softcard. The assembly source code was thus written for that
|
||||||
|
assembler, and would not without some changes assemble with any other
|
||||||
|
assembler. This directory contains the old code which assembles with
|
||||||
|
ALDS. It is preserved only for historical interest, and it is not
|
||||||
|
expected that any updates will be made to this version.
|
||||||
|
|
||||||
|
To use ALDS, ensure that the source files use CR LF line endings (as
|
||||||
|
used by MS-DOS) and have a control-Z character at the end. (CP/M doesn't
|
||||||
|
have precise file lengths, so it uses a control-Z to denote end of file.)
|
||||||
|
Copy the files to an Apple CP/M disk (or disk image).
|
||||||
|
|
||||||
|
An single Apple II floppy isn't large enough to hold all of the files
|
||||||
|
needed. If you have a larger drive (perhaps a hard disk) accessible to
|
||||||
|
CP/M, you can use these commands:
|
||||||
|
|
||||||
|
m80 =zip/l/c/r
|
||||||
|
cref80 =zip
|
||||||
|
l80 zip,zip/n/e
|
||||||
|
|
||||||
|
If you need to use multiple drives, the commands will have to be adjusted.
|
||||||
|
For example, if you have tools and source code on drive A, scratch files
|
||||||
|
on drive B, and final object code and listing files on drive C, you could
|
||||||
|
use:
|
||||||
|
|
||||||
|
m80 zip,b:zip=zip/c
|
||||||
|
cref80 c:zip=b:zip
|
||||||
|
l80 zip,c:zip/n/e
|
||||||
|
|
737
zipmac.inc
Normal file
737
zipmac.inc
Normal file
|
@ -0,0 +1,737 @@
|
||||||
|
; Some useful macros
|
||||||
|
|
||||||
|
blt macro dest
|
||||||
|
bcc dest
|
||||||
|
endm
|
||||||
|
|
||||||
|
bge macro dest
|
||||||
|
bcs dest
|
||||||
|
endm
|
||||||
|
|
||||||
|
dasl macro adr1,adr2
|
||||||
|
ifnb adr2
|
||||||
|
lda adr1
|
||||||
|
asl a
|
||||||
|
sta adr2
|
||||||
|
lda adr1+1
|
||||||
|
rol a
|
||||||
|
sta adr2+1
|
||||||
|
else
|
||||||
|
asl adr1
|
||||||
|
rol adr1+1
|
||||||
|
endif
|
||||||
|
endm
|
||||||
|
|
||||||
|
dlsr macro adr1,adr2
|
||||||
|
ifnb adr2
|
||||||
|
lda adr1+1
|
||||||
|
lsr a
|
||||||
|
sta adr2+1
|
||||||
|
lda adr1
|
||||||
|
ror a
|
||||||
|
sta adr2
|
||||||
|
else
|
||||||
|
lsr adr1+1
|
||||||
|
ror adr1
|
||||||
|
endif
|
||||||
|
endm
|
||||||
|
|
||||||
|
dror macro adr1,adr2
|
||||||
|
ifnb adr2
|
||||||
|
lda adr1+1
|
||||||
|
ror a
|
||||||
|
sta adr2+1
|
||||||
|
lda adr1
|
||||||
|
ror a
|
||||||
|
sta adr2
|
||||||
|
else
|
||||||
|
ror adr1+1
|
||||||
|
ror adr1
|
||||||
|
endif
|
||||||
|
endm
|
||||||
|
|
||||||
|
drol macro adr1,adr2
|
||||||
|
ifnb adr2
|
||||||
|
lda adr1
|
||||||
|
rol a
|
||||||
|
sta adr2
|
||||||
|
lda adr1+1
|
||||||
|
rol a
|
||||||
|
sta adr2+1
|
||||||
|
else
|
||||||
|
rol adr1
|
||||||
|
rol adr1+1
|
||||||
|
endif
|
||||||
|
endm
|
||||||
|
|
||||||
|
dor macro adr1,adr2,adr3
|
||||||
|
lda adr1+1
|
||||||
|
ora adr2+1
|
||||||
|
sta adr3+1
|
||||||
|
lda adr1
|
||||||
|
ora adr2
|
||||||
|
sta adr3
|
||||||
|
endm
|
||||||
|
|
||||||
|
dand macro adr1,adr2,adr3
|
||||||
|
lda adr1+1
|
||||||
|
and adr2+1
|
||||||
|
sta adr3+1
|
||||||
|
lda adr1
|
||||||
|
and adr2
|
||||||
|
sta adr3
|
||||||
|
endm
|
||||||
|
|
||||||
|
d1comp macro adr1,adr2
|
||||||
|
lda adr1
|
||||||
|
eor #$ff
|
||||||
|
sta adr2
|
||||||
|
lda adr1+1
|
||||||
|
eor #$ff
|
||||||
|
sta adr2+1
|
||||||
|
endm
|
||||||
|
|
||||||
|
dadc macro adr1,adr2,adr3
|
||||||
|
lda adr1
|
||||||
|
adc adr2
|
||||||
|
sta adr3
|
||||||
|
lda adr1+1
|
||||||
|
adc adr2+1
|
||||||
|
sta adr3+1
|
||||||
|
endm
|
||||||
|
|
||||||
|
dsbc macro adr1,adr2,adr3
|
||||||
|
lda adr1
|
||||||
|
sbc adr2
|
||||||
|
sta adr3
|
||||||
|
lda adr1+1
|
||||||
|
sbc adr2+1
|
||||||
|
sta adr3+1
|
||||||
|
endm
|
||||||
|
|
||||||
|
dadd macro adr1,adr2,adr3
|
||||||
|
clc
|
||||||
|
dadc adr1,adr2,adr3
|
||||||
|
endm
|
||||||
|
|
||||||
|
dsub macro adr1,adr2,adr3
|
||||||
|
sec
|
||||||
|
dsbc adr1,adr2,adr3
|
||||||
|
endm
|
||||||
|
|
||||||
|
add macro adr1,adr2,adr3
|
||||||
|
ifnb adr1
|
||||||
|
lda adr1
|
||||||
|
endif
|
||||||
|
clc
|
||||||
|
adc adr2
|
||||||
|
ifnb adr3
|
||||||
|
sta adr3
|
||||||
|
endif
|
||||||
|
endm
|
||||||
|
|
||||||
|
sub macro adr1,adr2,adr3
|
||||||
|
ifnb adr1
|
||||||
|
lda adr1
|
||||||
|
endif
|
||||||
|
sec
|
||||||
|
sbc adr2
|
||||||
|
ifnb adr3
|
||||||
|
sta adr3
|
||||||
|
endif
|
||||||
|
endm
|
||||||
|
|
||||||
|
daddb1 macro addr,byte
|
||||||
|
clc
|
||||||
|
lda addr
|
||||||
|
adc byte
|
||||||
|
sta addr
|
||||||
|
bcc label
|
||||||
|
inc addr+1
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
dsubb1 macro addr,byte
|
||||||
|
sec
|
||||||
|
lda addr
|
||||||
|
sbc byte
|
||||||
|
sta addr
|
||||||
|
bcs label
|
||||||
|
dec addr+1
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
daddb2 macro addr,byte
|
||||||
|
ifnb byte
|
||||||
|
add addr,byte,addr
|
||||||
|
else
|
||||||
|
add ,addr,addr
|
||||||
|
endif
|
||||||
|
bcc label
|
||||||
|
inc addr+1
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
dsubb2 macro addr,byte
|
||||||
|
ifnb byte
|
||||||
|
sub addr,byte,addr
|
||||||
|
else
|
||||||
|
sub ,addr,addr
|
||||||
|
endif
|
||||||
|
bcs label
|
||||||
|
dec addr+1
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
dinc macro addr
|
||||||
|
inc addr
|
||||||
|
bne label
|
||||||
|
inc addr+1
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
ddec macro addr
|
||||||
|
dsubb2 addr,#$01,addr
|
||||||
|
endm
|
||||||
|
|
||||||
|
ddec2 macro addr
|
||||||
|
dsubb2 addr,#$02,addr
|
||||||
|
endm
|
||||||
|
|
||||||
|
dmov macro adr1,adr2
|
||||||
|
lda adr1
|
||||||
|
sta adr2
|
||||||
|
lda adr1+1
|
||||||
|
sta adr2+1
|
||||||
|
endm
|
||||||
|
|
||||||
|
dmovi macro data,adr2
|
||||||
|
lda #((data)&$ff)
|
||||||
|
sta adr2
|
||||||
|
lda #((data)>>8)
|
||||||
|
sta adr2+1
|
||||||
|
endm
|
||||||
|
|
||||||
|
dmovi2 macro data,adr2
|
||||||
|
lda #((data)>>8)
|
||||||
|
sta adr2+1
|
||||||
|
lda #((data)&$ff)
|
||||||
|
sta adr2
|
||||||
|
endm
|
||||||
|
|
||||||
|
pul macro adr
|
||||||
|
irp dest,ALLARGS
|
||||||
|
pla
|
||||||
|
sta dest
|
||||||
|
endm
|
||||||
|
endm
|
||||||
|
|
||||||
|
psh macro adr
|
||||||
|
irp src,ALLARGS
|
||||||
|
lda src
|
||||||
|
pha
|
||||||
|
endm
|
||||||
|
endm
|
||||||
|
|
||||||
|
dpul macro adr
|
||||||
|
pul adr+1
|
||||||
|
pul adr
|
||||||
|
endm
|
||||||
|
|
||||||
|
dpul2 macro adr
|
||||||
|
pul adr
|
||||||
|
pul adr+1
|
||||||
|
endm
|
||||||
|
|
||||||
|
dpsh macro adr
|
||||||
|
psh adr
|
||||||
|
psh adr+1
|
||||||
|
endm
|
||||||
|
|
||||||
|
mov macro adr1
|
||||||
|
ifnb adr1
|
||||||
|
lda adr1
|
||||||
|
endif
|
||||||
|
shift
|
||||||
|
irp dest,ALLARGS
|
||||||
|
sta dest
|
||||||
|
endm
|
||||||
|
endm
|
||||||
|
|
||||||
|
inca macro
|
||||||
|
add ,#$01
|
||||||
|
endm
|
||||||
|
|
||||||
|
deca macro
|
||||||
|
sub ,#$01
|
||||||
|
endm
|
||||||
|
|
||||||
|
tsta macro
|
||||||
|
ora #$00
|
||||||
|
endm
|
||||||
|
|
||||||
|
str macro text
|
||||||
|
db text
|
||||||
|
endm
|
||||||
|
|
||||||
|
jeq macro adr
|
||||||
|
bne label
|
||||||
|
jmp adr
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
jne macro adr
|
||||||
|
beq label
|
||||||
|
jmp adr
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
jcc macro adr
|
||||||
|
bcs label
|
||||||
|
jmp adr
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
jcs macro adr
|
||||||
|
bcc label
|
||||||
|
jmp adr
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
jlt macro adr
|
||||||
|
bge label
|
||||||
|
jmp adr
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
jge macro adr
|
||||||
|
blt label
|
||||||
|
jmp adr
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
jgt macro adr
|
||||||
|
blt label
|
||||||
|
bcc label
|
||||||
|
jmp adr
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
jpl macro adr
|
||||||
|
bmi label
|
||||||
|
jmp adr
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
jmi macro adr
|
||||||
|
bpl label
|
||||||
|
jmp adr
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
jsreq macro adr,adr2
|
||||||
|
bne label
|
||||||
|
jsr adr
|
||||||
|
ifnb adr2
|
||||||
|
jmp adr2
|
||||||
|
endif
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
jsrne macro adr,adr2
|
||||||
|
beq label
|
||||||
|
jsr adr
|
||||||
|
ifnb adr2
|
||||||
|
jmp adr2
|
||||||
|
endif
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
jsrcc macro adr,adr2
|
||||||
|
bcs label
|
||||||
|
jsr adr
|
||||||
|
ifnb adr2
|
||||||
|
jmp adr2
|
||||||
|
endif
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
jsrcs macro adr,adr2
|
||||||
|
bcc label
|
||||||
|
jsr adr
|
||||||
|
ifnb adr2
|
||||||
|
jmp adr2
|
||||||
|
endif
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
jsrlt macro adr,adr2
|
||||||
|
bge label
|
||||||
|
jsr adr
|
||||||
|
ifnb adr2
|
||||||
|
jmp adr2
|
||||||
|
endif
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
jsrge macro adr,adr2
|
||||||
|
blt label
|
||||||
|
jsr adr
|
||||||
|
ifnb adr2
|
||||||
|
jmp adr2
|
||||||
|
endif
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
jsrgt macro adr,adr2
|
||||||
|
blt label
|
||||||
|
beq label
|
||||||
|
jsr adr
|
||||||
|
ifnb adr2
|
||||||
|
jmp adr2
|
||||||
|
endif
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
jsrpl macro adr,adr2
|
||||||
|
bmi label
|
||||||
|
jsr adr
|
||||||
|
ifnb adr2
|
||||||
|
jmp adr2
|
||||||
|
endif
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
jsrmi macro adr,adr2
|
||||||
|
bpl label
|
||||||
|
jsr adr
|
||||||
|
ifnb adr2
|
||||||
|
jmp adr2
|
||||||
|
endif
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
rtseq macro adr
|
||||||
|
bne label
|
||||||
|
rts
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
rtsne macro adr
|
||||||
|
beq label
|
||||||
|
rts
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
rtscc macro adr
|
||||||
|
bcs label
|
||||||
|
rts
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
rtscs macro adr
|
||||||
|
bcc label
|
||||||
|
rts
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
rtslt macro adr
|
||||||
|
bge label
|
||||||
|
rts
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
rtsge macro adr
|
||||||
|
blt label
|
||||||
|
rts
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
rtsgt macro adr
|
||||||
|
blt label
|
||||||
|
beq label
|
||||||
|
rts
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
rtspl macro adr
|
||||||
|
bmi label
|
||||||
|
rts
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
rtsmi macro adr
|
||||||
|
bpl label
|
||||||
|
rts
|
||||||
|
label:
|
||||||
|
endm
|
||||||
|
|
||||||
|
dtst macro addr
|
||||||
|
lda addr+1
|
||||||
|
ora addr
|
||||||
|
endm
|
||||||
|
|
||||||
|
dtstbe macro adr1,adr2
|
||||||
|
dtst adr1
|
||||||
|
beq adr2
|
||||||
|
endm
|
||||||
|
|
||||||
|
dtstbn macro adr1,adr2
|
||||||
|
dtst adr1
|
||||||
|
bne adr2
|
||||||
|
endm
|
||||||
|
|
||||||
|
dtstje macro adr1,adr2
|
||||||
|
dtst adr1
|
||||||
|
jeq adr2
|
||||||
|
endm
|
||||||
|
|
||||||
|
dtstjn macro adr1,adr2
|
||||||
|
dtst adr1
|
||||||
|
jne adr2
|
||||||
|
endm
|
||||||
|
|
||||||
|
dtstre macro adr1
|
||||||
|
dtst adr1
|
||||||
|
rtseq
|
||||||
|
endm
|
||||||
|
|
||||||
|
dtstrn macro adr1
|
||||||
|
dtst adr1
|
||||||
|
rtsne
|
||||||
|
endm
|
||||||
|
|
||||||
|
dtst2 macro addr
|
||||||
|
lda addr
|
||||||
|
ora addr+1
|
||||||
|
endm
|
||||||
|
|
||||||
|
dts2be macro adr1,adr2
|
||||||
|
dtst2 adr1
|
||||||
|
beq adr2
|
||||||
|
endm
|
||||||
|
|
||||||
|
dts2bn macro adr1,adr2
|
||||||
|
dtst2 adr1
|
||||||
|
bne adr2
|
||||||
|
endm
|
||||||
|
|
||||||
|
dts2je macro adr1,adr2
|
||||||
|
dtst2 adr1
|
||||||
|
jeq adr2
|
||||||
|
endm
|
||||||
|
|
||||||
|
dts2jn macro adr1,adr2
|
||||||
|
dtst2 adr1
|
||||||
|
jne adr2
|
||||||
|
endm
|
||||||
|
|
||||||
|
dts2re macro adr1,adr2
|
||||||
|
dtst2 adr1
|
||||||
|
rtseq adr2
|
||||||
|
endm
|
||||||
|
|
||||||
|
dts2rn macro adr1,adr2
|
||||||
|
dtst2 adr1
|
||||||
|
rtsne adr2
|
||||||
|
endm
|
||||||
|
|
||||||
|
dxbne macro adr
|
||||||
|
dex
|
||||||
|
bne adr
|
||||||
|
endm
|
||||||
|
|
||||||
|
dybne macro adr
|
||||||
|
dey
|
||||||
|
bne adr
|
||||||
|
endm
|
||||||
|
|
||||||
|
dxbeq macro adr
|
||||||
|
dex
|
||||||
|
beq adr
|
||||||
|
endm
|
||||||
|
|
||||||
|
dybeq macro adr
|
||||||
|
dey
|
||||||
|
beq adr
|
||||||
|
endm
|
||||||
|
|
||||||
|
dxbpl macro adr
|
||||||
|
dex
|
||||||
|
bpl adr
|
||||||
|
endm
|
||||||
|
|
||||||
|
dybpl macro adr
|
||||||
|
dey
|
||||||
|
bpl adr
|
||||||
|
endm
|
||||||
|
|
||||||
|
dxbmi macro adr
|
||||||
|
dex
|
||||||
|
bmi adr
|
||||||
|
endm
|
||||||
|
|
||||||
|
dybmi macro adr
|
||||||
|
dey
|
||||||
|
bmi adr
|
||||||
|
endm
|
||||||
|
|
||||||
|
ixbne macro adr
|
||||||
|
inx
|
||||||
|
bne adr
|
||||||
|
endm
|
||||||
|
|
||||||
|
iybne macro adr
|
||||||
|
iny
|
||||||
|
bne adr
|
||||||
|
endm
|
||||||
|
|
||||||
|
decbe macro adr1,adr2
|
||||||
|
dec adr1
|
||||||
|
beq adr2
|
||||||
|
endm
|
||||||
|
|
||||||
|
decbn macro adr1,adr2
|
||||||
|
dec adr1
|
||||||
|
bne adr2
|
||||||
|
endm
|
||||||
|
|
||||||
|
decje macro adr1,adr2
|
||||||
|
dec adr1
|
||||||
|
jeq adr2
|
||||||
|
endm
|
||||||
|
|
||||||
|
decjn macro adr1,adr2
|
||||||
|
dec adr1
|
||||||
|
jne adr2
|
||||||
|
endm
|
||||||
|
|
||||||
|
decabe macro adr1
|
||||||
|
deca
|
||||||
|
beq adr1
|
||||||
|
endm
|
||||||
|
|
||||||
|
decabn macro adr1
|
||||||
|
deca
|
||||||
|
bne adr1
|
||||||
|
endm
|
||||||
|
|
||||||
|
decabp macro adr1
|
||||||
|
deca
|
||||||
|
bpl adr1
|
||||||
|
endm
|
||||||
|
|
||||||
|
decabm macro adr1
|
||||||
|
deca
|
||||||
|
bmi adr1
|
||||||
|
endm
|
||||||
|
|
||||||
|
tstabe macro adr1
|
||||||
|
tsta
|
||||||
|
beq adr1
|
||||||
|
endm
|
||||||
|
|
||||||
|
tstabn macro adr1
|
||||||
|
tsta
|
||||||
|
bne adr1
|
||||||
|
endm
|
||||||
|
|
||||||
|
tstabp macro adr1
|
||||||
|
tsta
|
||||||
|
bpl adr1
|
||||||
|
endm
|
||||||
|
|
||||||
|
tstabm macro adr1
|
||||||
|
tsta
|
||||||
|
bmi adr1
|
||||||
|
endm
|
||||||
|
|
||||||
|
tstaje macro adr1
|
||||||
|
tsta
|
||||||
|
jeq adr1
|
||||||
|
endm
|
||||||
|
|
||||||
|
tstarp macro
|
||||||
|
tsta
|
||||||
|
rtspl
|
||||||
|
endm
|
||||||
|
|
||||||
|
cmpbe macro adr1,adr2
|
||||||
|
cmp adr1
|
||||||
|
beq adr2
|
||||||
|
endm
|
||||||
|
|
||||||
|
cmpbn macro adr1,adr2
|
||||||
|
cmp adr1
|
||||||
|
bne adr2
|
||||||
|
endm
|
||||||
|
|
||||||
|
cmpbl macro adr1,adr2
|
||||||
|
cmp adr1
|
||||||
|
blt adr2
|
||||||
|
endm
|
||||||
|
|
||||||
|
cmpbg macro adr1,adr2
|
||||||
|
cmp adr1
|
||||||
|
bge adr2
|
||||||
|
endm
|
||||||
|
|
||||||
|
cmpbm macro adr1,adr2
|
||||||
|
cmp adr1
|
||||||
|
bmi adr2
|
||||||
|
endm
|
||||||
|
|
||||||
|
cmpbp macro adr1,adr2
|
||||||
|
cmp adr1
|
||||||
|
bpl adr2
|
||||||
|
endm
|
||||||
|
|
||||||
|
cmpje macro adr1,adr2
|
||||||
|
cmp adr1
|
||||||
|
jeq adr2
|
||||||
|
endm
|
||||||
|
|
||||||
|
cmpjl macro adr1,adr2
|
||||||
|
cmp adr1
|
||||||
|
jlt adr2
|
||||||
|
endm
|
||||||
|
|
||||||
|
cmpjse macro adr1,adr2,adr3
|
||||||
|
cmp adr1
|
||||||
|
jsreq adr2,adr3
|
||||||
|
endm
|
||||||
|
|
||||||
|
cmpjsn macro adr1,adr2
|
||||||
|
cmp adr1
|
||||||
|
jsrne adr2
|
||||||
|
endm
|
||||||
|
|
||||||
|
cmpjsg macro adr1,adr2
|
||||||
|
cmp adr1
|
||||||
|
jsrge adr2
|
||||||
|
endm
|
||||||
|
|
||||||
|
cmpre macro adr1
|
||||||
|
cmp adr1
|
||||||
|
rtseq
|
||||||
|
endm
|
||||||
|
|
||||||
|
cpxbe macro adr1,adr2
|
||||||
|
cpx adr1
|
||||||
|
beq adr2
|
||||||
|
endm
|
||||||
|
|
||||||
|
cpxbg macro adr1,adr2
|
||||||
|
cpx adr1
|
||||||
|
bge adr2
|
||||||
|
endm
|
||||||
|
|
||||||
|
cpxrgt macro adr1
|
||||||
|
cpx adr1
|
||||||
|
rtsgt
|
||||||
|
endm
|
||||||
|
|
||||||
|
cpybn macro adr1,adr2
|
||||||
|
cpy adr1
|
||||||
|
bne adr2
|
||||||
|
endm
|
Loading…
Reference in New Issue
Block a user