UNIVERSAL M80UNV .DIRECTIVE .NOBIN ;ACCUMULATOR ASSIGNMENTS F=0 T1=1 T2=2 T3=3 T4=4 P1=5 OP=6 P2=OP I=7 X=10 P3=X ;USED IN MAC80 TOK=11 ;TOK IS NOW A DOUBLE WORD S=13 LBTP=14 E=15 BC=16 P=17 ;JOB DATA AREA VERSION NUMBER M80WHO==0 M80VER==7 M80MIN==2 M80EDT==77 ;FLAGS (R.H.) FR.UND==1 ;SYMBOL UNDEFINED FR.MQT==2 ;IN QUOTE IN MACRO FR.PS1==4 ;PASS 1 FR.LOP==10 ;OP CODE LISTED (AS OPPOSED TO A COMMENT LINE) FR.LIN==20 ;LINE # PRINTED AT START OF LINE FR.LST==40 ;LISTING REQUESTED FR.END==100 ;END SEEN FR.NRF==200 ;DO NOT REFERENCE SYMBOL FR.HEX==400 ;HEXADECIMAL LISTING REQUESTED FR.REL==1000 ;LAST ADDRESS WAS RELOCATABLE FR.EXT==2000 ;LAST ADDRESS WAS EXTERNAL (IMPLIES FR.REL) FR.SNK==4000 ;"INVISIBLE" INPUT MODE FR.ORG==10000 ;ORG SEEN, NO RELOCATION FR.OFF==20000 ;ASSEMBLY CONDITIONALLY OFF FR.LIB==40000 ;INSIDE MACLIB FR.BOL==100000 ;FLAG BEGIN OF LISTING LINE FR.EVL==200000 ;FLAG EVALUATE SYMBOL (FOR SRCHOP) FR.MCM==400000 ;IN COMMENT IN MACRO DEFINITION ;FLAGS (L.H.) FL.CCL==1 FL.LNR==2 ;LIST NON-REF SYMBOLS AT END OF PROGRAM FL.SUP==4 ;SUPPRESS MACRO EXPANSION FL.HED==10 ;"UNREFERENED LABELS" WAS TYPED ;SYMBOL TABLE FLAGS S.REL==1 ;RELOCATABLE S.INT==2 ;INTERNAL S.EXT==4 ;EXTERNAL S.REF==10 ;REFERENCED S.UNDF==20 ;UNDEFINED (FOR CREF OF UNDEF SYMBOLS) S.PRT==40 ;SYMBOL WAS PRINTED IN SYMBOL TABLE S.MAC==100 ;SYMBOL IS A MACRO NAME ;OPCODE TYPE BITS T.1BYT==1 ;1 BYTE USED (JUST OPCODE, IMPLIES T.NREG) T.2BYT==2 ;2 BYTES USED T.3BYT==4 ;3 BYTES USED T.MOV==10 ;"MOV" OPCODE T.NREG==20 ;NO REGISTERS USED T.POP==40 ;PSEUDO OP T.DB==100 ;DEFINE BYTE T.DW==200 ;DEFINE WORD T.DZ==400 ;DEFINE BYTE WITH TRAILING ZERO T.EQU==1000 ;EQU PSEUDO OP OPDEF ERROR [1B8] OPDEF WARN [2B8] DEFINE EFLAGS,< W W.REG,Register overflow W W.IF1,ENDIF with no IF W W.IF2,EOF during IF W F.UNDF,Undefined symbol W F.ILOP,Illegal opcode W F.MULT,Multiply defined symbol W F.EXT,External in address computation W W.MT,No address field W W.TOK,Token overflow W F.FULL,Symbol table full W F.NCOR,No more core W F.PARN,Unmatched parenthesis W F.ILEX,Illegal expression W W.EXSA,External start address W W.ILO1,Illegal opcode format W F.TMMA,Too many macro arguments/Locals W W.EXM,Not inside macro W F.FREP,REPT overflowed REPBUF > DEFINE W(A,B),< A==FX FX==FX+1 > FX==1 SALL EFLAGS SRC==1 ;I/O CHANNELS LST==2 OBJ==3 SYM==4 LIB==5 TMPC==6 COLON==":" ;ASCII EQUIVALENTS DOLLAR=="$" COMMA=="," SEMICO==";" MINUS=="-" PERIOD=="." CR==15 LF==12 FF==14 TAB==11 SPACE==40 QUOTE==42 PAGEMX==^D60 ;(DEFAULT) LINES PER PAGE MAXSYM==^D70 ;CHARACTERS PER LINE IN SYMBOL FILE SYMSIZ==^D101 ;SIZE OF DIRECT ACCESS SYMBOL TABLE ;THERE IS NO RESTRICTION ON THE SIZE OF THE TOTAL SYMBOL TABLE FTREL==0 ;INCLUDE MOSTEK FORMAT RELOCATION RECORDS IN HEX FILE ;SEE DDJ V2 N3 MARCH 1977 FTSTAT==0 ;TYPE UNREF SYMBOLS, STATISTICS AT END OF SYMBOL TABLE FTCREF==1 ;LIST SYMBOL TABLE & CREF LIST AT END OF PROGRAM ;X MACRO MNEMONIC,OPCODE,FLAGS,LSH FOR REGISTER DEFINE OPTYPE, < X ACI,316,T.NREG!T.2BYT,0 X ADC,210,0,0 X ADD,200,0,0 X ADI,306,T.NREG!T.2BYT,0 X ANA,240,0,0 X ANI,346,T.NREG!T.2BYT,0 X CALL,315,T.NREG!T.3BYT,0 X CC,334,T.NREG!T.3BYT,0 X CM,374,T.NREG!T.3BYT,0 X CMA,57,T.1BYT,0 X CMC,77,T.1BYT,0 X CMP,270,0,0 X CNC,324,T.NREG!T.3BYT,0 X CNZ,304,T.NREG!T.3BYT,0 X CP,364,T.NREG!T.3BYT,0 X CPE,354,T.NREG!T.3BYT,0 X CPI,376,T.NREG!T.2BYT,0 X CPO,344,T.NREG!T.3BYT,0 X CZ,314,T.NREG!T.3BYT,0 X DAA,47,T.1BYT,0 X DAD,11,0,4 X DB,0,T.POP!T.DB,0 X DCR,5,0,3 X DCX,13,0,4 X DI,363,T.1BYT,0 X DS,0,T.POP,0 X DW,0,T.POP!T.DW,0 X DZ,0,T.POP!T.DZ,0 X EI,373,T.1BYT,0 X ELSE,0,T.POP,0 X END,0,T.POP,0 X ENDIF,0,T.POP,0 X EXITM,0,T.POP,0 IFN FTREL,< X EXT,0,T.POP,0 > X HLT,166,T.1BYT,0 X IF,0,T.POP,0 X IFE,0,T.POP,0 X IFN,0,T.POP,0 X IN,333,T.NREG!T.2BYT,0 X INR,4,0,3 IFN FTREL,< X INT,0,T.POP,0 > X INX,3,0,4 X JC,332,T.NREG!T.3BYT,0 X JM,372,T.NREG!T.3BYT,0 X JMP,303,T.NREG!T.3BYT,0 X JNC,322,T.NREG!T.3BYT,0 X JNZ,302,T.NREG!T.3BYT,0 X JP,362,T.NREG!T.3BYT,0 X JPE,352,T.NREG!T.3BYT,0 X JPO,342,T.NREG!T.3BYT,0 X JZ,312,T.NREG!T.3BYT,0 X LDA,72,T.NREG!T.NREG!T.3BYT,0 X LDAX,12,0,4 X LHLD,52,T.NREG!T.3BYT,0 X LXI,1,T.3BYT,4 X MACLIB,0,T.POP,0 X MOV,100,T.MOV,3 X MVI,6,T.2BYT,3 X NOP,0,T.1BYT,0 X OPT,0,T.POP,0 X ORA,260,0,0 X ORG,0,T.POP,0 X ORI,366,T.NREG!T.2BYT,0 X OUT,323,T.NREG!T.2BYT,0 X PAGE,0,T.POP,0 X PCHL,351,T.1BYT,0 X PHASE,0,T.POP,0 X POP,301,0,4 X PRINTX,0,T.POP,0 X PUSH,305,0,4 X RAL,27,T.1BYT,0 X RAR,37,T.1BYT,0 X RC,330,T.1BYT,0 X REPT,0,T.POP,0 X RET,311,T.1BYT,0 X RIM,40,T.1BYT,0 X RLC,7,T.1BYT,0 X RM,370,T.1BYT,0 X RNC,320,T.1BYT,0 X RNZ,300,T.1BYT,0 X RP,360,T.1BYT,0 X RPE,350,T.1BYT,0 X RPO,340,T.1BYT,0 X RRC,17,T.1BYT,0 X RST,307,0,3 X RZ,310,T.1BYT,0 X SBB,230,0,0 X SBI,336,T.NREG!T.2BYT,0 X SHLD,42,T.NREG!T.3BYT,0 X SIM,60,T.1BYT,0 X SPHL,371,T.1BYT,0 X STA,62,T.NREG!T.3BYT,0 X STAX,2,0,4 X STC,67,T.1BYT,0 X SUB,220,0,0 X SUBTTL,0,T.POP X SUI,326,T.NREG!T.2BYT,0 X TITLE,0,T.POP,0 X XCHG,353,T.1BYT,0 X XRA,250,0,0 X XRI,356,T.NREG!T.2BYT,0 X XTHL,343,T.1BYT,0 > END