1
0
mirror of https://github.com/PDP-10/stacken.git synced 2026-04-19 08:29:59 +00:00
Files
Lars Brinkhoff 6e18f5ebef Extract files from tape images.
Some tapes could not be extracted.
2021-01-29 10:47:33 +01:00

424 lines
8.9 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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