.NLIST ;DO NOT LIST OUT THE MACRO SOURCES HERE DURING READ IN .ENABLE ABS ;ASSEMBLE THE CODE IN ABSOLUTE BINARY (TO MAKE SENSE) .NLIST MD,CND ;DO NOT LIST OUT THE EXPANSIONS DURING READ IN ;**************************************************************** ; ; MACROS FOR MPS MICROPROCESSOR(INTEL 8008) FOR MACRO-11, ; ; BY BRUCE FILGATE SEPTEMBER 8,1976 ; COMPONENTS GROUP ENGINEERING ; DIGITAL EQUIPMENT CORPORATION ; MARLBOROUGH, MA. ; ;**************************************************************** ; ; TO USE APPEND APPLICATION PROGRAM TO THE MACRO PACKAGE ; AND RUN THE APPROPRIATE MACRO ASSEMBLER. ; ; USE NORMAL MLA OPERANDS AND MNEMONICS. ; ;**************************************************************** ;THE FOLLOWING ARE NOT INCLUDED IN THIS MACY11 VERSION, BUT ;ARE PART OF THE ORIGINAL MPS SOFTWARE PACKAGE. ;PAUSE ;OCT,HEX,DEC SEE ^ ;EXPUNGE ;OPDEF SEE .MACRO ;DATA SEE .BYTE,.ASCII,^," ;BLOCK ;TEXT SEE .ASCII ;$ SEE .END ;* SEE .= ;# ;, SEE : ;; SEE COMMENT ;/ DIVIDE NOT COMMENT ;ERRORS IN GENERAL SEE MACRO-11 ERROR TABLE ;^ (HIGH BYTE) SEE /400 TO GET THE HIGH BYTE ; ;THE USE OF THE DOT (LOCATION POINTER) IS SEVERLY CORRUPTED WHEN USED ;AS AN ARGUMENT FOR AN OPERATION. DOT IS EQUAL TO THE LOCATION ;IN WHICH THE NEXT BYTE WILL BE PLACED, RATHER THAN EQUAL TO THE LOCATION ;IN WHICH THE CURRENT INSTRUCTION IS PLACED. FOR THIS REASON INSTRUCTIONS OF ;THE FORM "JMP .-1", SHOULD BE USED WITH CAUTION (THE EXAMPLE INSTRUCTION ;FOR INSTANCE WOULD CAUSE A JUMP TO ITSELF). .MACRO AINST A,B ;ONE BYTE 8008 INSTRUCTIONS .MACRO A ;INSERT NAME FOR THE TABLE MACRO .NLIST SRC ;DO NOT LIST THE EXPANSION .BYTE B ;ASSEMBLE THE ASSOCIATED DATA .LIST SRC ;TURN THE LISTER ON TO LIST CODE .ENDM ;END OF THE TABLE MACRO .ENDM AINST ;END OF THE MACRO AINST LAA,300 ;TYPICAL MPS AND INTEL 8008 NMONICS AINST LAB,301 AINST LAC,302 AINST LAD,303 AINST LAE,304 AINST LAH,305 AINST LAL,306 AINST LBA,310 AINST LBB,311 AINST LBC,312 AINST LBD,313 AINST LBE,314 AINST LBH,315 AINST LBL,316 AINST LCA,320 AINST LCB,321 AINST LCC,322 AINST LCD,323 AINST LCE,324 AINST LCH,325 AINST LCL,326 AINST LDA,330 AINST LDB,331 AINST LDC,332 AINST LDD,333 AINST LDE,334 AINST LDH,335 AINST LDL,336 AINST LEA,340 AINST LEB,341 AINST LEC,342 AINST LED,343 AINST LEE,344 AINST LEH,345 AINST LEL,346 AINST LHA,350 AINST LHB,351 AINST LHC,352 AINST LHD,353 AINST LHE,354 AINST LHH,355 AINST LHL,356 AINST LLA,360 AINST LLB,361 AINST LLC,362 AINST LLD,363 AINST LLE,364 AINST LLH,365 AINST LLL,366 AINST LAM,307 AINST LBM,317 AINST LCM,327 AINST LDM,337 AINST LEM,347 AINST LHM,357 AINST LLM,367 AINST LMA,370 AINST LMB,371 AINST LMC,372 AINST LMD,373 AINST LME,374 AINST LMH,375 AINST LML,376 AINST INB,10 AINST INC,20 AINST IND,30 AINST INE,40 AINST INH,50 AINST INL,60 AINST DCB,11 AINST DCC,21 AINST DCD,31 AINST DCE,41 AINST DCH,51 AINST DCL,61 AINST ADA,200 AINST ADB,201 AINST ADC,202 AINST ADD,203 AINST ADE,204 AINST ADH,205 AINST ADL,206 AINST ADM,207 AINST ACA,210 AINST ACB,211 AINST ACC,212 AINST ACD,213 AINST ACE,214 AINST ACH,215 AINST ACL,216 AINST ACM,217 AINST SUA,220 AINST SUB,221 AINST SUC,222 AINST SUD,223 AINST SUE,224 AINST SUH,225 AINST SUL,226 AINST SUM,227 AINST SBA,230 AINST SBB,231 AINST SBC,232 AINST SBD,233 AINST SBE,234 AINST SBH,235 AINST SBL,236 AINST SBM,237 AINST NDA,240 AINST NDB,241 AINST NDC,242 AINST NDD,243 AINST NDE,244 AINST NDH,245 AINST NDL,246 AINST NDM,247 AINST XRA,250 AINST XRB,251 AINST XRC,252 AINST XRD,253 AINST XRE,254 AINST XRH,255 AINST XRL,256 AINST XRM,257 AINST ORA,260 AINST ORB,261 AINST ORC,262 AINST ORD,263 AINST ORE,264 AINST ORH,265 AINST ORL,266 AINST ORM,267 AINST CPA,270 AINST CPB,271 AINST CPC,272 AINST CPD,273 AINST CPE,274 AINST CPH,275 AINST CPL,276 AINST CPM,277 AINST RLC,2 AINST RRC,12 AINST RAL,22 AINST RAR,32 AINST RET,7 AINST RST,5 AINST INP,101 ;SET UP BASIC INPUT OP CODE TO .OR. WITH PORT AINST OUT,121 ;SET UP BASIC OUTPUT OP CODE TO .OR. WITH PORT AINST INP0,101 ;MPS UART DATA INPUT INSTRUCTION AINST INP1,103 ;MPS UART STATUS INPUT INSTRUCTION AINST OUT0,121 ;MPS UART DATA OUTPUT INSTRUCTION AINST ION,123 ;MPS INTERRUPT SYSTEM ENABLE INSTRUCTION AINST IOF,125 ;MPS INTERRUPT SYSTEM DISABLE INSTRUCTION AINST HLT,0 AINST RFC,3 AINST RFZ,13 AINST RFS,23 AINST RFP,33 AINST RTC,43 AINST RTZ,53 AINST RTS,63 AINST RTP,73 AINST NOP,300 ;DEFINE A NO-OPERATION FOR TIMING USES (SAME AS LAA) .MACRO BINST A,B .MACRO A X ;TWO BYTE INSTRUCTIONS IN MPS(8008) MNEMONICS .NLIST SRC ;DO NOT LIST THE EXPANSION .BYTE B, ;PUT TOGETHER THE BINARY .LIST SRC .ENDM .ENDM BINST BINST LAI,6 BINST LBI,16 BINST LCI,26 BINST LDI,36 BINST LEI,46 BINST LHI,56 BINST LLI,66 BINST LMI,76 BINST ADI,4 BINST ACI,14 BINST SUI,24 BINST SBI,34 BINST NDI,44 BINST XRI,54 BINST ORI,64 BINST CPI,74 .MACRO CINST A,B .MACRO A X ;THREE BYTE MPS(8008) INSTRUCTIONS .NLIST SRC .BYTE B,,<&77> .LIST SRC .ENDM .ENDM CINST CINST JMP,104 CINST JFC,100 CINST JFZ,110 CINST JFS,120 CINST JFP,130 CINST JTC,140 CINST JTZ,150 CINST JTS,160 CINST JTP,170 CINST CAL,106 CINST CFC,102 CINST CFZ,112 CINST CFS,122 CINST CFP,132 CINST CTC,142 CINST CTZ,152 CINST CTS,162 CINST CTP,172 .MACRO ADDR X ;DEFINE THE ADDR PSEUDO OP FOR MPS .NLIST SRC .BYTE X&377,X/400 .LIST SRC .ENDM ADDR .LIST MEB,MD ;ENABLE LISTING OF THE MACRO EXPANSION AFTER THIS POINT .LIST ;LIST THE PROGRAM FOLLOWING