home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / languags / prolog / epro23.ark / ASSEM.MAC < prev    next >
Text File  |  1986-11-02  |  2KB  |  79 lines

  1.  
  2. ; ===========================================================
  3. ; ASSEM.Z80
  4. ;    assembly-language portions of E-Prolog
  5. ;    May 11, 1985
  6.  
  7. ; (for Macro-80)
  8. ; This module should be loaded last (except for initialization
  9. ; code), since anything following it will be overwritten by
  10. ; the symbol table.
  11.  
  12.     .Z80
  13.  
  14. EMPT    EQU    -1
  15.  
  16. ?STNG    MACRO    ?TXT,?ADDR,?LP,?RP
  17.     DW    ?ADDR
  18.     DW    ?LP
  19.     DW    ?RP
  20.     DB    ?TXT
  21.     DB    0
  22.     ENDM
  23.  
  24. ; char * sbot = ASBOT;
  25. SBOT::    DW    ASBOT
  26. ; char * sfree = ASFREE;
  27. SFREE::    DW    ASFREE
  28.  
  29. $MEMRY:: DS    2
  30.     CSEG
  31.  
  32. SETTOP::
  33.     LD    DE,($MEMRY)
  34.     PUSH    DE
  35.     ADD    HL,DE
  36.     PUSH    HL
  37.     LD    DE,128
  38.     ADD    HL,DE
  39.     SBC    HL,SP
  40.     JR    C,SET1
  41.     POP    DE
  42.     POP    DE
  43.     JP    RETF##
  44. SET1:    POP    HL
  45.     LD    ($MEMRY),HL
  46.     POP    HL
  47.     RET
  48.  
  49.     EXTRN    _APPEN,_CLOSE,_CREA,_LESS,_LIST,_LOAD
  50.     EXTRN    _OPEN,_READ,_READC,_READL,_SAVE
  51.     EXTRN    _WRITE,_WRCH,_CUT,_FAIL
  52.  
  53.  
  54. ; symbol table
  55.  
  56. ASBOT:
  57. ADOT::    ?STNG    <'.'>,EMPT,EMPT,A10
  58. A2:    ?STNG    <'/'>,_CUT,EMPT,EMPT
  59. ACOLON:: ?STNG    <':'>,EMPT,A2,A4
  60. A4:    ?STNG    <'APPEND'>,_APPEN,EMPT,EMPT
  61. A5:    ?STNG    <'CLOSE'>,_CLOSE,ACOLON,A6
  62. ACON::    ?STNG    <'CON'>,EMPT,EMPT,EMPT
  63. A6:    ?STNG    <'CREATE'>,_CREA,ACON,A8
  64. A7:    ?STNG    <'FAIL'>,_FAIL,EMPT,EMPT
  65. A8:    ?STNG    <'LESS'>,_LESS,A7,A9
  66. A9:    ?STNG    <'LIST'>,_LIST,EMPT,EMPT
  67. A10:    ?STNG    <'LOAD'>,_LOAD,A5,A15
  68. ANULL::    ?STNG    <'NULL'>,EMPT,EMPT,EMPT
  69. A12:    ?STNG    <'OPEN'>,_OPEN,ANULL,A14
  70. APRO::    ?STNG    <'PRO'>,EMPT,EMPT,EMPT
  71. A14:    ?STNG    <'READ'>,_READ,APRO,EMPT
  72. A15:    ?STNG    <'READCHAR'>,_READC,A12,A17
  73. A16:    ?STNG    <'READLIST'>,_READL,EMPT,EMPT
  74. A17:    ?STNG    <'SAVE'>,_SAVE,A16,A19
  75. A18:    ?STNG    <'WRITE'>,_WRITE,EMPT,EMPT
  76. A19:    ?STNG    <'WRITECHAR'>,_WRCH,A18,EMPT
  77. ASFREE:
  78.     END
  79.