mirror of
https://github.com/PDP-10/stacken.git
synced 2026-04-19 08:29:59 +00:00
424 lines
8.9 KiB
Plaintext
424 lines
8.9 KiB
Plaintext
SUBTTL 12-AUGUST-1985, T. C. PORCHER/TCP/RAB
|
||
|
||
|
||
;COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1976,1984,1986.
|
||
;ALL RIGHTS RESERVED.
|
||
;
|
||
;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
|
||
;ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
|
||
;OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THEREOF
|
||
;MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON. NO
|
||
;TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
|
||
;
|
||
;THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
|
||
;AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
|
||
;CORPORATION.
|
||
;
|
||
;DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
|
||
;SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
|
||
;
|
||
|
||
; TOPS==20 ; ASSEMBLE FOR TOPS-20
|
||
;
|
||
IFNDEF TOPS, <TOPS==10> ; DEFAULT IS TOPS-10
|
||
;
|
||
VWHO==0
|
||
VMAJOR==3 ; MAJOR VERSION
|
||
VMINOR==0 ; MINOR VERSION
|
||
VEDIT==42 ; EDIT NUMBER
|
||
;
|
||
DEFINE TTLMAC (A,B,C)<
|
||
TITLE RSXT'A -- TOPS-A FILE CONVERSION PROGRAM V. B(C)>
|
||
;
|
||
TTLMAC \TOPS,\VMAJOR,\VEDIT
|
||
;
|
||
DEFINE VERSION (A,B,C,D)<
|
||
BYTE (3)A (9)B (6)C (18)D>
|
||
;
|
||
SYN IFE,IF
|
||
;REVISION HISTORY
|
||
|
||
|
||
; 41 10-NOV-76 BELANGER
|
||
;
|
||
; 42 12-AUG-85 LEO
|
||
; DO COPYRIGHTS.
|
||
|
||
|
||
SEARCH MACSYM
|
||
;
|
||
IF TOPS-20, <
|
||
.REQUIRE SYS:MACREL
|
||
SEARCH MONSYM
|
||
> ; END CONDITIONAL ON TOPS-20
|
||
IF TOPS-10, <
|
||
SEARCH UUOSYM
|
||
> ; END CONDITIONAL ON TOPS-10
|
||
;
|
||
SALL
|
||
ifdef .psect,<
|
||
.direct flblst>
|
||
ifndef .psect,<
|
||
.direct .xtabm>
|
||
|
||
COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1976,1986. ALL RIGHTS RESERVED.
|
||
\;END COPYRIGHT MACRO
|
||
SUBTTL DEFINITIONS
|
||
|
||
F= 0 ;FLAGS:
|
||
F.IBCR==1B0 ;MODE IS IMBEDDED <CR><LF>
|
||
F.IPCR==1B1 ; . . IMPLIED <CR><LF>
|
||
F.TIBC==1B2 ;THIS FILE IS IMBEDDED <CR><LF> *** CANNOT BE 1B0 ***
|
||
F.ADDR==1B3 ;ADDRESS WORDS EXIST
|
||
F.NO== 1B4 ;"NO" WAS TYPED BEFORE COMMAND
|
||
F.TEMP==1B5 ;TEMPORARY OUTPUT FILES
|
||
F.RSCN==1B6 ;RESCAN COMMAND IN PROGRESS
|
||
F.EXIT==1B7 ;EXIT WHEN DONE WITH COMMAND (RESCAN)
|
||
F.IGNR==1B8 ;IGNORE FILE FORMAT ERRORS
|
||
F.LFSS==1B9 ;CONVERT LF TO SINGE SPACE
|
||
F.TLFS==1B10 ;TEMP SAME *** CANNOT BE 1B0 ***
|
||
F.CRMA==1B11 ; PROCESSING CRAM ADDRESS FLAG
|
||
F.TTEM==1B12 ;TEMPORARY TEMPORARY OUTPUT FILES
|
||
F.CMND==1B18 ; TOPS-10 "TAKE" PROCESS
|
||
F.PPN==1B19 ; LOOKING FOR A PPN
|
||
F.IBHM==1B20 ; INPUT BYTE HEADER MODIFIED
|
||
F.OBHM==1B21 ; OUTPUT BYTE HEADER MODIFIED
|
||
;
|
||
T1= 1 ;TEMP REGISTERS
|
||
T2= 2 ; . .
|
||
T3= 3 ; . .
|
||
T4= 4 ; . .
|
||
;
|
||
P1= 5 ;GENERAL STORAGE REGISTERS
|
||
P2= 6 ; . .
|
||
P3= 7 ; . .
|
||
P4= 10 ; . .
|
||
;
|
||
C= 11 ;RANDOM CHARACTERS
|
||
IC= 12 ;TEMP INPUT CHARACTER BUFFER FOR 8-BIT BYTES
|
||
OC= 13 ; . . OUTPUT . .
|
||
;
|
||
IM= 14 ;INPUT FILE MODE (CONVERT)
|
||
OM= 15 ;OUTPUT . .
|
||
;
|
||
P= 17 ;PDL POINTER
|
||
;
|
||
IF TOPS-10, <
|
||
;
|
||
; DEFINE THE I/O CHANNELS FOR TOPS-10
|
||
;
|
||
TTYCH==0 ; TELETYPE CHANNEL
|
||
CMDCH==1 ; COMMAND FILE CHANNEL
|
||
INCH==2 ; INPUT FILE CHANNEL
|
||
OUTCH==3 ; OUTPUT FILE CHANNEL
|
||
;
|
||
LE.NAM==0 ; OFFSET FOR FILENAME
|
||
LE.ERR==1 ; OFFSET FOR RETURNED ERROR CODE
|
||
LE.EXT==1 ; OFFSET FOR EXTENSION
|
||
LE.DAT==2 ; OFFSET FOR RETURNED DATE
|
||
LE.PPN==3 ; OFFSET FOR PPN
|
||
LE.PPS==4 ; OFFSET FOR SAVED PPN
|
||
> ; END CONDITIONAL ON TOPS-10
|
||
SUBTTL MACRO DEFINITIONS AND OPDEFS
|
||
|
||
DEFINE ERR (MSG),<
|
||
JRST [ HRROI P1,TXTPTR<MSG>
|
||
JRST CMDERR]
|
||
>
|
||
;
|
||
DEFINE ERRJ (MSG),<
|
||
IFNB <MSG>,<
|
||
JRST [ HRROI T2,<TXTPTR (<MSG>)>
|
||
JRST CMDERJ]
|
||
>
|
||
IFB <MSG>,<
|
||
JRST CMDJSE
|
||
>
|
||
>
|
||
DEFINE ERRI(MSG,GOTO),<
|
||
JRST [ HRROI P1,TXTPTR<MSG>
|
||
CALL CMDERI
|
||
JRST GOTO]
|
||
>
|
||
;
|
||
DEFINE TB(DATA,TEXT),<XWD [ASCIZ\TEXT\],DATA>
|
||
DEFINE TXTPTR(TEXT),<XWD -1,[ASCIZ\TEXT\]>
|
||
;
|
||
OPDEF CALL [PUSHJ P,]
|
||
OPDEF CALLR [JRST]
|
||
OPDEF RETURN [POPJ P,]
|
||
DEFINE RETSKP,<JRST CRET1>
|
||
DEFINE CALLRX (WHERE),<IF2,<IFN <.-WHERE>,<PRINTX ? CALLRX WHERE NOT VALID>>>
|
||
SUBTTL IMPURE DATA
|
||
;
|
||
IF TOPS-10, <
|
||
.JBVER==137 ; TOPS-10 VERSION
|
||
LOC .JBVER
|
||
VERSION VWHO,VMAJOR,VMINOR,VEDIT
|
||
RELOC
|
||
> ; END CONDITIONAL ON TOPS-10
|
||
CLRBEG==.
|
||
;
|
||
PDL: BLOCK <PDLEN==^D50>
|
||
;
|
||
IF TOPS-20, <
|
||
INJFN: BLOCK 1 ;JFN OF INPUT FILE
|
||
OUTJFN: BLOCK 1 ;JFN OF OUTPUT FILE
|
||
MFOJFN: BLOCK 1 ;MULTI-FILE OUTPUT JFN
|
||
CMDJFN: BLOCK 1 ;LH: JFN TO GET COMMANDS FROM, RH: LOG JFN
|
||
CHN1PC: BLOCK 1 ;PC OF CHANNEL 1 INTERRUPTS
|
||
> ; END CONDITIONAL ON TOPS-20
|
||
IF TOPS-10, <
|
||
CMDPTR: BLOCK 1 ; COMMAND BUFFER POINTER
|
||
OURPPN: BLOCK 1 ; SPACE FOR OUR PPN
|
||
TTOCCT: BLOCK 1 ; OUTPUT CHARACTER COUNT
|
||
> ; END CONDITIONAL ON TOPS-10
|
||
RCDSIZ: BLOCK 1 ;RECORD SIZE FOR NON-FORMATTED IMAGE RECORDS
|
||
MODE: BLOCK 1 ;LH: INPUT MODE, RH: OUTPUT MODE
|
||
INADR: BLOCK 1 ;CURRENT INPUT IMAGE-BINARY INPUT ADDRESS
|
||
OUTADR: BLOCK 1 ;CURRENT OUTPUT ADDRESS
|
||
INCHK: BLOCK 1 ;INPUT CHECKSUM
|
||
OUTCHK: BLOCK 1 ;OUTPUT CHECKSUM
|
||
INPTR: BLOCK 1 ;POINTER TO INPUT DATA IN SCRBUF
|
||
;
|
||
;
|
||
; COMND DATA
|
||
;
|
||
CMDBUF: BLOCK <CMDSIZ==^D200/5> ;COMMAND BUFFER
|
||
IF TOPS-20, <
|
||
ATMBUF: BLOCK <ATMSIZ==^D200/5> ;ATOM BUFFER
|
||
;
|
||
CMDBLK: BLOCK .CMGJB+1 ;COMND JSYS CONTROL BLOCK
|
||
CMDBKE==.-1
|
||
GJFBLK: BLOCK .GJBFP+1 ;GTJFN JSYS CONTROL BLOCK
|
||
GJFBKE==.-1
|
||
> ; END CONDITIONAL ON TOPS-20
|
||
;
|
||
CLREND==.-1
|
||
;
|
||
PAT: BLOCK 20
|
||
;
|
||
; SCRATCH BUFFER FOR ALL TO USE
|
||
;
|
||
IF TOPS-20, <
|
||
LOC 100K
|
||
> ; END CONDITIONAL ON TOPS-20
|
||
SCRBUF:
|
||
IF TOPS-10, <
|
||
BLOCK 100K
|
||
> ; END CONDITIONAL ON TOPS-10
|
||
IF TOPS-20, <
|
||
RELOC
|
||
> ; END CONDITIONAL ON TOPS-20
|
||
SUBTTL PURE DATA
|
||
;
|
||
; ENTRY VECTORS
|
||
;
|
||
ENTVEC:
|
||
JRST RSXFMT
|
||
IF TOPS-20, <
|
||
JRST CMDRST
|
||
VERSION VWHO,VMAJOR,VMINOR,VEDIT
|
||
> ; END CONDITIONAL ON TOPS-20
|
||
;
|
||
; COMMAND TABLE
|
||
;
|
||
DEFINE CMD(A),<TB $'A,<A>>
|
||
CMDTAB:
|
||
XWD CMDNUM,CMDNUM
|
||
CMD ADDRESS
|
||
CMD CONVERT
|
||
CMD CRLF
|
||
CMD EXIT
|
||
CMD HELP
|
||
CMD IGNORE
|
||
CMD INFORMATION
|
||
CMD MODE
|
||
CMD NO
|
||
SIZE==0
|
||
CMD RECORD-SIZE
|
||
CMD TAKE
|
||
IF TOPS-20, <
|
||
CMD TCONVERT
|
||
CMD TEMPORARY
|
||
> ; END CONDITIONAL ON TOPS-20
|
||
CMDNUM==.-CMDTAB-1
|
||
;
|
||
; DISPATCH TABLE FOR "NO" COMMANDS
|
||
;
|
||
NOCTAB:
|
||
XWD NOCNUM,NOCNUM
|
||
CMD ADDRESS
|
||
CMD IGNORE
|
||
CMD NO
|
||
IF TOPS-20, <
|
||
CMD TEMPORARY
|
||
> ; END CONDITIONAL ON TOPS-20
|
||
NOCNUM==.-NOCTAB-1
|
||
;
|
||
; FORMAT TYPE TABLES
|
||
;
|
||
; NEMONIC,KEYWORD,INPUT BYTE-SIZE,DEFAULT OUTPUT MODE
|
||
;
|
||
DEFINE FORMAT,<
|
||
X DSA,7-BIT-ASCII,7,RSA
|
||
X DEF,DEFAULT,0,DEF
|
||
X DSB,DOS-BINARY,18,RSB
|
||
X IMB,IMAGE-BINARY,18,DSB
|
||
X RAM,MICROCODE,7,RSB
|
||
X RSA,RSX-ASCII,18,DSA
|
||
X RSB,RSX-BINARY,18,DSB
|
||
X SAV,SAVE,36,RSB
|
||
>
|
||
;
|
||
DEFINE X(A,B,C,D,E),<
|
||
M$'A==.-MSGTAB
|
||
TB <M$'D>,<B>
|
||
>
|
||
FMTTAB:
|
||
XWD FMTSIZ,FMTSIZ
|
||
MSGTAB:
|
||
FORMAT
|
||
FMTSIZ==.-FMTTAB-1
|
||
;
|
||
; RESPONSES FOR "CRLF" COMMAND
|
||
;
|
||
ASCTAB:
|
||
XWD ASCSIZ,ASCSIZ
|
||
TB <F.LFSS_-^D18>,<CARRIAGE-RETURN-SINGLE-SPACE>
|
||
TB 0,<DEFAULT>
|
||
TB <F.IBCR_-^D18>,<IMBEDDED>
|
||
TB <F.IPCR_-^D18>,<IMPLIED>
|
||
ASCSIZ==.-ASCTAB-1
|
||
;
|
||
; RESPONSES FOR "INFORMATION" COMMAND
|
||
;
|
||
INFTAB:
|
||
XWD INFSIZ,INFSIZ
|
||
TB INFADR,<ADDRESS>
|
||
TB INFALL,<ALL>
|
||
TB INFCR,<CRLF>
|
||
TB INFIGN,<IGNORE>
|
||
TB INFMOD,<MODE>
|
||
TB INFRCD,<RECORD-SIZE>
|
||
IF TOPS-20,<
|
||
TB INFTMP,<TEMPORARY>
|
||
> ; END CONDITIONAL ON TOPS-20
|
||
INFSIZ==.-INFTAB-1
|
||
;
|
||
DEFINE X(AAA,BBB,C,DDD,E),<EXP ^D<C>B5>
|
||
BSZTAB:
|
||
FORMAT
|
||
;
|
||
; GRC=GET RECORD BYTE COUNT
|
||
; PRC=PUT RECORD BYTE COUNT
|
||
; GBY=GET BYTE
|
||
; PBY=PUT BYTE
|
||
; EIR=END INPUT RECORD
|
||
; EOR=END OUTPUT RECORD
|
||
;
|
||
DEFINE DSP(NAME),< IRP NAME,<
|
||
DEFINE X(A,B,C,D,E),<Z A''NAME>
|
||
NAME'TAB:
|
||
FORMAT
|
||
>>
|
||
DSP <GRC,PRC,GBY,PBY,EIR,EOR>
|
||
;
|
||
; TABLE OF DEFAULT FILE TYPES
|
||
;
|
||
EXTTAB:
|
||
XWD EXTSIZ,EXTSIZ
|
||
IF TOPS-20, <
|
||
TB M$RSB,BIN
|
||
TB <<1B0!F.TIBC>_-^D18>,DIR
|
||
TB M$SAV,EXE
|
||
TB <<1B0!F.TLFS>_-^D18>,LST
|
||
TB <<1B0!F.TIBC>_-^D18>,MAP
|
||
TB M$RSB,OBJ
|
||
TB M$RSB,OLB
|
||
TB M$RAM,RAM
|
||
TB M$SAV,SAV
|
||
TB M$RSB,STB
|
||
> ; END CONDITIONAL ON TOPS-20
|
||
;
|
||
IF TOPS-10, <
|
||
DEFINE XX (A,B)<XWD [SIXBIT /B/],A>
|
||
|
||
XX M$RSB,BIN
|
||
XX <<1B0!F.TIBC>_-^D18>,DIR
|
||
XX M$SAV,EXE
|
||
XX <<1B0!F.TLFS>_-^D18>,LST
|
||
XX <<1B0!F.TIBC>_-^D18>,MAP
|
||
XX M$RSB,OBJ
|
||
XX M$RSB,OLB
|
||
XX M$RAM,RAM
|
||
XX M$SAV,SAV
|
||
XX M$RSB,STB
|
||
> ; END CONDITIONAL ON TOPS-10
|
||
EXTSIZ==.-EXTTAB-1
|
||
IF TOPS-20, <
|
||
;
|
||
; PSI TABLES
|
||
;
|
||
LEVTAB:
|
||
EXP CHN1PC
|
||
;
|
||
CHNTAB==.-^D10
|
||
XWD 1,EOFTRP
|
||
> ; END CONDITIONAL ON TOPS-20
|
||
SUBTTL TOPS-10 I/O AREAS
|
||
|
||
; TELETYPE DEVICE BLOCK AND BUFFER HEADERS
|
||
|
||
IF TOPS-10, <
|
||
TTYOPN:
|
||
EXP .IOASC ; ASCII MODE
|
||
SIXBIT /TTY/
|
||
XWD TTOBLK,TTIBLK ; HEADER POINTERS
|
||
|
||
TTOBLK:
|
||
BLOCK 3 ; OUTPUT HEADER
|
||
TTIBLK:
|
||
BLOCK 3 ; INPUT HEADER
|
||
|
||
; COMMAND DEVICE BLOCK, LOOKUP BLOCK AND BUFFER HEADERS
|
||
|
||
CMDLEB:
|
||
BLOCK 5 ; COMMAND LOOKUP BLOCK
|
||
|
||
CMDOPN:
|
||
EXP .IOASL ; FILE MODE IS ASCII LINE
|
||
SIXBIT /DSK/ ; DEFAULT IS "DSK:"
|
||
EXP CMDBLK ; INPUT ONLY
|
||
|
||
CMDBLK:
|
||
BLOCK 3 ; COMMAND BUFFER HEADER
|
||
|
||
; INPUT DEVICE BLOCK, LOOKUP BLOCK AND BUFFER HEADERS
|
||
|
||
INPLEB:
|
||
BLOCK 5 ; INPUT LOOKUP BLOCK
|
||
|
||
INOPN:
|
||
EXP 0 ; FILE MODE GOES HERE
|
||
SIXBIT /DSK/ ; DEFAULT IS "DSK:"
|
||
EXP INPBLK ; INPUT ONLY
|
||
|
||
INPBLK:
|
||
BLOCK 3 ; INPUT BUFFER HEADER
|
||
|
||
; OUTPUT DEVICE BLOCK, ENTER BLOCK AND BUFFER HEADERS
|
||
|
||
OUTLEB:
|
||
BLOCK 5 ; OUTPUT ENTER BLOCK
|
||
|
||
OUTOPN:
|
||
EXP 0 ; FILE MODE GOES HERE
|
||
SIXBIT /DSK/ ; DEFAULT IS "DSK:"
|
||
XWD OUTBLK,0 ; OUTPUT ONLY
|
||
|
||
OUTBLK:
|
||
BLOCK 3 ; OUTPUT BUFFER HEADER
|
||
|
||
> ; END CONDITIONAL ON TOPS-10
|
||
|