home *** CD-ROM | disk | FTP | other *** search
-
- ; ===========================================================
- ; ASSEM.Z80
- ; assembly-language portions of E-Prolog
- ; May 11, 1985
-
- ; (for Macro-80)
- ; This module should be loaded last (except for initialization
- ; code), since anything following it will be overwritten by
- ; the symbol table.
-
- .Z80
-
- EMPT EQU -1
-
- ?STNG MACRO ?TXT,?ADDR,?LP,?RP
- DW ?ADDR
- DW ?LP
- DW ?RP
- DB ?TXT
- DB 0
- ENDM
-
- ; char * sbot = ASBOT;
- SBOT:: DW ASBOT
- ; char * sfree = ASFREE;
- SFREE:: DW ASFREE
-
- $MEMRY:: DS 2
- CSEG
-
- SETTOP::
- LD DE,($MEMRY)
- PUSH DE
- ADD HL,DE
- PUSH HL
- LD DE,128
- ADD HL,DE
- SBC HL,SP
- JR C,SET1
- POP DE
- POP DE
- JP RETF##
- SET1: POP HL
- LD ($MEMRY),HL
- POP HL
- RET
-
- EXTRN _APPEN,_CLOSE,_CREA,_LESS,_LIST,_LOAD
- EXTRN _OPEN,_READ,_READC,_READL,_SAVE
- EXTRN _WRITE,_WRCH,_CUT,_FAIL
-
-
- ; symbol table
-
- ASBOT:
- ADOT:: ?STNG <'.'>,EMPT,EMPT,A10
- A2: ?STNG <'/'>,_CUT,EMPT,EMPT
- ACOLON:: ?STNG <':'>,EMPT,A2,A4
- A4: ?STNG <'APPEND'>,_APPEN,EMPT,EMPT
- A5: ?STNG <'CLOSE'>,_CLOSE,ACOLON,A6
- ACON:: ?STNG <'CON'>,EMPT,EMPT,EMPT
- A6: ?STNG <'CREATE'>,_CREA,ACON,A8
- A7: ?STNG <'FAIL'>,_FAIL,EMPT,EMPT
- A8: ?STNG <'LESS'>,_LESS,A7,A9
- A9: ?STNG <'LIST'>,_LIST,EMPT,EMPT
- A10: ?STNG <'LOAD'>,_LOAD,A5,A15
- ANULL:: ?STNG <'NULL'>,EMPT,EMPT,EMPT
- A12: ?STNG <'OPEN'>,_OPEN,ANULL,A14
- APRO:: ?STNG <'PRO'>,EMPT,EMPT,EMPT
- A14: ?STNG <'READ'>,_READ,APRO,EMPT
- A15: ?STNG <'READCHAR'>,_READC,A12,A17
- A16: ?STNG <'READLIST'>,_READL,EMPT,EMPT
- A17: ?STNG <'SAVE'>,_SAVE,A16,A19
- A18: ?STNG <'WRITE'>,_WRITE,EMPT,EMPT
- A19: ?STNG <'WRITECHAR'>,_WRCH,A18,EMPT
- ASFREE:
- END