***** ***** TEST OF SIGMA 5-9 XEROX ASSEMBLY PROGRAM. ***** BASED ON THE PREVIOUS MACROSYMBOL TESTS. ***** ***** REF M:LO SYSTEM SIG9P * ***** VERIFY DIRECTIVES, DATA-TYPES, ADDRESS FUNCTIONS. * * CONSTANTS * X: HEXADECIMAL DATA X'12345678',X'ABCDEF',X'FFFFFFFF' * O: OCTAL DATA O'1234',O'7654321' * INTEGER * MAXIMUM POSITIVE INTEGER VALUE = 2**31-1 = 2147483647 DATA 2147483647 * D: DECIMAL DATA D'99',D'+99',D'-99',D'+1234567' DATA,16 D'+999999999999999999999999999999' BIG DEC CONST. * FX: FIXED POINT DECIMAL DATA FX'1B1',FX'1B4',FX'-1B1',FX'-1B4' DATA FX'3.69E-2B2',FX'-.0832B18E+4',FX'3.75B4' DATA FX'3.75B4',FX'.0625B-2' BOUND 4 * FS: FLOATING POINT SHORT * GENERATES THE ONE WORD FLOATING POINT NUMBER DATA FS'5.5E-3',FS'1',FS'1.',FS'-1',FS'0' DATA FS'50.E10',FS'16.' BOUND 8 * FL: FLOATING POINT LONG * GENERATES THE TWO WORD FLOATING POINT NUMBER DATA,8 FL'29875748399928.E-11' DATA,8 FL'5.5E-3',FL'1',FL'1.',FL'-1',FL'0' * C: CHARACTER STRING DATA C'1',C'ABCD','1','ABCD',C'AB''C' DATA,16 C'ABCDEFGHIJKLMNOP' * LITERALS * A LITERAL IS A 32 BIT QUANTITY. AB LW,1 L(-185) LW,1 L(X'5DF') LW,1 L(AB) LW,1 =-185 LW,1 =X'5DF' LW,1 =AB LW,1 L(C'BYTE') LW,1 L(X'F0F0') LW,1 L(O'7777') LW,1 L(D'37879') LW,1 L(D'+12345') LW,1 L(FX'78.2E1B10') LW,1 L(FS'-8.935410E-02') * ADDRESSING FUNCTIONS * ADRS EQU BA(%)+1 INTRINSIC RESOLUTION OF ADRS IS BYTE LI,1 ADRS LI,1 BA(ADRS) LI,1 HA(ADRS) LI,1 WA(ADRS) LI,1 DA(ADRS) DATA BA(ADRS)+5,HA(ADRS)+5,ADRS+5,DA(ADRS)+5 *COMPOUND FUNCTIONS LI,1 WA(BA(DA(ADRS)))+5 LI,1 BA(DA(ADRS))+5 LI,1 BA(ADRS+5) LI,1 BA(WA(BA(ADRS))) *ADDRESSING FUNCTIONS MAY BE APPLIED TO LITERALS LI,1 BA(HA(L(5))) * * RULES GOVERNING THE MODE (ABSOLUTE OR RELOCATABLE) OF AN EXPRESSION * ARE ILLUSTRATED BELOW. SYMBOLS BEGINNING WITH 'A' ARE ABSOLUTE, * BEGINNING WITH 'R' ARE RELOCATABLE. A1 EQU 5 A2 EQU 6 R1 DATA 1 R2 DATA 2 R3 DATA 3 DATA R1+A1,R1-A1 DATA R1-R2+A1 DATA R1-R2+R3-A1+A2 DATA A1+A2,A1-A2 * DO1 ITERATION CONTROL NDO1 EQU 2 L1BDO1 DO1 NDO1+3 LW,1 L(1) * THE LABEL ON A DO1 (IF PRESENT) IDENTIFIES THE FIRST BYTE GENERATED * WITHIN THE ITERATION LI,1 L1BDO1 GEN,8 -1 L2BDO1 DO1 NDO1+3 GEN,8 -1 LI,1 BA(L2BDO1) * * GOTO CONDITIONAL BRANCH NGOTO EQU 3 GOTO,NGOTO-1 GOTO1,GOTO2,GOTO3 GOTO1 DATA 1 GOTO PROCEED K ABSENT IMPLIES K=1 GOTO2 DATA 2 GOTO PROCEED GOTO3 DATA 3 PROCEED DATA % * * LOCAL DECLARE LOCAL SYMBOLS LOCA DATA % LOCB DATA % LOCC DATA % LOCD DATA % LOCE DATA % LOCF DATA % LOCAL LOCA,LOCB,LOCC LOCA DATA % LOCB DATA % LOCC DATA % DATA LOCA,LOCB,LOCC,LOCD,LOCE,LOCF * TERMINATE ABOVE LOCAL REGION, BEGIN A NEW ONE LOCAL LOCA LOCA DATA % DATA LOCA,LOCB,LOCC,LOCD,LOCE,LOCF * * GEN GENERATE A VALUE BOUND 4 GEN1 GEN,4,12,8,3,5 1,-5,C'5',-1,O'17' GEN2 GEN,8 2 GEN3 GEN,8 3 LI,1 BA(GEN1) LI,1 BA(GEN2) LI,1 BA(GEN3) * * COM COMMAND DEFINITION * WITHOUT INTRINSIC FUNCTIONS COM1 COM,8,8 35,X'3C' COM1 COM1 * WITH INTRINSIC FUNCTIONS CF, AF, AFA BOUND 4 COM2 COM,1,3,4,8,8,8 AFA(2),CF(2),AF(1),CF(3),AF(2),AF(1) COM2,-1,X'CC' O'14',*10 COM3 COM,1,7,4,3,17 AFA(1),CF(2),CF(3),AF(2),AF(1) COM3,X'28' *%+5,4 * ALPHA EQU 5 XYZ COM,16,16 AF(1),AF(2) XYZ 65,ALPHA+X'FC' * TEXT AND TEXTC TEXT1 TEXT 'VALUE OF X' TEXT2 TEXTC 'VALUE OF X' * * RES RESERVE AN AREA BOUND 4 RES1 RES 2 K ABSENT IMPLIES K=4.RESERVE 2 WORDS RES2 RES,1 2 RESERVE 2 BYTES RES3 RES,5 2 RESERVE 2 5 BYTE UNITS * LI,1 BA(RES3)+5 LI,1 BA(RES2)+2 PAGE ***** VERIFY INTRINSIC COMMAND MNEMONICS. * ** '0X' TYPE OPERATION CODES * LCFI X'B',5 02 3 000 B 5 CAL1,0 BLUB 04 CAL2,0 BLUB 05 CAL3,0 BLUB 06 CAL4,0 BLUB 07 PLW,0 BLUB 08 PSW,0 BLUB 09 PLM,0 BLUB 0A PSM,0 BLUB 0B LPSD,0 BLUB 0E XPSD,0 BLUB 0F * ** '1X' TYPE OPERATION CODES * AD,0 BLUB 10 CD,0 BLUB 11 LD,0 BLUB 12 MSP,0 BLUB 13 STD,0 BLUB 15 SD,0 BLUB 18 CLM,0 BLUB 19 LCD,0 BLUB 1A LAD,0 BLUB 1B FSL,0 BLUB 1C FAL,0 BLUB 1D FDL,0 BLUB 1E FML,0 BLUB 1F * ** '2X' TYPE OPERATION CODES * AI,0 0 20 CI,0 0 21 LI,0 0 22 MI,0 0 23 SF,0 0 24 S,0 0 25 LAS,0 BLUB 26 CVS,0 BLUB 28 CVA,0 BLUB 29 LM,0 BLUB 2A STM,0 BLUB 2B LMS,0 BLUB 2D WAIT BLUB 2E LRP BLUB 2F * ** '3X' TYPE OPERATION CODES * AW,0 BLUB 30 CW,0 BLUB 31 LW,0 BLUB 32 MTW,0 BLUB 33 STW,0 BLUB 35 DW,0 BLUB 36 MW,0 BLUB 37 SW,0 BLUB 38 CLR,0 BLUB 39 LCW,0 BLUB 3A LAW,0 BLUB 3B FSS,0 BLUB 3C FAS,0 BLUB 3D FDS,0 BLUB 3E FMS,0 BLUB 3F * ** '4X' TYPE OPERATION CODES * TTBS,0 1 40 TBS,0 1 41 ANLZ,0 BLUB 44 CS,0 BLUB 45 XW,0 BLUB 46 STS,0 BLUB 47 EOR,0 BLUB 48 OR,0 BLUB 49 LS,0 BLUB 4A AND,0 BLUB 4B SIO,0 BLUB 4C TIO,0 BLUB 4D TDV,0 BLUB 4E HIO,0 BLUB 4F RIO,3 X'1F' 4F 30 5F 00 POLP,3 21 4F 30 95 00 POLR,3 3 4F 30 C3 00 * ** '5X' TYPE OPERATION CODES * AH,0 BLUB 50 CH,0 BLUB 51 LH,0 BLUB 52 MTH,0 BLUB 53 STH,0 BLUB 55 DH,0 BLUB 56 MH,0 BLUB 57 SH,0 BLUB 58 LCH,0 BLUB 5A LAH,0 BLUB 5B * ** '6X' TYPE OPERATION CODES * CBS,0 1 60 MBS,0 1 61 EBS,0 1 63 BDR,0 BLUB 64 BIR,0 BLUB 65 AWM,0 BLUB 66 EXU BLUB 67 BCR,0 BLUB 68 BCS,0 BLUB 69 BAL,0 BLUB 6A INT,0 BLUB 6B RD,0 BLUB 6C WD,0 BLUB 6D AIO,0 BLUB 6E MMC,0 2 6F 04 * ** '7X' TYPE OPERATION CODES * LCF BLUB 70 CB,0 BLUB 71 LB,0 BLUB 72 MTB,0 BLUB 73 STCF BLUB 74 STB,0 BLUB 75 PACK,0 BLUB 76 UNPK,0 BLUB 77 DS,0 BLUB 78 DA,0 BLUB 79 DD,0 BLUB 7A DM,0 BLUB 7B DSA BLUB 7C DC,0 BLUB 7D DL,0 BLUB 7E DST,0 BLUB 7F * * NON-BASIC MNEMONICS * CF DATA,1 X'A7' REFERENCE FOR LC AND LF LCI X'A' 02 2 000 A 0 LFI 7 02 1 000 0 7 LC CF 70 2 ----- LF CF 70 1 ----- * * SHIFTS S SLS,2 17,1 25220 011 SLD,2 -5,1 25220 17B SCS,2 5,1 25220 205 SCD,2 -17,1 25220 36F SAS,2 17,1 25220 411 SAD,2 -5,1 25220 57B SSS,2 5,1 25220 605 SSD,2 -17,1 25220 76F SFS,2 5 24200 005 SFL,2 -5 24200 17B * * BRANCHES B B S 680 BE B 683 BG B 692 BL B 691 BGE B 681 BLE B 682 BNE B 693 BEZ B 683 BGZ B 692 BLZ B 691 BGEZ B 681 BLEZ B 682 BNEZ B 693 BOV B 694 BNOV B 684 BC B 698 BNC B 688 BNCNO B 68C BDP B 694 BWP B 684 BAZ B 684 BANZ B 694 BEV B 688 BOD B 698 BID B 698 BLD B 688 BSU B 692 BNSU B 68A BSE B 691 BSNE B 681 BSF B 694 BSNF B 68F BSO B 698 BNSO B 688 BIOAR B 688 BIOANR B 698 BIODO B 694 BIODNO B 684 BIOSP B 684 BIOSNP B 694 BIOSS B 684 BIOSNS B 694 * * MISCELLANEOUS NOP 02000000 PZE *S,7 800E---- LLOCKS,2 6F22---- LMAP,2 6F28---- LPC,2 6F24---- LMAPRE,2 6F2A---- * BLUB DATA X'0' * ROUTINE TO VERIFY LOAD & EXECUTION. * MSG TEXT ' LOAD & EXECUTION WERE SUCCESSFUL.' SIZE EQU BA(%)-BA(MSG) * PRINTMSG GEN,8,24 X'11',M:LO GEN,4,28 X'3',X'10' DATA MSG,SIZE * START EQU % CAL1,1 PRINTMSG CAL1,9 1 END START