.TITLE CA68 - 6800 CROSSASSEMBLER ; ; CREATED ON 16-MAR-81 ; .IDENT /MK 1.8/ ; 07-AUG-81 ; ; SOURCE FOR LIBRARY OP68 ; ;+ ; THIS MACRO LIBRARY CONTAINES ALL 6800 INSTRUCTIONS AS ; MACROS. THE LIBRARY MUST BE ASSEMBLED WITH THE 6800 ; SOURCE PROGRAM ; ; MACRO ....+OP68/LIB ; ; THE LIBRARY MUST BE BUILD WITH ; ; LIB/MAC OP68 CA68 ; ; THE SOURCE PROGRAM FIRST MUST CALL THE MACRO .OP68 TO ; DECLARE THE 6800 INSTRUCTION SET. ; ; THE NOTATION MUST BE: ; ; ADDA # 4 ; IMMEDIATE MODE; THE SPACE CHAR IS NESSARY!!! ; SUBB VAR ; DIRECT MODE, IF VAR < 256. OR ; ; EXTENDED MODE IF VAR >= 256. ; TST 4,X ; INDEXED MODE ; ; CAUTION: 'TST X' IS NOT ALLOWED! ; ; MUST BE 'TST 0,X' ;- ; .MACRO .OP68 .DSABL REG .LIST MEB .MCALL .ARG, .ARG2, .RBRA, .BYTE$, .WORD .MCALL ABA,ADCA,ADCB,ADDA,ADDB,ANDA,ANDB,ASL,ASLA,ASLB .MCALL ASR,ASRA,ASRB,BCC,BCS,BEQ,BGE,BGT,BHI,BITA,BITB .MCALL BLE,BLS,BLT,BMI,BNE,BPL,BRA,BSR,BVC,BVS,CBA,CLC .MCALL CLI,CLR,CLRA,CLRB,CLV,CMPA,CMPB,COM,COMA,COMB .MCALL CPX,DAA,DEC,DECA,DECB,DES,DEX,EORA,EORB,INC,INCA .MCALL INCB,INS,INX,JMP,JSR,LDAA,LDAB,LDS,LDX,LSR,LSRA .MCALL LSRB,NEG,NEGA,NEGB,NOP,ORAA,ORAB,PSHA,PSHB,PULA .MCALL PULB,ROL,ROLA,ROLB,ROR,RORA,RORB,RTI,RTS,SBA .MCALL SBCA,SBCB,SEC,SEI,SEV,STAA,STAB,STS,STX,SUBA,SUBB .MCALL SWI,TAB,TAP,TBA,TPA,TST,TSTA,TSTB,TSX,TXS,WAI .ENDM .OP68 .MACRO .ARG CODE,A,C,FLAG .NLIST SRC .IF DIF ,<#> .IF B .IF GT 256.- .BYTE 1*16.+CODE,A&377 ; DIRECT MODE .IFF .BYTE 3*16.+CODE,A/256.,A&377 ; EXTENDED MODE .ENDC .IFF .IIF GE A-256., .ERROR .BYTE 2*16.+CODE,A&377 ; INDEXED MODE .ENDC .IFF .IF B .IIF GE C-256., .ERROR .BYTE CODE,C&377 ; IMMEDIATE MODE (ACC AND MEM INSTR.) .IFF .BYTE CODE,C/256.,C&377 ; IMMEDIATE MODE (X AND SP INSTR.) .ENDC .ENDC .LIST SRC .ENDM .ARG ; ; .MACRO .ARG2 CODE,SYM,INDX .NLIST SRC .IF B .BYTE 1*16.+CODE,SYM/256.,SYM&377 ; EXTENDED MODE .IFF .IIF GE SYM-256., .ERROR .BYTE CODE,SYM&377 ; INDEXED MODE .ENDC .LIST SRC .ENDM .ARG2 ; ; .MACRO .RBRA CODE,VAL .NLIST SRC .IF GE VAL .IIF GE -128.,.ERROR .IFF .IIF GT --128.,.ERROR .ENDC ...TMP = VAL .BYTE CODE,...TMP&377 .LIST SRC .ENDM .RBRA ; ; .MACRO .BYTE$ V1,V2 .NLIST SRC .IIF GE V1-256., .ERROR .IF B .BYTE V1 .IFF .IIF GE V2-256., .ERROR .BYTE V1,V2 .ENDC .LIST SRC .ENDM .BYTE$ ; ; .MACRO .WORD V1,V2,V3,V4,V5,V6,V7,V8 .NLIST SRC .IRP ...TMP, .IF NB <...TMP> .BYTE <...TMP>/256.,<...TMP>&377 .ENDC .ENDM .LIST SRC .ENDM .WORD ; ACCUMULATOR AMD MEMORY INSTRUCTIONS ; .MACRO ADDA ARG,INDX .ARG 213,, .ENDM ; .MACRO ADDB ARG,INDX .ARG 313,, .ENDM ; .MACRO ABA .BYTE$ 033 .ENDM ; .MACRO ADCA ARG,INDX .ARG 211,, .ENDM ; .MACRO ADCB ARG,INDX .ARG 313,, .ENDM ; .MACRO ANDA ARG,INDX .ARG 204,, .ENDM ; .MACRO ANDB ARG,INDX .ARG 304,, .ENDM ; .MACRO BITA ARG,INDX .ARG 205,, .ENDM ; .MACRO BITB ARG,INDX .ARG 305,, .ENDM ; .MACRO CLR ARG,INDX .ARG2 157,, .ENDM ; .MACRO CLRA .BYTE$ 117 .ENDM ; .MACRO CLRB .BYTE$ 137 .ENDM ; .MACRO CMPA ARG,INDX .ARG 201,, .ENDM ; .MACRO CMPB ARG,INDX .ARG 301,, .ENDM ; .MACRO CBA .BYTE$ 021 .ENDM ; .MACRO COM ARG,INDX .ARG2 143,, .ENDM ; .MACRO COMA .BYTE$ 103 .ENDM ; .MACRO COMB .BYTE$ 123 .ENDM ; .MACRO NEG ARG,INDX .ARG2 140,, .ENDM ; .MACRO NEGA .BYTE$ 100 .ENDM ; .MACRO NEGB .BYTE$ 120 .ENDM ; .MACRO DAA .BYTE$ 031 .ENDM ; .MACRO DEC ARG,INDX .ARG2 152,, .ENDM ; .MACRO DECA .BYTE$ 112 .ENDM ; .MACRO DECB .BYTE$ 132 .ENDM ; .MACRO EORA ARG,INDX .ARG 210,, .ENDM ; .MACRO EORB ARG,INDX .ARG 310,, .ENDM ; .MACRO INC ARG,INDX .ARG2 154,, .ENDM ; .MACRO INCA .BYTE$ 114 .ENDM ; .MACRO INCB .BYTE$ 134 .ENDM ; .MACRO LDAA ARG,INDX .ARG 206,, .ENDM ; .MACRO LDAB ARG,INDX .ARG 306,, .ENDM ; .MACRO ORAA ARG,INDX .ARG 212,, .ENDM ; .MACRO ORAB ARG,INDX .ARG 312,, .ENDM ; .MACRO PSHA .BYTE$ 066 .ENDM ; .MACRO PSHB .BYTE$ 067 .ENDM ; .MACRO PULA .BYTE$ 062 .ENDM ; .MACRO PULB .BYTE$ 063 .ENDM ; .MACRO ROL ARG,INDX .ARG2 151,, .ENDM ; .MACRO ROLA .BYTE$ 111 .ENDM ; .MACRO ROLB .BYTE$ 131 .ENDM ; .MACRO ROR ARG,INDX .ARG2 146,, .ENDM ; .MACRO RORA .BYTE$ 106 .ENDM ; .MACRO RORB .BYTE$ 126 .ENDM ; .MACRO ASL ARG,INDX .ARG2 150,, .ENDM ; .MACRO ASLA .BYTE$ 110 .ENDM ; .MACRO ASLB .BYTE$ 130 .ENDM ; .MACRO ASR ARG,INDX .ARG2 147,, .ENDM ; .MACRO ASRA .BYTE$ 107 .ENDM ; .MACRO ASRB .BYTE$ 127 .ENDM ; .MACRO LSR ARG,INDX .ARG2 144,, .ENDM ; .MACRO LSRA .BYTE$ 104 .ENDM ; .MACRO LSRB .BYTE$ 124 .ENDM ; .MACRO STAA ARG,INDX .ARG 207,, .ENDM ; .MACRO STAB ARG,INDX .ARG 307,, .ENDM ; .MACRO SUBA ARG,INDX .ARG 200,, .ENDM ; .MACRO SUBB ARG,INDX .ARG 300,, .ENDM ; .MACRO SBA .BYTE$ 020 .ENDM ; .MACRO SBCA ARG,INDX .ARG 202,, .ENDM ; .MACRO SBCB ARG,INDX .ARG 302,, .ENDM ; .MACRO TAB .BYTE$ 026 .ENDM ; .MACRO TBA .BYTE$ 027 .ENDM ; .MACRO TST ARG,INDX .ARG2 155,, .ENDM ; .MACRO TSTA .BYTE$ 115 .ENDM ; .MACRO TSTB .BYTE$ 135 .ENDM ; ; INDEX REGISTER AND STACK MANIPULATION INSTRUCTIONS ; .MACRO CPX ARG,INDX .ARG 214,,,X .ENDM ; .MACRO DEX .BYTE$ 011 .ENDM ; .MACRO DES .BYTE$ 064 .ENDM ; .MACRO INX .BYTE$ 010 .ENDM ; .MACRO INS .BYTE$ 061 .ENDM ; .MACRO LDX ARG,INDX .ARG 316,,,X .ENDM ; .MACRO LDS ARG,INDX .ARG 216,,,X .ENDM ; .MACRO STX ARG,INDX .ARG 317,,,X .ENDM ; .MACRO STS ARG,INDX .ARG 217,,,X .ENDM ; .MACRO TXS .BYTE$ 065 .ENDM ; .MACRO TSX .BYTE$ 060 .ENDM ; ; JUMP AND BRANCH INSTRUCTIONS ; .MACRO BRA VAL .RBRA 040,VAL-2-. .ENDM ; .MACRO BCC VAL .RBRA 044,VAL-2-. .ENDM ; .MACRO BCS VAL .RBRA 045,VAL-2-. .ENDM ; .MACRO BEQ VAL .RBRA 047,VAL-2-. .ENDM ; .MACRO BGE VAL .RBRA 054,VAL-2-. .ENDM ; .MACRO BGT VAL .RBRA 056,VAL-2-. .ENDM ; .MACRO BHI VAL .RBRA 042,VAL-2-. .ENDM ; .MACRO BLE VAL .RBRA 057,VAL-2-. .ENDM ; .MACRO BLS VAL .RBRA 043,VAL-2-. .ENDM ; .MACRO BLT VAL .RBRA 055,VAL-2-. .ENDM ; .MACRO BMI VAL .RBRA 053,VAL-2-. .ENDM ; .MACRO BNE VAL .RBRA 046,VAL-2-. .ENDM ; .MACRO BVC VAL .RBRA 050,VAL-2-. .ENDM ; .MACRO BVS VAL .RBRA 051,VAL-2-. .ENDM ; .MACRO BPL VAL .RBRA 052,VAL-2-. .ENDM ; .MACRO BSR VAL .RBRA 215,VAL-2-. .ENDM ; .MACRO JMP ARG,INDX .ARG2 156,, .ENDM ; .MACRO JSR ARG,INDX .ARG2 255,, .ENDM ; .MACRO NOP .BYTE$ 001 .ENDM ; .MACRO RTI .BYTE$ 073 .ENDM ; .MACRO RTS .BYTE$ 071 .ENDM ; .MACRO SWI .BYTE$ 077 .ENDM ; .MACRO WAI .BYTE$ 076 .ENDM ; ; CONDITION CODE REGISTER MANIPULATION INSTRUCTIONS ; .MACRO CLC .BYTE$ 014 .ENDM ; .MACRO CLI .BYTE$ 016 .ENDM ; .MACRO CLV .BYTE$ 012 .ENDM ; .MACRO SEC .BYTE$ 015 .ENDM ; .MACRO SEI .BYTE$ 017 .ENDM ; .MACRO SEV .BYTE$ 013 .ENDM ; .MACRO TAP .BYTE$ 006 .ENDM ; .MACRO TPA .BYTE$ 007 .ENDM ; ; END