mirror of
https://github.com/PDP-10/its.git
synced 2026-02-26 17:03:20 +00:00
NEWDEC - DECtape converter.
This commit is contained in:
@@ -1533,3 +1533,7 @@ expect ":KILL"
|
||||
# IBMASC
|
||||
respond "*" ":midas sys3;ts ibmasc_sysen1;ibmasc\r"
|
||||
expect ":KILL"
|
||||
|
||||
# NEWDEC
|
||||
respond "*" ":midas sys3;ts newdec_sysen1;newdec\r"
|
||||
expect ":KILL"
|
||||
|
||||
@@ -195,6 +195,7 @@
|
||||
- MUNCH, TV-munching square.
|
||||
- NAME, shows logged in users and locations, aka FINGER.
|
||||
- NETIME, network time dragon.
|
||||
- NEWDEC, DECtape converter.
|
||||
- NICNAM/NICWHO, look up someone in the Arpanet directory.
|
||||
- NIMLIN, a game of unknown features.
|
||||
- NODIPS, SUDS wirelister (without DIP definitions).
|
||||
|
||||
143
src/sysen1/newdec.18
Executable file
143
src/sysen1/newdec.18
Executable file
@@ -0,0 +1,143 @@
|
||||
TITLE DEC-MAC TAPE CONVERTER
|
||||
|
||||
;THIS PROGRAM IS STARTED AT LOCATION GO
|
||||
;AND TYPES "?" AFTER WHICH YOU ANSWER WITH A DIGIT 0-8
|
||||
;THE DRIVE (OR 0 IF ALREADY ON DISK) OF A NEW FMT DECTAPE
|
||||
;AND WRITES THE ENTIRE TAPE ONTO THE DISK AS FILE
|
||||
;.TEMP. .FILE. IT THEN GROVELS OVER THE CRAP AND
|
||||
;PRODUCES UP TO 22 FILES ON THE DISK BY THE SAME NAME
|
||||
;AND EXTENSION AS THE ORIGINAL DEC TAPE. IT
|
||||
;ALSO CLEANS THE COB-WEBBS OUT OF THE DISK DRIVE.
|
||||
|
||||
;IF FOR SOME REASON THE FILE .TEMP. .FILE. ALREADY
|
||||
;EXISTS, START THE PROGRAM AT LOCATION FDIR
|
||||
; OR INDICATE DRIVE "0"
|
||||
|
||||
|
||||
UTIC==1
|
||||
UTOC==2
|
||||
TYI==3
|
||||
TYO==4
|
||||
|
||||
A=1
|
||||
B=2
|
||||
C=3
|
||||
D=4
|
||||
P=5
|
||||
|
||||
GO: .OPEN TYI,[SIXBIT / TTY/]
|
||||
.VALUE [ASCIZ /TYI?/]
|
||||
.OPEN TYO,[SIXBIT / !TTY/]
|
||||
.VALUE [ASCIZ /TYO?/]
|
||||
.IOT TYO,["?]
|
||||
.IOT TYI,A
|
||||
SUBI A,"0 ;CHAR ZERO
|
||||
JUMPL A,.-3
|
||||
CAILE A,8 ;NUM 0-8 OK
|
||||
JRST .-5
|
||||
JUMPE A,FDIR ;0 MEANS DSK
|
||||
.UBLAT A,
|
||||
.VALUE [ASCIZ /UBLAT?/]
|
||||
DPB A,[400,,TPI]
|
||||
.OPEN UTIC,TPI
|
||||
.VALUE [ASCIZ /TPI?/]
|
||||
.OPEN UTOC,TPO
|
||||
.VALUE [ASCIZ /TPO?/]
|
||||
MOVEI A,111
|
||||
GO1: MOVE B,[-2000,,BUF]
|
||||
.IOT UTIC,B
|
||||
MOVE B,[-2000,,BUF]
|
||||
.IOT UTOC,B
|
||||
SOJG A,GO1
|
||||
.CLOSE UTIC,
|
||||
.CLOSE UTOC,
|
||||
MOVE A,TPI
|
||||
.UDISMT A,
|
||||
JFCL [ASCIZ /UNF?/]
|
||||
FDIR: MOVEI P,PDL
|
||||
PUSHJ P,OPEN
|
||||
MOVEI A,100.
|
||||
PUSHJ P,GETBLK
|
||||
MOVE A,[BUF,,FILDIR]
|
||||
BLT A,FILDIR+177
|
||||
MOVEI A,0
|
||||
FDIR1: SKIPE FILDIR+83.(A)
|
||||
PUSHJ P,READ
|
||||
CAIGE A,21.
|
||||
AOJA A,FDIR1
|
||||
.VALUE [ASCIZ /:KILL /]
|
||||
|
||||
READ: PUSH P,A
|
||||
MOVE B,FILDIR+83.(A)
|
||||
MOVEM B,UTOCO+1
|
||||
HLLZ B,FILDIR+105.(A)
|
||||
SKIPN B
|
||||
MOVSI B,(SIXBIT /@/)
|
||||
MOVEM B,UTOCO+2
|
||||
MOVEI D,0
|
||||
MOVE B,[440500,,FILDIR]
|
||||
AOS A ;LOC 0 => FILE 1
|
||||
RD2: ILDB C,B
|
||||
AOS D
|
||||
CAMN C,A
|
||||
JRST FOUND
|
||||
CAIL D,576.
|
||||
.VALUE [ASCIZ /BLK?/]
|
||||
JRST RD2
|
||||
|
||||
|
||||
FOUND: MOVE A,D
|
||||
.OPEN UTOC,UTOCO
|
||||
.VALUE [ASCIZ /OUT?/]
|
||||
PUSHJ P,GETBLK
|
||||
LDB A,[101200,,BUF]
|
||||
CAME A,D
|
||||
GET: PUSHJ P,GETBLK
|
||||
LDB A,[700,,BUF]
|
||||
MOVNS A
|
||||
MOVSS A
|
||||
HRRI A,BUF+1
|
||||
.IOT UTOC,A
|
||||
HLRZ A,BUF
|
||||
JUMPN A,GET
|
||||
.CLOSE UTOC,
|
||||
POP P,A
|
||||
POPJ P,
|
||||
|
||||
OPEN: .OPEN UTIC,UTICO
|
||||
.VALUE [ASCIZ /TEMP?/]
|
||||
POPJ P,
|
||||
|
||||
GETBLK:
|
||||
READBK: PUSH P,A
|
||||
SOS A
|
||||
IMULI A,200
|
||||
.ACCESS UTIC,A
|
||||
MOVE A,[-200,,BUF]
|
||||
.IOT UTIC,A
|
||||
POP P,A
|
||||
POPJ P,
|
||||
|
||||
|
||||
UTICO: SIXBIT / &DSK/
|
||||
SIXBIT /.TEMP./
|
||||
SIXBIT /.FILE./
|
||||
|
||||
UTOCO: SIXBIT / 'DSK/
|
||||
0
|
||||
0
|
||||
|
||||
PDL: BLOCK 69
|
||||
BUF: BLOCK 2000
|
||||
FILDIR: BLOCK 200
|
||||
|
||||
TPI: SIXBIT / &UT0/
|
||||
SIXBIT /FOO/
|
||||
SIXBIT /BAR/
|
||||
|
||||
TPO: SIXBIT / 'DSK/
|
||||
SIXBIT /.TEMP./
|
||||
SIXBIT /.FILE./
|
||||
|
||||
END GO
|
||||
ð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒ
|
||||
Reference in New Issue
Block a user