ASMB,L,Z,C *RTLGN USE 'ASMB,Z ' ALWAYS !! * * *************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1980. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * * *************************************************************** * HED RTE XL GENERATOR NAM RTLGN,3,99 92071-16077 REV.2041 800722 LOD 2,SG,4 * * NAME: RTE XL GENERATOR MAIN * SOURCE: 92071-18077 * PGMR: B.C. * ENT RTLGN * * EXT EXEC,LOGLU,NAMR,.ENTR EXT OPEN,CLOSE,READF,WRITF,PRTN EXT IFBRK EXT TH2.L,CNUMD,L.REL * ENT DSTRG,IPBUF,STRNG,SLONG,DONE?,ISTRC,DIPBF ENT DFTLU,FATAL,OP?,MSIZE,IPTN2,ABOR ENT EXIT,BREAK,ASTRX,LENTF * ENT F1,FILE1,TYPE1,F1SC,F1DSC,IERR1 ENT F2,FILE2,TYPE2,F2SC,F2DSC,IERR2 ENT F3,FILE3,TYPE3,F3SC,F3DSC,IERR3,OPSNP ENT F4,FILE4,TYPE4,F4SC,F4DSC,IERR4 ENT CDCB1,ODCB2,SDCB3,LDCB4,ADCB3 ENT SEGNM,PPREL,COMFG,LNKDR,SIDCK ENT FWFM,LWFM,BPFWA,LODPT,COMAD,COMLG,LWAPG ENT TDBP,LDBP,CSDBP,CUDBP,CSRBP,CURBP ENT NUMID,#ENPT,NLIB,CROM * ENT READ,FLERR,NAMRR,DRKEY,SPACE,FCLOS,MOVE ENT CLOS1,CLOS2,CLOS3,CLOS4 ENT DLOCC,LOCC,DBLOC,BPLOC ENT CNV99,L.OUT,STCR1,MAXAD,PARTN ENT ERRCT,CONSL,AINT,WRDCT,EFBUF,PRERR ENT CBCOM,CFWSY,C$SCP,C$SC#,RECOF,SLOCC * SUP PRESS EXTRANIOUS LISTING * SKP SKP DSTRG DEF STRNG ADCB3 DEF SDCB3 DIPBF DEF IPBUF STRNG BSS 40 IPBUF BSS 10 OUTPUT PARSED BUFFER * RTLGN JSB LOGLU GET THE CONSOLE LU DEF *+2 DEF ANLU# IOR M400 MERGE ECHO BIT STA DFTLU AND SAVE * * JSB EXEC GET THE RUN STRING DEF *+5 DEF P14 DEF P1 DEF STRNG THIS IS A GET NOT A PUT DEF N80 * STB SLONG SLONG = STRING LENGTH IN + CHAR * * * * JSB EXEC DEF *+3 DEF P8 DEF SEG1 LOAD SEGMENT 1 NOP * SKP * SLONG NOP STRING LENGTH IN CHARS DONE? NOP =1 WHEN INPUT PRAMS CHECKED OUT * F1 DEF FILE1 FILE1 ASC 3,COMMAD COMMAND FILE NAME TYPE1 NOP F1SC NOP F1DSC NOP * F2 DEF FILE2 OUTPUT FILE NAME FILE2 ASC 3,SYSTEM DEFAULT FILE = SYSTEM TYPE2 OCT 3 F2SC NOP F2DSC NOP * F3 DEF FILE3 SNAP FILE NAME FILE3 ASC 3,SNAP DEFAULT FILE = SNAP TYPE3 OCT 3 F3SC NOP F3DSC NOP * F4 DEF FILE4 LIST FILE NAME FILE4 ASC 3,SYLIST DEFAULT FILE = SYLIST TYPE4 OCT 3 F4SC NOP F4DSC NOP * * GENERATOR BUFFER AREA * CDCB1 BSS 144 COMMAND DCB ODCB2 BSS 144 OUTPUT DCB SDCB3 BSS 144 SNAP DCB LDCB4 BSS 144 LIST DCB * SEG1 ASC 3,L20G1 * SKP SPC 1 * * EXIT LDA SEGNM CPA P128 NORMAL TERMINATION? RSS YES JMP ABOR NO , ABNORMAL TERMINATION EXIT2 JSB SPACE JSB CNUMD DEF *+3 DEF ERRCT+0 DEF ERRMS+1 LDA P18 STA CONSL LDB DERRM JSB DRKEY * JSB WRITF DEF *+6 DEF ODCB2 WRITE OUT CURRENT RECORD DEF IERR2 OF OUTPUT FILE DEF OTBUF DEF P128 DEF RECN * LDA SLOCC 1ST USER PAGE # ADA N1 CMA,INA ADA P64 ALS,ALS ALS MUTIPLY BY 8 STA ITRUN TRUNCATE VALUE * JSB FCLOS * LDA N4 ZERO OUT NEXT 4 WDS AFTER STA WRDCT ERRCT FOR PRTN CLA LDB DERRC ADDRESS OF ERRCT LP INB STA B,I ISZ WRDCT ANY MORE? JMP LP YES * JSB PRTN NO DEF *+2 DERRC DEF ERRCT+0 * JSB EXEC DEF *+2 DEF P6 * DERRM DEF ERRMS ERRMS ASC 9,* ERRORS * SKP SKP SKP * * SET UP CALL FOR OUTPUT * * CALL SEQUENCE * * LDA DATA * LDB ADDRESS * JSB STCR1 * STCR1 NOP STB ADRR THIS IS THE ADDRESS STA VALU THIS IS THE VALUE OF THE ABOVE ADDRESS JSB L.OUT DEF *+3 DEF ADRR DEF VALU JMP STCR1,I RETURN * ADRR NOP VALU NOP * * * * PRINT ****** * ASTRX NOP LDA P6 LDB DASTX JSB DRKEY JMP ASTRX,I * * DASTX DEF *+1 ASC 3,****** * SKP *THE FCLOSE ROUTINE CLOSES ALL FILES OPEN TO THE *GENERATOR * FCLOS NOP JSB CLOS1 JSB CLOS3 JSB CLOS2 JSB CLOS4 JMP FCLOS,I * CLOS1 NOP JSB CLOSE CLOSE THE FILE DEF *+2 DEF CDCB1 JMP CLOS1,I * CLOS2 NOP JSB CLOSE YES DEF *+4 DEF ODCB2 DEF IERRX DEF ITRUN+0 JMP CLOS2,I * CLOS3 NOP JSB CLOSE YES DEF *+2 DEF SDCB3 JMP CLOS3,I * CLOS4 NOP LDA TYPE4 ERA,SLA RSS JMP CLOS4,I JSB CLOSE DEF *+2 DEF LDCB4 * CLA,INA SET UP THE STA TYPE4 NUMERIC FIELD IN THE TYPE WORD JMP CLOS4,I RETURN * * OPEN THE SNAP FILE * OPSNP NOP JSB OPEN DEF *+7 DEF SDCB3 DEF IERR3 DEF FILE3 DEF IPTN2 DEF F3SC DEF F3DSC JMP OPSNP,I SKP * * READ THE COMMAND FILE * * JSB READ * EOR RETURN * NO ERROR RETURN * * SPC 1 * READ NOP FREAD JSB READF READ THE COMMAND FILE DEF *+6 DEF CDCB1 DEF IERR1 DEF STRNG DEF P40 DEF CLEN * LDA IERR1 SSA,RSS ANY ERRORS ? JMP FLCHK NO LDB F1 JSB FLERR YES FLCHK LDB CLEN GET LENGTH OF COMMAND JUST READ SZB,RSS WAS IT ZERO ? JMP FREAD YES, SO DO IT AGAIN SSB WAS IT NEGATIVE (IE END OF FILE) JMP READ,I YES, SO FINISH PROCESSING * CLE,ELB CONVERT TO CHAR COUNT (MULT BY 2) STB SLONG SAVE READ LENGTH FOR PARSING ROUTINE CLA,INA SET UP PARSING OFFSET TO STAT PARSING STA ISTRC AT THE FIRST CHARACTER JSB NAMRR PARSE THE OP CODE LDB IPBUF+1 GET 3RD & 4TH CHAR STB OP1? LDA IPBUF AND SAVE THE OPCODE STA OP? * JSB IECHO ECHO INPUT LDA OP? GET OPCODE AND HIMSK CPA ASTRK IS IT A COMMENT ? JMP FREAD YES , READ ANOTHER RECORD * JSB BREAK CHECK BREAK FLAG CLA STA PRERR CLEAR PRINT ERROR FLAG ISZ READ JMP READ,I * SKP * * PRINT MESSAGE ON LIST DEVICE * * THE DRKEY SUBROUTINE PRINTS A MESSAGE ON THE LIST OUTPUT DEVICE. * * CALLING SEQUENCE: * A = NO. CHARACTERS (POS.) TO BE PRINTED. * B = ADDRESS OF MESSAGE * JSB DRKEY * * RETURN: CONTENTS OF A AND B ARE DESTROYED * DRKEY NOP STA CHAR# SAVE THE # OF CHARACTERS * ADB N1 BACK THE ADDRESS UP BY ONE STB MADDR AND SAVE FOR LU WRITE STB MADDF OR FILE WRITE LDA B,I GET THE WORD PRIOR TO THE BUFFER STA LTEMP AND SAVE IT LDA BLNK2 GET A BLANK STA B,I AND PUT IT IN THE BUFFER * LDB CHAR# GET THE # OF CHARACTERS ADB P3 ALLIGN TO A WORD & ACCOUNT FOR THE BLANK CLE,ERB DIV BY 2 . NOW HAVE WORD COUNT STB COUNT SAVE FOR LU OR FILE WRITE * LDB CHAR# GET THE # OF CHARS SLB,INB,RSS ODD # ? JMP GOWRT NO, SO WRITE THE BUFFER OUT CLE,ERB INDEX ADB MADDR THE THE LAST WORD LDA B,I GET IT & PUT A BLANK AND HIMSK IN THE LOW END ADA P32 STA B,I * GOWRT LDA CONSL ECHO TO THE CONSOLE? SZA,RSS YES JMP WFILE NO , WRITE TO THE FILE * JSB EXEC REQUEST WRITE DEF *+5 DEF P2 WRITE REQUEST CODE DEF DFTLU ADDR OF CONSOLE UNIT NO. MADDR DEF 0 BUFFER LOCATION DEF COUNT CURRENT WORD COUNT CLA STA CONSL * WFILE JSB WRITF DO THE FILE WRITE DEF *+5 DEF LDCB4+0 DEF IERR4+0 MADDF NOP BUFFER ADDRESS DEF COUNT BUFFER LENGTH * LDB LTEMP GET THE ALTERED WORD STB MADDR,I AND RESTORE IT SSA,RSS ANY FILE ERRORS JMP DRKEY,I NO, SO RETURN * LDA N6 LIST FILE ERROR JSB MOVE MOVE LIST FILE NAME DEF FILE4+0 SOURCE DEF EFBUF+10 DESTINATION LDA IERR4 CMA,INA JSB CNV99 STA EFBUF+4 * JSB EXEC DISPLAY ON CONSOLE FMP ERROR DEF *+5 OF DEF P2 LIST DEF DFTLU+0 FILE DEF EFBUF DEF P13 * JSB EXEC DEF *+2 DEF P6 SKP * * NEW LINE ON LIST OUTPUT DEVICE * * THE SPACE SUBROUTINE IS CALLED TO PAGE UP THE PRINTER. * * CALLING SEQUENCE: * A = IGNORED * B = IGNORED * JSB SPACE * * RETURN: CONTENTS OF A AND B ARE DESTROYED. * SPACE NOP CLA SET COUNT = 0. LDB ALBUF B = DUMMY ADDR. JSB DRKEY NEW LINE JMP SPACE,I RETURN * ALBUF DEF IPBUF * * * THE BREAK ROUTINE CATCHES ANY PROGRAM BREAKS AND DOES * A CLEAN TERMINATION. * BREAK NOP JSB IFBRK DEF *+1 SSA ANY BREAK INPUT ? JMP EXIT YES , SO EXIT THYSELF JMP BREAK,I NO SO JUST RETURN * * ABORT ROUTINE * ABOR LDA P6 LDB MESFL JSB DRKEY JSB ASTRX PRINT ****** JMP EXIT2 * MESFL DEF *+1 ASC 3,GEN AB * SKP * * THE IECHO ROUTINE ECHOS COMMAND FILE COMMANDS AND ECHOS * ANY BAD COMMANDS ENCOUNTERED IN THE COMMAND FILE * IT ASSUMES THE WORD COUNT IN ' CLEN ' AND THE BUFFER * TO BE OUTPUT IN ' DSTRG '. * IECHO NOP LDA CLEN RAL WORD COUNT IS NOW CHAR COUNT LDB DSTRG GET THE BUFFER ADDRESS JSB DRKEY OUTPUT IT JMP IECHO,I RETURN TO CALLER * SKP * * *THE FLERR ROUTINE HANDLES ALL FILE ERRORS. CALLING SEQUENCE: * * LDA WITH ERROR CODE (NEGATIVE) * LDB WITH ADDRESS OF FILE * JSB FLERR * * *THIS ROUTINE WILL CLOSE ALL FILES FLERR NOP STA ERRSV SAVE ERROR CODE STB EFILE SAVE NAME OF FILE CMA,INA MAKE ERROR POSITIVE JSB CNV99 CONVERT TO ASCII STA EFBUF+4 PUT INTO ERROR MESSAGE LDA EFILE,I GET THE FILE NAME STA EFBUF+10 AND ISZ EFILE PUT LDA EFILE,I IT STA EFBUF+11 INTO ISZ EFILE THE LDA EFILE,I ERROR STA EFBUF+12 MESSAGE . * * LDA P26 GET THE CHAR COUNT STA CONSL ECHO TO THE CONSL LDB DEBUF AND THE ADDRESS JSB DRKEY NOW PRINT THE ERROR MESSAGE ISZ ERRCT BUMP UP THE ERROR COUNTER JSB ASTRX PRINT ****** * LDA ERRSV GET ERROR CODE CPA N6 FILE NOT FOUND? JMP FLERR,I YES , OK TO CONTINUE CPA N7 FILE SEC. CODE ERROR? JMP FLERR,I YES , OK TO CONTINUE CPA N15 ILLEGAL NAME? JMP FLERR,I YES , OK TO CONTINUE CPA N32 CRN NOT FOUND? JMP FLERR,I OK , GO GET NEXT COMMAND * JMP ABOR ANY OTHER DISC ERROR ABORT * EFILE NOP DEBUF DEF EFBUF EFBUF ASC 13, FMGR -6 ON FILE COMAND ERRSV NOP SKP * * * THE NAMRR SUBROUTINE USES THE RELOCATABLE LIBRARY * PARSING ROUTINE NAMR. THE INPUT TO NAMR IS A STRING * OF ASCII CHARACTERS. * THE OUTPUT IS A 10 WORD BUFFER PARSED AS : * PRAM1,PRAM2,PRAM3,TYPE,S1,S2,S3,S4,S5,S6 * PARAMETERS BETWEEN COMMAS ARE PARSED. SUBPARAMETERS ARE * DELINEATED BY COLONS. THE TYPE WORD DESCRIBES ALL * PARAMETERS AS ASCII, NUMERIC, OR NULL. * THE TYPE WORD IS BROKEN UP INTO 2 BIT FIELDS TO DESCRIBE * THE INPUT. *15,14 13,12 11,10 9,8 7,6 5,4 3,2 1,0 *----------------------------------------------- * S6 ! S5 ! S4 ! S3 ! S2 ! S1 ! PRAM ! *----------------------------------------------- * * PRAM = 0 ...NULL PRAM1 = PRAM2 = PRAM3 = 0 * PRAM = 1....NUMERIC (ONLY PRAM1 USED) PRAM1 = # * PRAM = 2 ...NOT USED * PRAM = 3 ... ASCII (USES PRAM1,PRAM2,PRAM3 ) * * S1 - S6 ARE DEFINED THE SAME EXCEPT THEY ARE ONE WORD ONLY * NAMRR NOP JSB NAMR THIS IS THE RELO LIBR PARSING ROUTINE DEF *+5 RETURN ADDR DEF IPBUF ADDRESS OF 10 WORD PARSED BUFFER DEF STRNG ADDRESS OF BUFFER TO BE PARSED DEF SLONG CHARACTER LENGTH DEF ISTRC CHAR OFFSET IN STRNG FOR NEXT PRAM JMP NAMRR,I RETURN TO CALLER * * SKP SKP MOVE NOP WORD MOVE SUBROUTINE STA CNT1 SAVE WORD COUNT LDA MOVE,I GET SOURCE STA PTN1 SET IN POINTER 1 ISZ MOVE STEP TO DEST. ADDR LDA MOVE,I GET DEST. ISZ MOVE STEP TO RETURN ADDR MOV1 LDB PTN1,I GET A WORD STB A,I PUT IT AWAY ISZ PTN1 STEP SOURCE INA AND DEST. ADDRES ISZ CNT1 DONE? JMP MOV1 NO - CONTINUE JMP MOVE,I YES - EXIT * * * CONVERT TO DECIMAL ASCII (MAX VALUE = 99) * CALL SEQUENCE: LDA VALUE * JSB CNV99 * STA ASCII * CNV99 NOP QUICK CONVERSION CLB BINARY TO DECIMAL ASCII DIV P10 MAX VALUE = 99 SZA ADA M20 FORCE LEADING BLANK IF ZERO ADA M40 ALF,ALF PUT IN LEFT HALF IOR B IOR M60 JMP CNV99,I RETURN ASCII IN (A) SKP * * ROUTINE TO OUTPUT A WORD THAT HAS BEEN RELOCATED * * * JSB L.OUT * DEF *+3 * DEF ADDRESS ADDRESS OF ADDRESS * DEF VALUE ADDRESS OF VALUE * * DADD NOP DVAL NOP L.OUT NOP JSB .ENTR DEF DADD LDA DADD,I GET ADDRESS STA QTEMP CMA,INA NEGATE ADDRESS ADA CROM ADD TOP OF MEMORY SSA OUTPUT FILE OVERFLOW? JMP FILOV YES , GIVE ERROR LDA DVAL,I NO STA PTEMP * LDA QTEMP GET ADDRESS AGAIN ADA B2000 ADA -2000B SSA 2000B OR GREATER ? IE NOT ON BASE PAGE RSS NO , UPDATE BP JMP L.001 YES INA ADA TDBP ADD TOP OF DUMMY BP LDB PTEMP GET VALUE STB A,I STORE VALUE IN DUMMY BP LDA RECOF GET REC. OFFSET SZA IF NOT SYS BP DO NOT OUTPUT JMP L.20 NOT SYS BP * L.001 CLB CALCULATE RECORD # & WORD POSITION LDA QTEMP GET ADDRESS ADA P128 REC # = (ADDRESS+128)/128 DIV P128 QUOTIENT IN A = RECORD # ADA RECOF ADD THE RECORD OFFSET STA RECN THIS THE RECORD # INB REMAINDER IN B + 1 = WORD POSITION STB WORDN THIS THE WORD POSITION IN THE RECORD * CPA RECNO NEW REC # EQUAL TO PREVIOUS REC #? JMP L.O10 YES , JUST DATE THE RECORD * JSB WRITF NO , WRITE OUT CURRENT REC DEF *+6 DEF ODCB2 DEF IERR2 DEF OTBUF DEF P128 DEF RECNO * SSA,RSS ANY ERROR? JMP L.003 NO , CONTINUE LDB F2 ADDRESS OF SYSTEM OUTPUT FILE NAME JSB FLERR * L.003 JSB READF READ THE NEW RECORD IN DEF *+7 DEF ODCB2 DEF IERR2 DEF OTBUF DEF P128 DEF RTEMP DEF RECN SSA,RSS ANY ERROR? JMP L.006 NO , CONTINUE LDB F2 ADDRESS OF SYSTEM OUTPUT FILE NAME JSB FLERR * L.006 LDA RECN STA RECNO SAVE IT AS THE CURRENT RECORD # * L.O10 LDA WORDN UPDATE THE RECORD ADA N1 WITH THE NEW WORD ADA AOTBF LDB PTEMP GET THE VALUE OF THE WORD STB A,I AND PLACE IT IN THE RECORD * * * L.20 LDA MAXAD GET CURRENT MAX ADDRESS CMA,INA ADA QTEMP ADD CURRENT ADDRESS SSA MAX ADDRESS BIGGER ? JMP L.OT YES LDA QTEMP NO , REPLACE CURRENT MAX ADDRESS STA MAXAD L.OT LDA TH2.L CURRENT HIGH ADDRESS + 1 OF THIS LOAD CMA,INA NEGATE ADA QTEMP ADD CURRENT OUTPUT ADDRESS SSA EQUAL OR GREATER? JMP L.OUT,I NO , RETURN LDA QTEMP YES , INA OUTPUT ADDRESS IS EQUAL OR LARGER STA TH2.L REPLACE IN TH2.L JMP L.OUT,I * FILOV LDA P6 LDB MESOV JSB DRKEY PRINT OUTPUT FILE OVERFLOW JSB ASTRX PRINT ****** ISZ ERRCT JMP EXIT * MESOV DEF *+1 ASC 3,OV MEM SYSTEM OUTPUT FILE OVERFLOWED * RECN NOP WORDN NOP RECNO DEC 255 * * AOTBF DEF OTBUF OTBUF BSS 128 SKP * * VARIABLES * #ENPT NOP AINT NOP ADDRESS OF INT TABLE ANLU# NOP BPFWA OCT 100 1ST WORD OF BASE PAGE BPLOC NOP C$SC# NOP # OF SYSTEM COMMON C$SCP NOP # OF SYSTEM COMMON IN PAGES CBCOM NOP CFWSY NOP CHAR# NOP INPUT # OF CHARACTER CLEN NOP RECORD READ LENGTH CNT1 NOP COMAD NOP ADDRESS OF SYS COMMON OR 0 IF LOCAL COMFG NOP UNLABEL COMMON IN FLAG COMLG NOP LENGTH OF SYSTEM COMMON OR 0 CONSL NOP ECHO TO CONSOLE 1=YES 0=NO COUNT DEC 13 CURRENT MESSAGE LENGTH CROM OCT 77777 TOP OF MEMORY CSDBP NOP CURRENT SYS DUM BP CSRBP NOP CURRENT SYS REAL BP CUDBP NOP CURRENT USER DUM BP CURBP NOP CURRENT USER REAL BP DBLOC DEF BPLOC DLOCC DEF LOCC ERRCT NOP ERROR COUNTER FATAL NOP 0/1 NO FATAL ERROR / FATAL ERROR FWFM NOP 1ST WORD OF FREE MEMORY IERR1 NOP IERR2 NOP IERR3 NOP IERR4 NOP IERRX NOP IPTN2 NOP OPEN OPTION ITRUN NOP TRUNCATION SIZE LDBP NOP LOWER BOUND OF DUMMY BASE PAGE LENTF OCT 1 NO ENT PT / LIST ENT PT (DEFAULT) LNKDR NOP BP LINK DIRECTION -1 = SYS LINK , 1 = USER LINK LOCC NOP LODPT NOP LOAD POINT LTEMP NOP LWAPG NOP LAST WORD OF ADDRESS SPACE LWFM NOP LAST WORD OF FREE MEMORY MAXAD NOP CURRENT MAX ADDRESS MSIZE NOP MEMORY SIZE NLIB NOP # OF LIBRARY FILES NUMID NOP # OF ID SEGMENTS OP? NOP OP1? NOP PARTN NOP PPREL NOP PRERR NOP 0/-1 PRINT ERROR/ERROR PRINTED PREVIOUSLY PTEMP NOP PTN1 NOP QTEMP NOP RECOF NOP RECORD OFFSET 256 IF SY. COM IS > 32K RTEMP NOP SEGNM NOP SIDCK NOP SYSTEM ID CHECK SLOCC NOP SAVE TOP OF SYSTEM LOCC TDBP NOP TOP OF DUMMY BASE PAGE WRDCT NOP SKP * * PRE-SET VARIABLES * DFTLU DEC 1 DEFAULT LU ISTRC DEC 1 POINTER TO CURRENT CHAR TO BE PARSE * * CONTANTS * P1 DEC 1 P2 DEC 2 P3 DEC 3 P6 DEC 6 P8 DEC 8 P10 DEC 10 P13 DEC 13 P14 DEC 14 P18 DEC 18 P26 DEC 26 P32 DEC 32 P40 DEC 40 P64 DEC 64 P128 DEC 128 * N1 DEC -1 N4 DEC -4 N6 DEC -6 N7 DEC -7 N15 DEC -15 N32 DEC -32 N80 DEC -80 * M20 OCT 20 M40 OCT 40 M60 OCT 60 M400 OCT 400 * B300 OCT -300 B2000 OCT -2000 * ASTRK OCT 25000 THIS IS A * HIMSK OCT 177400 * BLNK2 ASC 1, DOUBLE BLANK * * BASE PAGE COMMUNICATION VALUES * A EQU 0 B EQU 1 * * SPC 3 END RTLGN