home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
kermit.columbia.edu
/
kermit.columbia.edu.tar
/
kermit.columbia.edu
/
archives
/
cpm80.tar.gz
/
m80unv.mac
< prev
next >
Wrap
Text File
|
1990-11-06
|
5KB
|
259 lines
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