home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / extra / m80unv.mac < prev    next >
Text File  |  2020-01-01  |  5KB  |  259 lines

  1.     UNIVERSAL    M80UNV
  2.  
  3.     .DIRECTIVE    .NOBIN
  4.  
  5. ;ACCUMULATOR ASSIGNMENTS
  6.  
  7. F=0
  8. T1=1
  9. T2=2
  10. T3=3
  11. T4=4
  12. P1=5
  13. OP=6
  14. P2=OP
  15. I=7
  16. X=10
  17. P3=X        ;USED IN MAC80
  18. TOK=11
  19.         ;TOK IS NOW A DOUBLE WORD
  20. S=13
  21. LBTP=14
  22. E=15
  23. BC=16
  24. P=17
  25.  
  26. ;JOB DATA AREA VERSION NUMBER
  27.  
  28. M80WHO==0
  29. M80VER==7
  30. M80MIN==2
  31. M80EDT==77
  32.  
  33. ;FLAGS (R.H.)
  34.  
  35. FR.UND==1    ;SYMBOL UNDEFINED
  36. FR.MQT==2    ;IN QUOTE IN MACRO
  37. FR.PS1==4    ;PASS 1
  38. FR.LOP==10    ;OP CODE LISTED (AS OPPOSED TO A COMMENT LINE)
  39. FR.LIN==20    ;LINE # PRINTED AT START OF LINE
  40. FR.LST==40    ;LISTING REQUESTED
  41. FR.END==100    ;END SEEN
  42. FR.NRF==200    ;DO NOT REFERENCE SYMBOL
  43. FR.HEX==400    ;HEXADECIMAL LISTING REQUESTED
  44. FR.REL==1000    ;LAST ADDRESS WAS RELOCATABLE
  45. FR.EXT==2000    ;LAST ADDRESS WAS EXTERNAL (IMPLIES FR.REL)
  46. FR.SNK==4000    ;"INVISIBLE" INPUT MODE
  47. FR.ORG==10000    ;ORG SEEN, NO RELOCATION
  48. FR.OFF==20000    ;ASSEMBLY CONDITIONALLY OFF
  49. FR.LIB==40000    ;INSIDE MACLIB
  50. FR.BOL==100000    ;FLAG BEGIN OF LISTING LINE
  51. FR.EVL==200000    ;FLAG EVALUATE SYMBOL (FOR SRCHOP)
  52. FR.MCM==400000    ;IN COMMENT IN MACRO DEFINITION
  53.  
  54. ;FLAGS (L.H.)
  55.  
  56. FL.CCL==1
  57. FL.LNR==2    ;LIST NON-REF SYMBOLS AT END OF PROGRAM
  58. FL.SUP==4    ;SUPPRESS MACRO EXPANSION
  59. FL.HED==10    ;"UNREFERENED LABELS" WAS TYPED
  60.  
  61. ;SYMBOL TABLE FLAGS
  62.  
  63. S.REL==1    ;RELOCATABLE
  64. S.INT==2    ;INTERNAL
  65. S.EXT==4    ;EXTERNAL
  66. S.REF==10    ;REFERENCED
  67. S.UNDF==20    ;UNDEFINED (FOR CREF OF UNDEF SYMBOLS)
  68. S.PRT==40    ;SYMBOL WAS PRINTED IN SYMBOL TABLE
  69. S.MAC==100    ;SYMBOL IS A MACRO NAME
  70.  
  71. ;OPCODE TYPE BITS
  72.  
  73. T.1BYT==1        ;1 BYTE USED (JUST OPCODE, IMPLIES T.NREG)
  74. T.2BYT==2        ;2 BYTES USED
  75. T.3BYT==4        ;3 BYTES USED
  76. T.MOV==10        ;"MOV" OPCODE
  77. T.NREG==20        ;NO REGISTERS USED
  78. T.POP==40        ;PSEUDO OP
  79. T.DB==100        ;DEFINE BYTE
  80. T.DW==200        ;DEFINE WORD
  81. T.DZ==400        ;DEFINE BYTE WITH TRAILING ZERO
  82. T.EQU==1000        ;EQU PSEUDO OP
  83.  
  84. OPDEF    ERROR    [1B8]
  85. OPDEF    WARN    [2B8]
  86. DEFINE EFLAGS,<
  87.  
  88.     W    W.REG,Register overflow
  89.     W    W.IF1,ENDIF with no IF
  90.     W    W.IF2,EOF during IF
  91.     W    F.UNDF,Undefined symbol
  92.     W    F.ILOP,Illegal opcode
  93.     W    F.MULT,Multiply defined symbol
  94.     W    F.EXT,External in address computation
  95.     W    W.MT,No address field
  96.     W    W.TOK,Token overflow
  97.     W    F.FULL,Symbol table full
  98.     W    F.NCOR,No more core
  99.     W    F.PARN,Unmatched parenthesis
  100.     W    F.ILEX,Illegal expression
  101.     W    W.EXSA,External start address
  102.     W    W.ILO1,Illegal opcode format
  103.     W    F.TMMA,Too many macro arguments/Locals
  104.     W    W.EXM,Not inside macro
  105.     W    F.FREP,REPT overflowed REPBUF
  106.     >
  107.  
  108.     DEFINE W(A,B),<
  109.     A==FX
  110.     FX==FX+1
  111.     >
  112.  
  113.     FX==1
  114.  
  115.     SALL
  116.     EFLAGS
  117.  
  118.  
  119. SRC==1            ;I/O CHANNELS
  120. LST==2
  121. OBJ==3
  122. SYM==4
  123. LIB==5
  124. TMPC==6
  125.  
  126. COLON==":"        ;ASCII EQUIVALENTS
  127. DOLLAR=="$"
  128. COMMA==","
  129. SEMICO==";"
  130. MINUS=="-"
  131. PERIOD=="."
  132. CR==15
  133. LF==12
  134. FF==14
  135. TAB==11
  136. SPACE==40
  137. QUOTE==42
  138.  
  139. PAGEMX==^D60    ;(DEFAULT) LINES PER PAGE
  140. MAXSYM==^D70    ;CHARACTERS PER LINE IN SYMBOL FILE
  141. SYMSIZ==^D101    ;SIZE OF DIRECT ACCESS SYMBOL TABLE
  142.         ;THERE IS NO RESTRICTION ON THE SIZE OF THE TOTAL SYMBOL TABLE
  143. FTREL==0    ;INCLUDE MOSTEK FORMAT RELOCATION RECORDS IN HEX FILE
  144.         ;SEE DDJ V2 N3 MARCH 1977
  145. FTSTAT==0    ;TYPE UNREF SYMBOLS, STATISTICS AT END OF SYMBOL TABLE
  146. FTCREF==1    ;LIST SYMBOL TABLE & CREF LIST AT END OF PROGRAM
  147. ;X MACRO    MNEMONIC,OPCODE,FLAGS,LSH FOR REGISTER
  148.  
  149.     DEFINE OPTYPE, <
  150.     X    ACI,316,T.NREG!T.2BYT,0
  151.     X    ADC,210,0,0
  152.     X    ADD,200,0,0
  153.     X    ADI,306,T.NREG!T.2BYT,0
  154.     X    ANA,240,0,0
  155.     X    ANI,346,T.NREG!T.2BYT,0
  156.     X    CALL,315,T.NREG!T.3BYT,0
  157.     X    CC,334,T.NREG!T.3BYT,0
  158.     X    CM,374,T.NREG!T.3BYT,0
  159.     X    CMA,57,T.1BYT,0
  160.     X    CMC,77,T.1BYT,0
  161.     X    CMP,270,0,0
  162.     X    CNC,324,T.NREG!T.3BYT,0
  163.     X    CNZ,304,T.NREG!T.3BYT,0
  164.     X    CP,364,T.NREG!T.3BYT,0
  165.     X    CPE,354,T.NREG!T.3BYT,0
  166.     X    CPI,376,T.NREG!T.2BYT,0
  167.     X    CPO,344,T.NREG!T.3BYT,0
  168.     X    CZ,314,T.NREG!T.3BYT,0
  169.     X    DAA,47,T.1BYT,0
  170.     X    DAD,11,0,4
  171.     X    DB,0,T.POP!T.DB,0
  172.     X    DCR,5,0,3
  173.     X    DCX,13,0,4
  174.     X    DI,363,T.1BYT,0
  175.     X    DS,0,T.POP,0
  176.     X    DW,0,T.POP!T.DW,0
  177.     X    DZ,0,T.POP!T.DZ,0
  178.     X    EI,373,T.1BYT,0
  179.     X    ELSE,0,T.POP,0
  180.     X    END,0,T.POP,0
  181.     X    ENDIF,0,T.POP,0
  182.     X    EXITM,0,T.POP,0
  183. IFN FTREL,<
  184.     X    EXT,0,T.POP,0
  185. >
  186.     X    HLT,166,T.1BYT,0
  187.     X    IF,0,T.POP,0
  188.     X    IFE,0,T.POP,0
  189.     X    IFN,0,T.POP,0
  190.     X    IN,333,T.NREG!T.2BYT,0
  191.     X    INR,4,0,3
  192. IFN FTREL,<
  193.     X    INT,0,T.POP,0
  194. >
  195.     X    INX,3,0,4
  196.     X    JC,332,T.NREG!T.3BYT,0
  197.     X    JM,372,T.NREG!T.3BYT,0
  198.     X    JMP,303,T.NREG!T.3BYT,0
  199.     X    JNC,322,T.NREG!T.3BYT,0
  200.     X    JNZ,302,T.NREG!T.3BYT,0
  201.     X    JP,362,T.NREG!T.3BYT,0
  202.     X    JPE,352,T.NREG!T.3BYT,0
  203.     X    JPO,342,T.NREG!T.3BYT,0
  204.     X    JZ,312,T.NREG!T.3BYT,0
  205.     X    LDA,72,T.NREG!T.NREG!T.3BYT,0
  206.     X    LDAX,12,0,4
  207.     X    LHLD,52,T.NREG!T.3BYT,0
  208.     X    LXI,1,T.3BYT,4
  209.     X    MACLIB,0,T.POP,0
  210.     X    MOV,100,T.MOV,3
  211.     X    MVI,6,T.2BYT,3
  212.     X    NOP,0,T.1BYT,0
  213.     X    OPT,0,T.POP,0
  214.     X    ORA,260,0,0
  215.     X    ORG,0,T.POP,0
  216.     X    ORI,366,T.NREG!T.2BYT,0
  217.     X    OUT,323,T.NREG!T.2BYT,0
  218.     X    PAGE,0,T.POP,0
  219.     X    PCHL,351,T.1BYT,0
  220.     X    PHASE,0,T.POP,0
  221.     X    POP,301,0,4
  222.     X    PRINTX,0,T.POP,0
  223.     X    PUSH,305,0,4
  224.     X    RAL,27,T.1BYT,0
  225.     X    RAR,37,T.1BYT,0
  226.     X    RC,330,T.1BYT,0
  227.     X    REPT,0,T.POP,0
  228.     X    RET,311,T.1BYT,0
  229.     X    RIM,40,T.1BYT,0
  230.     X    RLC,7,T.1BYT,0
  231.     X    RM,370,T.1BYT,0
  232.     X    RNC,320,T.1BYT,0
  233.     X    RNZ,300,T.1BYT,0
  234.     X    RP,360,T.1BYT,0
  235.     X    RPE,350,T.1BYT,0
  236.     X    RPO,340,T.1BYT,0
  237.     X    RRC,17,T.1BYT,0
  238.     X    RST,307,0,3
  239.     X    RZ,310,T.1BYT,0
  240.     X    SBB,230,0,0
  241.     X    SBI,336,T.NREG!T.2BYT,0
  242.     X    SHLD,42,T.NREG!T.3BYT,0
  243.     X    SIM,60,T.1BYT,0
  244.     X    SPHL,371,T.1BYT,0
  245.     X    STA,62,T.NREG!T.3BYT,0
  246.     X    STAX,2,0,4
  247.     X    STC,67,T.1BYT,0
  248.     X    SUB,220,0,0
  249.     X    SUBTTL,0,T.POP
  250.     X    SUI,326,T.NREG!T.2BYT,0
  251.     X    TITLE,0,T.POP,0
  252.     X    XCHG,353,T.1BYT,0
  253.     X    XRA,250,0,0
  254.     X    XRI,356,T.NREG!T.2BYT,0
  255.     X    XTHL,343,T.1BYT,0
  256. >
  257.  
  258.     END