Trailing-Edge
-
PDP-10 Archives
-
klad_sources
-
klad.sources/cnvrtm.mac
There are no other files named cnvrtm.mac in the archive.
SUBTTL CONTROL SEQUENCE
BEGIN:
LOAD:
START:
CONVRT: SETZM MONCTL
PGMINT ;INITIALIZE PROGRAM
MOVE [INCHWL $TTCHR]
MOVEM $TTUSR
SETZM ERRFLG
SETZM SWTEXR
MOVEI [ASCIZ?TYPE /H<CR> FOR HELP?]
SKIPN ONCEF#
PNTAL
SETOM ONCEF
CMD: SETZM HELPF
SETZM SUPA10#
SETZM KSMICF#
SETZM FLAG8#
SETZM KMCFLG#
SETZM FLAG11#
SETZM FILEXT#
SETZM MICROF#
SETZM MNOLST#
SETZM BLKCNT#
SETZM OUTCNT#
SETZM POINTX#
SETZM NOERRP#
SETZM DX20F#
SETZM SAVFLG#
SETZM CONSW
MOVEI [ASCIZ/
FILE: /]
PNTAL
GO FILSPC ;GET FILE NAME
JRST CMDERR ;ERROR
SKIPE HELPF#
JRST HELP ;HELP MESSAGE
SKIPE KMCFLG
JRST CNVKMC ;KMC11 FILE
SKIPE DX20F
JRST CNVDX ;DX20 FILE
SKIPE FLAG8
JRST CNVRT8 ;PDP-8 FILE
SKIPE FLAG11
JRST CNVT11 ;PDP-11 FILE
SKIPE KSMICF
JRST KSMCNV ;KS-10 MICRO-CODE CONVERSION
SKIPE MICROF
JRST MICCNV ;MICRO-CODE CONVERSION
SKIPE SAVFLG
JRST SAVCNV ;CONVERT '.A10' BACK TO '.SAV'
JRST RIMTB ;CONVERT SAV TO ASCII
CMDERR: MOVEI [ASCIZ/
???/]
PNTAL
SKIPE USER
CLRBFI ;CLEAR INPUT
JRST CMD
;*MISCELLANEOUS PARAMETERS
S
MONCTL: 0
MONFLG: -1
RETURN: 0
SWTEXR: 0
ERRFLG: 0
PNTNAM: PAREA3
PNTEXT: PAREA4
REENTR: DROPDV
SETZM SWTEXR
JRST C11DON ;CLOSE FILES
PGMNAM: ASCIZ?
CONVRT - DECSYSTEM DIAGNOSTIC ASCIIZER CONVERSION PROGRAM [DDQDG]
?
;*FILE NAME SPECIFICATION
S
FILSPC: SETZB 3,SLASHF#
TTSXB: SETZM 1
MOVE 2,[POINT 6,1]
TTSXB1: TTICHR ;GET INPUT
JRST .-1
CAIN 0,15
JRST TSXBX ;CR, TERMINATE
CAIN 0,"."
JRST TDOT ;NAME.EXT DELIMITER
CAIN 0,"/"
JRST SLASHX ;SLASH, CONTROL CHAR FOLLOWING
CAIL 0,"A"+40
CAILE 0,"Z"+40
CAIA
SUBI 0,40 ;CONVERT TO UPPER-CASE
SKIPE SLASHF ;SLASH FLAG SET ?
JRST OPTION ;YES, GO SET OPTION
CAIL 0,"0"
CAILE 0,"Z"
RTN ;ERROR, NOT ALPHA-NUMERIC
TRC 0,40 ;CONVERT TO SIXBIT
TRNE 1,77
RTN ;ERROR, TOO MANY CHARS
IDPB 0,2 ;PUT INTO WORD
JRST TTSXB1 ;REPEAT
TSXBX: AOS (P) ;RETURN +1
SKIPE 3
MOVEM 1,FILEXT ;SIXBIT WORD IN FILE EXTENSION
SKIPN 3
MOVEM 1,FILNAM# ;SIXBIT WORD IN FILE NAME
RTN
TDOT: SETOM 3
MOVEM 1,FILNAM
JRST TTSXB
SLASHX: SETOM SLASHF ;SLASH, SET FLAG
JRST TTSXB1 ;GO GET CONTROL CHAR
OPTION: SETZB 4,HELPF
CAIN 0,"H"
SETOB 4,HELPF ;/H, HELP MESSAGE
CAIN 0,"8"
SETOB 4,FLAG8 ;/8, PDP-8 FILE
CAIN 0,"E"
SETOB 4,FLAG11 ;/E, PDP-11 FILE
CAIN 0,"T"
SETO 4, ;/T, PDP-10 FILE - DEFAULT
CAIN 0,"A" ;/A, PDP-10 FILE - SUPER A10
SETOB 4,SUPA10
CAIN 0,"S"
SETOB 4,SAVFLG ;/S, PDP-10 '.A10' BACK TO '.SAV'
CAIN 0,"X"
SETOB 4,DX20F ;/X, DX20 FILE
CAIN 0,"K"
SETOB 4,KSMICF ;/K, KS-10 MICRO-CODE
CAIN 0,"M"
SETOB 4,MICROF ;/M, MICRO CODE & LISTING
CAIN 0,"R"
GO MICNLST ;/R, RAM MICRO CODE, NO LISTING
CAIN 0,"C"
SETOB 4,KMCFLG ;/C, KMC11 MICROCODE
CAIN 0,"N"
SETOB 4,NOERRP ;/N, DON'T PRINT ERRORS ON TTY
SETZM SLASHF
JUMPN 4,TTSXB1 ;4 SET, OK
RTN ;NO, CONTROL CHAR ERROR
HELP: MOVEI HLPMSG ;OUTPUT HELP MESSAGE
PNTAL
SKIPE USER
CLRBFI
JRST CMD
MICNLST:SETOB 4,MICROF
SETOM MNOLST
RTN
HLPMSG: ASCIZ?
COMMANDS TERMINATE WITH <CR>
COMMAND IS FILE.EXT/SWITCH
PDP-10 'EXT' DEFAULT IS 'SAV'
PDP-11 'EXT' DEFAULT IS 'BIN'
PDP-8 'EXT' DEFAULT IS 'BIN'
DX20 'EXT' DEFAULT IS 'BIN'
KMC11 'EXT' DEFAULT IS 'BIN'
MICRO 'EXT' DEFAULT IS 'MCR'
COMMAND FUNCTION
------- --------
FILE PDP-10 SAVE FILE TO ASCII '.A10' CONVERSION
FILE/T " DEFAULT
FILE/A PDP-10 SAVE FILE TO "SUPER" '.A10' CONVERSION
FILE/S PDP-10 '.A10' FILE BACK TO '.SAV' CONVERSION
FILE/E PDP-11 BINARY FILE TO ASCII '.A11' CONVERSION
FILE/8 PDP-8 BINARY FILE TO ASCII '.A8' CONVERSION
FILE/X DX20 BINARY FILE TO ASCII '.ADX' CONVERSION
FILE/C KMC11 BINARY FILE TO ASCII '.KMC' CONVERSION
FILE/K KS-10 MICRO-CODE LISTING TO '.RAM' CONVERSION
FILE/M MICRO-CODE LISTING TO ASCII '.RAM' CONVERSION
FILE/R MICRO RAM FILE ONLY, NO LISTING
/N DON'T PRINT MICRO CODE ERRORS
/H THIS MESSAGE
?
;*SETUP INPUT AND OUTPUT
S
ININIT: OPEN IN,INBLK ;OPEN INPUT
JRST ERR7 ;NOT AVAILABLE
MOVEI 0 ;ASCII
SKIPE KSMICF ;KS-10 ?
MOVEI 13 ;YES, IMAGE BINARY OUTPUT
SKIPE SAVFLG ;.A10 TO .SAV ?
MOVEI 13 ;YES, IMAGE BINARY OUTPUT
MOVEM OUTBLK
OPEN OUT,OUTBLK ;OPEN OUTPUT
JRST ERR8 ;NOT AVAILABLE
MOVE JOBFF
MOVEM SVJBFF# ;SAVE FOR RECLAIM
INBUF IN,^D10 ;SETUP 10 INPUT BUFFERS
OUTBUF OUT,^D10 ;SETUP 10 OUTPUT BUFFERS
LOOKUP IN,INNAM ;INITIALIZE INPUT FILE
JRST ERR10 ;NOT FOUND
MOVE INNAME+1
ANDI 700000
HRRM OUTNAM+1
MOVE INNAME+2
AND [37,,-1]
MOVEM OUTNAM+2
MOVE INNAME+4
MOVEM OUTNAM+4
ENTER OUT,OUTNM ;INITIALIZE OUTPUT FILE
JRST ERR9 ;NO ROOM
RTN
INBLK: 13 ;IMAGE BINARY, 36 BIT BYTES
SIXBIT/DSK/ ;FROM DISK
IBF ;HEADER
IBF: BLOCK 3
OUTBLK: 0 ;ASCII
SIXBIT/DSK/ ;TO DISK
OBF,,0 ;HEADER
OBF: BLOCK 3
INNAM: 6
0
INNAME: SIXBIT/NAME/ ;UPDATED ON SPECIFICATION
SIXBIT/EXT/ ;UPDATED ON SPECIFICATION
BLOCK 5
OUTNM: 6
0
OUTNAM: SIXBIT/NAME/ ;UPDATED ON SPECIFICATION
SIXBIT/EXT/ ;UPDATED ON SPECIFICATION
BLOCK 5
SUBTTL TEN CONVERT SECTION
;*FIND START ADDRESS AND LENGTH
S
RIMTB: MOVE FILNAM ;INITIALIZE FILE NAMES
MOVEM INNAME
MOVEM OUTNAM
MOVE [SIXBIT/SAV/]
SKIPE FILEXT
MOVE FILEXT
MOVEM INNAME+1
MOVE [SIXBIT/A10/]
MOVEM OUTNAM+1
MOVEI 13 ;INPUT IMAGE BINARY, 36 BIT BYTES
MOVEM INBLK
GO ININIT ;INITIALIZE I/O
MOVSI (JRST)
MOVEM XFERWD#
GO RINP ;GET FIRST BUFFER
JRST ERR1 ;FILE OF ZERO LENGTH
JUMPGE CHR,ERR2 ;FIRST WD MUST BE POINTER
MOVEI T2,^D126(CHR)
MOVEI T3,137 ;FIRST POINTER MUST BE ABOVE XXX
CAMGE T2,T3
JRST ERR3 ;NO, ERROR
MOVE T1,IBF+1
MOVEI T3,JOBSA
GO RMS1 ;GET 'JOBSA'
JRST ERR3
HRRM CHR,XFERWD ;SAVE AS TRANSFER WORD
MOVE T1,IBF+1
MOVEI T3,JOBFF
GO RMS1 ;GET 'JOBFF'
JRST ERR3
HRRZM CHR,LENGTH# ;SAVE AS LENGTH OF PROGRAM
MOVE T1,IBF+1
MOVEI T3,JOBVER
GO RMS1 ;GET 'JOBVER'
SETZ CHR, ;NO VERSION, USE 0.0
MOVEM CHR,FILVER# ;SAVE FOR FILE IDENTIFICATION
GO FILEID ;IDENTIFY OUTPUT FILE
;*OUTPUT 10 CORE ZEROING BLOCK
;*CORE IS ZEROED FROM 'JOBSA' TO 'JOBFF'
S
RIMTB1: HRRZ T1,XFERWD ;GENERATE ZERO WORD COUNT
HRRZ T2,LENGTH
CAILE T1,<^D1024*^D256>-1
JRST ERR12 ;DOESN'T FIT
CAILE T2,<^D1024*^D256>-1
JRST ERR12
PUT T1
ANDI T1,177777 ;STRIP TO 16 BITS
MOVEM T1,B11ADR ;SETUP START ADDRESS
GET T1
PUT T1
LSH T1,-^D8
ANDI T1,777400 ;GET BITS 18 & 19
AOS T1 ;ONE DATA WORD
MOVEM T1,B11CNT
GET T1
SUB T2,T1 ;NOW HAVE ZERO COUNT
MOVEI T1,<^D1024*^D64>-1
MOVEI CNT,B11DAT
CAIG T2,<^D1024*^D64>-1
JRST RIMZ1 ;ONE ZERO WORD
MOVEM T1,(CNT)
AOS B11CNT
AOS CNT
SUB T2,T1
CAIG T2,<^D1024*^D64>-1
JRST RIMZ1 ;TWO ZERO WORDS
MOVEM T1,(CNT)
AOS B11CNT
AOS CNT
SUB T2,T1
CAIG T2,<^D1024*^D64>-1
JRST RIMZ1 ;THREE ZERO WORDS
MOVEM T1,(CNT) ;FOUR ZERO WORDS
AOS B11CNT
AOS CNT
SUB T2,T1
RIMZ1: MOVEM T2,(CNT) ;LAST ZERO WORD
GO PUTZSP ;LINE STARTS WITH "Z" & "SPACE"
GO C11CNV ;ASCIIZE & OUTPUT
;*OUTPUT 10 DATA WORD BLOCKS
S
RIMTB2: LDB CHR,IBF+1 ;GET POINTER
HRRZM CHR,POINTA#
HLROM CHR,COUNT#
MOVNS COUNT ;NUMBER OF WORDS THIS BLOCK
RIMTB3: SKIPN T1,COUNT ;ANY WORDS LEFT IN BLOCK ?
JRST RIMTB4 ;NONE
SETZM CHKSM#
CAIL T1,BLKSZ
MOVEI T1,BLKSZ
MOVN T2,T1 ;T1 HAS # OF WORDS TO GO OUT
MOVEM T1,BLKSIZ# ;NUMBER OF WORDS IN THIS BLOCK
ADDM T2,COUNT ;ADJUST COUNT
SKIPE SUPA10
JRST SUPTB3 ;SUPER A10
HRRZ CHR,POINTA
MOVEM CHR,POINTX# ;SAVE BLOCK ADDRESS
ADDM T1,POINTA ;SET POINTA FOR NEXT TIME
GO SETIOW ;INITIALIZE OUTPUT BLOCK
RIMTB5: SOJL T1,RIMTB6 ;FINISHED THIS BLOCK ?
GO RINP ;GET DATA WORD
JRST ERR4 ;EOF (ILLEGAL)
GO PUTRTB ;PUT IN OUTPUT BLOCK
JRST RIMTB5
RIMTB6: GO PUTTSP ;LINE STARTS WITH "T" & "SPACE"
GO C11CNV ;ASCIIZE & OUTPUT
JRST RIMTB3 ;DO NEXT BLOCK
;*OUTPUT TRANSFER BLOCK
S
RIMTB7: SKIPE SUPA10
JRST SUPTB7 ;SUPER A10
HRRZ XFERWD ;GET START ADDRESS
ANDI 177777
MOVEM B11ADR
HRRZ XFERWD
LSH -^D8
ANDI 777400
MOVEM B11CNT ;START AS 0 WORD COUNT
GO PUTTSP
GO C11CNV
JRST C11DON ;COMPLETED
PUTRTB: LDB [POINT 4,CHR,3]
MOVEM B11DAT+2(CNT) ;PUT BITS 0-3 IN 11 STOR WORD 2
LDB [POINT 16,CHR,19]
MOVEM B11DAT+1(CNT) ;PUT BITS 4-19 IN 11 STOR WORD 1
LDB [POINT 16,CHR,35]
MOVEM B11DAT(CNT) ;PUT BITS 20-35 IN 11 STOR WORD 0
MOVEI 3
ADDM CNT ;INCREMENT STOR COUNT
ADDM B11CNT ;3 11 WORDS PER 10 WORD
RTN
;*GET NEW POINTER
S
RIMTB4: GO RINP
JRST RIMTB7 ;EOF
JUMPL CHR,RIMTB2 ;POINTER WORD
CAME CHR,XFERWD ;IS IT FINAL JRST XXX
JRST ERR5 ;NO, ERROR
JRST RIMTB7 ;YES, OUTPUT IT
;*JOBSA/JOBFF/JOBVER SEARCH ROUTINE
S
RMS2: SUB T1,T4 ;(IBF+1)+N
AOJ T1,
RMS1: LDB CHR,T1 ;GET POINTER
HRRZ T2,CHR ;X
CAMLE T2,T3 ;THIS POINTER PAST REQ DATA ?
RTN ;YES
HLRO T4,CHR ;-N
SUB T2,T4 ;X+N IN T2
CAMGE T2,T3 ;THIS POINTER POINT TO REQ DATA ?
JRST RMS2 ;NO, GET NEXT POINTER
SUBI T3,(CHR) ;YES, HOW FAR FROM POINTER ?
ADD T1,T3 ;INCREMENT POINTER
LDB CHR,T1 ;GET REQ DATA
AOS (P)
RTN
;*SETIOW, SET I/O POINTER WORD
S
SETIOW: AOS CHR ;CHANGE POINTER TO BLK ADDRESS
PUT CHR
ANDI CHR,177777 ;STRIP TO 16 BITS
MOVEM CHR,B11ADR ;SETUP 1ST START ADDRESS, LOW 16 BITS
GET CHR
LSH CHR,-^D8 ;GET ADDRESS BITS 18 & 19
ANDI CHR,777400
MOVEM CHR,B11CNT ;SAVE IN HI-BYTE OF WORD COUNT
SETZM CNT ;CLEAR WORD COUNTER
RTN
;*SUPER '.A10' CONVERSION
SUPTB3: HRRZ CHR,POINTA
MOVEM CHR,POINTX ;SAVE BLOCK ADDRESS
AOS POINTX
ADDM T1,POINTA ;SET POINTER FOR NEXT TIME
GO PUTASP ;LINE STARTS WITH "A" & SPACE
MOVE CHR,BLKSIZ ;NUMBER OF WORDS IN THIS BLOCK
LDB 0,[POINT 2,POINTX,19]
DPB 0,[POINT 2,CHR,27]
ADDM CHR,CHKSM
GO PUT ;OUTPUT BLOCK SIZE
GO PUTCMA
MOVE CHR,POINTX
ANDI CHR,177777
ADDM CHR,CHKSM ;OUTPUT BLOCK ADDRESS
SUPTB5: GO PUT ;OUTPUT
GO PUTCMA
SOJL T1,SUPTB6 ;FINISHED THIS BLOCK ?
GO RINP ;GET DATA WORD
JRST ERR4 ;EOF (ILLEGAL)
ADDM CHR,CHKSM ;CHECKSUM
JRST SUPTB5 ;REPEAT
SUPTB6: MOVN CHR,CHKSM
ANDI CHR,177777
GO PUT ;OUTPUT CHECKSUM
GO PUTCRF
JRST RIMTB3
SUPTB7: GO PUTASP
SETZ CHR,
LDB 0,[POINT 2,XFERWD,19]
DPB 0,[POINT 2,CHR,27]
MOVEM CHR,CHKSM
GO PUT ;OUTPUT WORD COUNT
GO PUTCMA
HRRZ CHR,XFERWD
ANDI CHR,177777
ADDM CHR,CHKSM
GO PUT ;OUTPUT TRANSFER WORD
GO PUTCMA
MOVN CHR,CHKSM
ANDI CHR,177777
GO PUT ;OUTPUT CHECKSUM
GO PUTCRF
JRST C11DON ;COMPLETED
;*CONVERSION COMPLETION FILE CLOSEOUT ROUTINE
S
C11DON: GO FILEOF ;PUT "EOF" ON OUTPUT FILE
OUTPUT OUT,
CLOSE IN,
CLOSE OUT,
RELEAS IN,
RELEAS OUT,
MOVE SVJBFF ;RECLAIM BUFFER SPACE
MOVEM JOBFF
MOVEI [ASCIZ/
CONVERTING COMPLETED, INPUT BLOCKS = /]
PNTAL
MOVE BLKCNT
PNTDEC
MOVEI [ASCIZ/, OUTPUT BLOCKS = /]
PNTAL
MOVE OUTCNT
PNTDEC
MOVEI CRLF2
PNTAL
EXIT
;*MISCELANEOUS ROUTINES
S
PUT1: SOSG OBF+2 ;ADVANCE BYTE COUNTER
JRST PUTBF ;FULL
IDPB CHR,OBF+1 ;DEPOSIT CHARACTER
RTN
PUTBF: AOS OUTCNT
OUT OUT, ;DUMP BUFFER
JRST PUT1+2 ;NO ERRORS, JUMP BACK
JRST ERR6 ;ERROR
PUTCMA: MOVEI CHR,","
GO PUT1
RTN
PUTCRF: MOVEI CHR,15
GO PUT1
MOVEI CHR,12
GO PUT1
RTN
PUTASP: MOVEI CHR,"A" ;LINE STARTS WITH "A" & "SPACE"
JRST PUTTSP+1
PUTTSP: MOVEI CHR,"T" ;LINE STARTS WITH "T" & "SPACE"
GO PUT1
MOVEI CHR," "
GO PUT1
RTN
PUTZSP: MOVEI CHR,"Z" ;LINE STARTS WITH "Z" & "SPACE"
JRST PUTTSP+1
PUTS11: TLNN CHR1,777700
JRST .+4 ;SUPPRESS 2 LEADING ZERO OITS
TLNN CHR1,770000
JRST .+4 ;SUPPRESS 1 LEADING ZERO OIT
RTN
SOS CNT
LSH CHR1,6
SOS CNT
LSH CHR1,6
RTN
;*PDP-10 SUPER A10 OUTPUT ROUTINE
PUT: MOVEI CNT,6 ;6 CHARS PER WORD
MOVE CHR1,CHR
GO PUTSUP ;SUPPRESS LEADING ZEROS
PUTX: SETZM CHR
ROTC CHR,6 ;PUT CHAR RIGHT JUSTIFIED IN CHR
CAIN CHR,0
JRST PUTZR0 ;SUPPRESS OTHER ZEROS
CAIN CHR,77
JRST PUTONE ;SUPPRESS ONES
CAIN CHR,75 ;LEAVE 75 ALONE
JRST .+6
CAIN CHR,76
JRST .+4 ;LEAVE 76 ALONE
CAIN CHR,77
JRST .+2 ;LEAVE 77 ALONE
TRO CHR,100 ;SET BIT 7
PUTX1: GO PUT1 ;GO PUT IN BUFFER
SOJG CNT,PUTX ;ALL CHARS DONE ?
RTN ;YES
PUTSUP: TDNN CHR1,[-1,,777700]
JRST PUTS5 ;SUPPRESS 5 LEADING ZERO OITS
TDNN CHR1,[-1,,770000]
JRST PUTS4 ;SUPPRESS 4 LEADING ZERO OITS
TLNN CHR1,-1
JRST PUTS3 ;SUPPRESS 3 LEADING ZERO OITS
TLNN CHR1,777700
JRST PUTS2 ;SUPPRESS 2 LEADING ZERO OITS
TLNN CHR1,770000
JRST PUTS1 ;SUPPRESS 1 LEADING ZERO OIT
RTN
PUTS5: SOS CNT
LSH CHR1,6
PUTS4: SOS CNT
LSH CHR1,6
PUTS3: SOS CNT
LSH CHR1,6
PUTS2: SOS CNT
LSH CHR1,6
PUTS1: SOS CNT
LSH CHR1,6
RTN
;*PUTZR0, SUPPRESS MULTIPLE 00 OITS
PUTZR0: SETZM PUTZRC#
CAIN CNT,1
JRST PUTZR1
CAIN CNT,2
JRST PUTZR2
CAIN CNT,3
JRST PUTZR3
CAIN CNT,4
JRST PUTZR4
JRST PUTZR5
PUTZR5: TDNN CHR1,[-1,,770000]
AOS PUTZRC
PUTZR4: TLNN CHR1,-1
AOS PUTZRC
PUTZR3: TLNN CHR1,777700
AOS PUTZRC
PUTZR2: TLNN CHR1,770000
AOS PUTZRC
PUTZR1: SUB CNT,PUTZRC
MOVE CHR,PUTZRC
IMULI CHR,6
LSH CHR1,(CHR)
MOVE CHR,PUTZRC
TRO CHR,60
JRST PUTX1
;* "0" = 00
;* "1" = 0000
;* "2" = 000000
;* "3" = 00000000
;* "4" = 0000000000
;*PUTONE, SUPPRESS MULTIPLE 77 OITS
PUTONE: SETCMM CHR1
SETZM PUTONC#
CAIN CNT,1
JRST PUTON1
CAIN CNT,2
JRST PUTON2
CAIN CNT,3
JRST PUTON3
CAIN CNT,4
JRST PUTON4
CAIN CNT,5
JRST PUTON5
PUTON6: TDNN CHR1,[-1,,777700]
AOS PUTONC
PUTON5: TDNN CHR1,[-1,,770000]
AOS PUTONC
PUTON4: TLNN CHR1,-1
AOS PUTONC
PUTON3: TLNN CHR1,777700
AOS PUTONC
PUTON2: TLNN CHR1,770000
AOS PUTONC
PUTON1: SUB CNT,PUTONC
MOVE CHR,PUTONC
IMULI CHR,6
SETCMM CHR1
LSH CHR1,(CHR)
MOVE CHR,PUTONC
ADDI CHR,"5"
JRST PUTX1
;* "5" = 77
;* "6" = 7777
;* "7" = 777777
;* "8" = 77777777
;* "9" = 7777777777
;* ":" = 777777777777
SUBTTL ERROR ROUTINES
ERR1: MOVEI [ASCIZ/
FILE OF ZERO LENGTH/]
JRST ERRX
ERR2: MOVEI [ASCIZ/
FIRST WORD MUST BE POINTER/]
JRST ERRX
ERR3: MOVEI [ASCIZ/
INITIAL POINTER ERROR/]
JRST ERRX
ERR4: MOVEI [ASCIZ/
ILLEGAL EOF/]
JRST ERRX
ERR5: MOVEI [ASCIZ/
POINTER ERROR/]
JRST ERRX
ERR6: MOVEI [ASCIZ/
ERROR ON OUTPUT/]
JRST ERRX
ERR7: MOVEI [ASCIZ/
INPUT NOT AVAILABLE/]
JRST ERRX
ERR8: MOVEI [ASCIZ/
OUTPUT OPEN ERROR/]
JRST ERRX
ERR9: MOVEI [ASCIZ/
NO OUTPUT ROOM/]
JRST ERRX
ERR10: MOVEI [ASCIZ/
INPUT FILE NOT FOUND/]
JRST ERRX
ERR11: MOVEI [ASCIZ/
RIM10 FORMAT ERROR/]
JRST ERRX
ERR12: MOVEI [ASCIZ/
OVER 256K ERROR/]
JRST ERRX
ERRX: SETOM MONCTL
PNTALF
MOVEI CRLF
PNTALF
EXIT