home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
SIMTEL
/
CPMUG
/
CPMUG051.ARK
/
FLUB8080.S2M
< prev
next >
Wrap
Text File
|
1984-04-29
|
4KB
|
285 lines
#$#$0 (+-*/) FLUB TO 8080 TRANSLATION MACROS
.REV $,$#
%FREV: DB 32H ; 06/13/79 R. CURTISS#
..REV: DB $10#
$20$37,#
.. DB '$30'#
.. DW $30REV#
$F8#
#
$.$# ACCEPT AN INPUT LINE
* $10.# OUTPUT COMMENT LINE
=$10# PASS LINE ON FOR PROCESSING
#
=BEGIN STAGE2#
.LET P+ EQU DAD D#
.LET P- EQU CALL DSUB#
.LET P* EQU CALL DMULT#
.LET P/ EQU CALL DDIV#
.LET V+ EQU ADD M#
.LET V- EQU SUB M#
.LET C= EQU JZ#
.LET CNE EQU JNZ#
.LET CLT EQU JC#
.LET CGE EQU JNC#
.LET K= EQU CMPEQ#
.LET KNE EQU CMPEQ#
.LET KLT EQU CMPLT#
.LET KGE EQU CMPLT#
.LET VAL EQU +3#
.LET FLG EQU +2#
..; #
.REV 5,I,D,S,M,F# GENERATE REVISION LIST IN SIGN ON MESSAGE
..PROGR: LXI H,REV#
.. MOV C,M#
.. INX H#
.. LXI D,MHELLO+2#
.. CALL DSPR#
=MESSAGE HELLO TO 5#
.. CALL INITL#
#
=$ $ = $#
.. LDA K$30$11#
.. STA K$20$11#
#
=VAL $ = PTR $#
.. LDA K$20#
.. STA K$10+3#
#
=PTR $ = VAL $#
.. LDA K$20+3#
.. MOV L,A#
.. CMA #
.. ORI 7FH#
.. RLC #
.. INR A#
.. MOV H,A#
.. SHLD K$10#
#
=GET $ = $#
.. LHLD K$20#
.. LXI D,K$10#
.. CALL GMOVE#
#
=STO $ = $#
.. LXI D,K$20#
.. LHLD K$10#
.. CALL SMOVE#
#
=VAL $ = $ + 0#
.. LDA K$20+3#
.. STA K$10+3#
#
=VAL $ = $ + 1#
.. LDA K$20+3#
.. INR A#
.. STA K$10+3#
#
=VAL $ = $ - 1#
.. LDA K$20+3#
.. DCR A#
.. STA K$10+3#
#
=VAL $ = $ $ $#
.. LDA K$20+3#
.. LXI H,K$40+3#
V$30$56 .. $51#
.. STA K$10+3#
#
=PTR $ = $ + 0#
.. LHLD K$20#
.. SHLD K$10#
#
=PTR $ = $ + 1#
.. LHLD K$20#
.. INX H#
.. SHLD K$10#
#
=PTR $ = $ + 2#
.. LHLD K$20#
.. INX H#
.. INX H#
.. SHLD K$10#
#
=PTR $ = $ - 1#
.. LHLD K$20#
.. DCX H#
.. SHLD K$10#
#
=PTR $ = $ - 2#
.. LHLD K$20#
.. DCX H#
.. DCX H#
.. SHLD K$10#
#
=PTR $ = $ + 7#
.. LHLD K$20#
.. INX H#
.. SHLD K$10#
#
=PTR $ = $ - 7#
.. LHLD K$20#
.. DCX H#
.. SHLD K$10#
#
=PTR $ = $ * 7#
.. LHLD K$20#
.. SHLD K$10#
#
=PTR $ = $ / 7#
.. LHLD K$20#
.. SHLD K$10#
#
=PTR $ = $ * 5#
.. LHLD K$20#
.. CALL DMUL10# SIGNED MULTIPLY BY 10
.. SHLD K$10#
#
=PTR $ = $ / 5#
.. LHLD K$20#
.. CALL DDIV10# SIGNED DIVIDE BY 10
.. SHLD K$10#
#
=PTR $ = $ $ $#
.. LHLD K$40#
.. XCHG #
.. LHLD K$20#
P$30$56 .. $51#
.. SHLD K$10#
#
=TO $ IF PTR $ $ $#
.. LHLD K$40#
.. XCHG #
.. LHLD K$20#
K$30$66 .. CALL $61#
C$30$56 .. $51 LL$10#
#
=TO $ IF $ $ $ $#
.. LDA K$30$21#
.. LXI H,K$50$21#
.. CMP M#
C$40$66 .. $61 LL$10#
#
=LOC $#
..LL$10: #
#
=TO $#
.. JMP LL$10#
#
=TO $ BY $#
.. LXI H,$$+9#
.. SHLD K$20#
.. JMP LL$10#
#
=RETURN BY $#
.. LHLD K$10#
.. PCHL #
#
=READ NEXT $#
.. LDA K$10+3#
.. CALL READ#
.. STA K$10+2#
#
=WRITE NEXT $#
.. LDA K$10+3#
.. CALL WRITE#
.. STA K$10+2#
#
=VAL $ = CHAR#
.. CALL RDCH#
.. STA K$10+3#
#
=CHAR = VAL $#
.. LDA K$10+3#
.. CALL WRCH#
.. STA K$10+2#
#
=REWIND $#
.. LDA K$10+3#
.. CALL REWIND#
.. STA K$10+2#
#
=MESSAGE $ TO $#
.. LDA K$20+3#
.. LXI H,M$10#
.. CALL MWRITE#
.. STA K$20+2#
#
=TRAP#
.. CALL TRAP#
#
=STOP#
.. RET #
#
=END PROGRAM#
..MEMLOW EQU $$#
.. END #
$F0#
#
.REG $ $ $# SETUP REGISTER INITIAL VALUES
..K$30: DW $10#
.. DB $20,$30#
#
.REG#
ABCDEFGHIJKLMNOPQRSTUVWXYZ$17#
..K$10: DS 4#
$F8#
#
.MSG $=$#
..M$10: DB $25,'$20',0FFH#
#
%#
$F13#
#
%$#
$10$F13#
#
..$ $ $#
$10 $20 $30$F13#
#
* $# SOURCE COMMENT LINE
; $10$F13#
#
.LET $ EQU $#
$F3#
## END OF FLUB TO 8080 MACROS
%MAIN EQU 100H
%IREV EQU MAIN+3
%DREV EQU MAIN+7
%
% ORG 1000H
%
% JMP PROGR
% NOP
%IOOP: JMP MAIN+4
% NOP
%TRAP: JMP MAIN+8
% NOP
%MEMSET: JMP MAIN+12
% NOP
%
.REG 0 0 0
.REG 1 1 1
.REG 2 2 2
.REG 3 3 3
.REG 4 0 4
.REG 10 0 5
.REG 0 0 6
.REG 1 0 7
.REG 0 0 8
.REG 0 0 9
%
% DB 0,0,0,0,0,0,0,0
%
.REG#
%
% DB 0,0,0,0,0,0,0,0
%
.MSG IOCH=*** I/O ERROR ***
.MSG EXPR=*** EXPRESSION ERROR ***
.MSG CONV=*** CONVERSION ERROR ***
.MSG FULL=*** MEMORY FULL ERROR ***
.MSG HELLO=--------------------- STAGE2 -- 8080 VERSION#
%;
%;