mirror of
https://github.com/PDP-10/its.git
synced 2026-01-28 12:59:20 +00:00
Added channa and dragon directories, and added sources for netime,
dmpcpy, fsdefs, modems, netwrk, and pft.
This commit is contained in:
committed by
Lars Brinkhoff
parent
62551208c4
commit
336bbaa979
153
src/syseng/dmpcpy.11
Executable file
153
src/syseng/dmpcpy.11
Executable file
@@ -0,0 +1,153 @@
|
||||
; -*- MIDAS -*-
|
||||
|
||||
TITLE DMPCPY - COPY DUMPS FROM SWAP AREA TO FILE AREA
|
||||
|
||||
A=1
|
||||
B=2
|
||||
C=3
|
||||
D=4
|
||||
E=5
|
||||
T=6
|
||||
TT=7
|
||||
P=17
|
||||
|
||||
CHDIRI=10
|
||||
CHDSKI=11
|
||||
CHDSKO=12
|
||||
|
||||
.INSRT SYSENG;FSDEFS >
|
||||
|
||||
PDL: -20,,.
|
||||
BLOCK 20
|
||||
|
||||
;DIRECTORIES WHERE STUFF MIGHT GET DUMPED OUT OF TIMESHARING
|
||||
DIRLST: SIXBIT/./
|
||||
SIXBIT/CRASH/
|
||||
SIXBIT/CRASH2/
|
||||
NDIRS==.-DIRLST
|
||||
|
||||
DIR: BLOCK 2000
|
||||
BUF: BLOCK 2000
|
||||
|
||||
USRVAR: SIXBIT /OPTION/ ? TLO %OPINT\%OPOPC
|
||||
SIXBIT /MASK/ ? MOVE [%PIIOC\%PIPDL]
|
||||
LUSRVAR==:.-USRVAR
|
||||
|
||||
GO: .CLOSE 1, ;RUNS AS DAEMON
|
||||
MOVE P,PDL
|
||||
MOVE TT,[-LUSRVAR,,USRVAR]
|
||||
.CALL [ SETZ ? SIXBIT /USRVAR/
|
||||
MOVEI %JSELF
|
||||
SETZ TT ]
|
||||
.LOSE %LSSYS
|
||||
CHKTIM: .CALL [ SETZ ? SIXBIT /RQDATE/ ; don't frob with files
|
||||
SETZM A ] ; if system doesn't know the time
|
||||
.LOSE %LSSYS
|
||||
AOJN A,KNOTIM
|
||||
MOVEI A,30.*15. ; 15 seconds
|
||||
.SLEEP A,
|
||||
JRST CHKTIM
|
||||
|
||||
KNOTIM: MOVSI E,-NDIRS
|
||||
CHKDIR: .CALL [ SETZ ? SIXBIT/OPEN/
|
||||
[.BII,,CHDIRI]
|
||||
[SIXBIT/DSK/]
|
||||
[SIXBIT/.FILE./]
|
||||
[SIXBIT/(DIR)/]
|
||||
SETZ DIRLST(E)]
|
||||
JRST NXTDIR ; Hey, there might not -be- such a directory!
|
||||
MOVE TT,[-2000,,DIR]
|
||||
.IOT CHDIRI,TT
|
||||
.CLOSE CHDIRI,
|
||||
MOVE D,UDNAMP+DIR
|
||||
CHKFIL: CAIL D,2000
|
||||
JRST NXTDIR
|
||||
MOVE TT,UNRNDM+DIR(D)
|
||||
SKIPGE UNDATE+DIR(D)
|
||||
TLNE TT,UNDUMP\UNIGFL\UNREAP\UNLINK ; Don't screw with files
|
||||
JRST NXTFIL ; you don't understand.
|
||||
;HERE WE HAVE FOUND A FILE WRITTEN OUT OF TIMESHARING
|
||||
;COPY IT SO AS TO (1) SET THE FILE DATE AND (2) GET IT OUT
|
||||
; OF THE SWAPPING AREA. NTS FILES ARE WRITTEN IN THE SWAPPING
|
||||
; AREA TO DECREASE THE PROBABILITY OF CLOBBERING SOME OTHER FILE.
|
||||
.CALL [ SETZ ? SIXBIT/OPEN/
|
||||
MOVES TT
|
||||
[.BII,,CHDSKI]
|
||||
[SIXBIT/DSK/]
|
||||
UNFN1+DIR(D)
|
||||
UNFN2+DIR(D)
|
||||
SETZ DIRLST(E) ]
|
||||
JSP T,[ CAIE TT,%ENSFL ; perhaps a hacker deleted it
|
||||
CAIN TT,%ENAPK ; perhaps that pack had to go offline
|
||||
JRST NXTFIL
|
||||
JRST LOSE ]
|
||||
.CALL [ SETZ ? SIXBIT/OPEN/
|
||||
MOVES TT
|
||||
[.BIO,,CHDSKO]
|
||||
[SIXBIT/DSK/]
|
||||
[SIXBIT/_DMPCP/]
|
||||
[SIXBIT/OUTPUT/]
|
||||
SETZ DIRLST(E) ]
|
||||
JSP T,[ CAIE TT,%EFLDR
|
||||
JRST LOSE
|
||||
MOVEI TT,30.*60.*5 ; 5 minutes
|
||||
.SLEEP TT,
|
||||
JRST .-1 ]
|
||||
CPYFIL: MOVE TT,[-2000,,BUF]
|
||||
.IOT CHDSKI,TT
|
||||
MOVEI T,-BUF(TT)
|
||||
JUMPE T,ENDFIL
|
||||
MOVNS T
|
||||
MOVSS T
|
||||
HRRI T,BUF
|
||||
.IOT CHDSKO,T
|
||||
JRST CPYFIL
|
||||
|
||||
ENDFIL: .CLOSE CHDSKI,
|
||||
.CALL [ SETZ ? 'RENMWO
|
||||
MOVEI CHDSKO
|
||||
UNFN1+DIR(D)
|
||||
SETZ UNFN2+DIR(D) ]
|
||||
.LOSE %LSSYS
|
||||
.CLOSE CHDSKO,
|
||||
NXTFIL: ADDI D,LUNBLK
|
||||
JRST CHKFIL
|
||||
|
||||
NXTDIR: AOBJN E,CHKDIR
|
||||
.LOGOUT 1,
|
||||
.VALUE
|
||||
|
||||
; JSP T,LOSE is like .LOSE %LSFIL(TT)
|
||||
LOSE: .CALL [ SETZ ? SIXBIT /LOSE/
|
||||
MOVEI %LSFIL(TT)
|
||||
SETZI -2(T) ]
|
||||
.LOSE %LSSYS
|
||||
|
||||
TSINT:
|
||||
LOC 42
|
||||
-LTSINT,,TSINT
|
||||
LOC TSINT
|
||||
P
|
||||
%PIIOC ? 0 ? %PIIOC ? 0 ? IOCINT
|
||||
LTSINT==:.-TSINT
|
||||
|
||||
; If there is a disk or directory full problem, wait for someone to notice.
|
||||
IOCINT: PUSH P,T
|
||||
.SUSET [.RBCHN,,T]
|
||||
CAIE T,CHDSKO
|
||||
.LOSE
|
||||
.STATUS CHDSKO,T
|
||||
LDB T,[330500,,T]
|
||||
CAIE T,11 ; DEVICE FULL
|
||||
CAIN T,14 ; DIRECTORY FULL
|
||||
JRST WAIT
|
||||
.VALUE
|
||||
|
||||
WAIT: MOVEI T,30.*60.*5 ; 5 minutes
|
||||
.SLEEP T,
|
||||
POP P,T
|
||||
.CALL [ SETZ ? SIXBIT /DISMIS/
|
||||
SETZ P ]
|
||||
.LOSE %LSSYS
|
||||
|
||||
END GO
|
||||
154
src/syseng/fsdefs.40
Executable file
154
src/syseng/fsdefs.40
Executable file
@@ -0,0 +1,154 @@
|
||||
.AUXIL
|
||||
|
||||
IFNDEF DEFSYM,[ ;ALLOW USER TO USE SYMBOLS IN OTHER WAYS IF HE WISHES.
|
||||
;BUT NORMALLY, DEFSYM FOO==BAR DOES FOO==BAR WITH ERROR CHECK.
|
||||
DEFINE DEFSYM X/
|
||||
IRPS Z,,[X]
|
||||
IFNDEF Z,X
|
||||
.ELSE [
|
||||
$$TEM1==Z
|
||||
X
|
||||
IFN Z-$$TEM1,.ERR Z MULTIPLY .QUOTE`.QUOTE/DEFINED/`
|
||||
]
|
||||
.ISTOP
|
||||
TERMIN TERMIN
|
||||
|
||||
IFLE .MLLIT,.ERR .MLLIT MUST BE 1; SETTING IT TO 1.
|
||||
.MLLIT==1
|
||||
$$TEMP==1
|
||||
]
|
||||
.ELSE $$TEMP==0
|
||||
|
||||
;FILE SYSTEM PARAMETERS - APPLIES TO ALL ITS MACHINES
|
||||
|
||||
;9/5/79 - tut format changed!
|
||||
|
||||
;MFD INFO
|
||||
|
||||
IFDEF NBLKS,[ ;MFDBLK KNOWN ONLY IF .INSRT APPROPRIATE PHYSICAL PARAMS FILE
|
||||
DEFSYM MFDBLK==NBLKS/2-1 ;LOC ON DISK
|
||||
DEFSYM MFDCYL==MFDBLK/NBLKSC
|
||||
DEFSYM MFDSRF==<MFDBLK-MFDCYL*NBLKSC>*SECBLK/NSECS
|
||||
DEFSYM MFDSEC==<MFDBLK-MFDCYL*NBLKSC>*SECBLK-MFDSRF*NSECS
|
||||
]
|
||||
;RANDOM INFO IN MFD
|
||||
DEFSYM MDNUM==0 ;ASCENDING DIR NUM
|
||||
DEFSYM MDNAMP==1 ;PNTR TO ORG OF USER NAME BLOCK AREA
|
||||
DEFSYM MDYEAR==2 ;CURRENT YEAR
|
||||
DEFSYM MPDOFF==3 ;DE-CORIOLIS CLOCK OFFSET
|
||||
DEFSYM MPDWDK==4 ;PREFERRED WRITING DISK (PHYSICAL DRIVE #)
|
||||
DEFSYM MDCHK==5 ;THIS WORD MUST BE M.F.D. (FOR CHECKING)
|
||||
DEFSYM MDNUDS==6 ;NUMBER USER DIRECTORIES (FOR CHECKING ONLY)
|
||||
DEFSYM LMIBLK==7 ;TOTAL STG USED BY HACKS LIKE THIS
|
||||
;USER NAME BLKS FROM C(MDNAMP) TO END
|
||||
DEFSYM LMNBLK==2 ;# WDS/BLK
|
||||
DEFSYM MNUNAM==0 ;6BIT USER NAME
|
||||
;SECOND WORD OF A USER-NAME BLOCK IS ZERO.
|
||||
;DECUUO CONTAINS A KLUDGE WHICH DEPENDS ON THIS,
|
||||
;PLEASE NOTIFY BUG-DECUUO BEFORE CHANGING IT.
|
||||
|
||||
;TUT INFO
|
||||
|
||||
IFDEF NBLKS,[
|
||||
DEFSYM TUTBLK==MFDBLK-NTUTBL ;LOC ON DISK
|
||||
DEFSYM TUTCYL==TUTBLK/NBLKSC
|
||||
DEFSYM TUTSRF==<TUTBLK-TUTCYL*NBLKSC>*SECBLK/NSECS
|
||||
DEFSYM TUTSEC==<TUTBLK-TUTCYL*NBLKSC>*SECBLK-TUTSRF*NSECS
|
||||
]
|
||||
DEFSYM TUTBYT==3 ;SIZE OF BYTES (USED TO BE 4)
|
||||
DEFSYM TUTBP==<440000+TUTBYT_6>,,
|
||||
DEFSYM TUTEPW==36./TUTBYT ;NUMBER OF ENTRIES PER WORD
|
||||
DEFSYM TUTMAX==1_TUTBYT
|
||||
DEFSYM TUTLK==TUTMAX-1 ;HIGHEST CODE MEANS LOCKED OUT
|
||||
DEFSYM TUTMNY==TUTLK-1 ;TUT MANY OR MORE REFS
|
||||
|
||||
;RANDOM INFO IN TUT (AT THE FRONT)
|
||||
DEFSYM QPKNUM==0 ;PACK #
|
||||
DEFSYM QPAKID==1 ;PACK ID
|
||||
DEFSYM QTUTP==2 ;FREE SPACE POINTER TO TRACK AREA. ADVANCE BY CYLINDERS
|
||||
DEFSYM QSWAPA==3 ;SWAPPING AREA. FIRST TRACK OF NON-SWAPPING AREA
|
||||
;NEW FILES WILL NOT BE WRITTEN LOWER THAN THIS.
|
||||
DEFSYM QFRSTB==4 ;FIRST BLOCK TUT'ED
|
||||
DEFSYM QLASTB==5 ;LAST BLOCK TUT'ED
|
||||
DEFSYM QTRSRV==6 ;-1 IF ONLY ALLOCATED DIRS CAN HAVE FILES ON THIS PACK
|
||||
;IF NOT 0 AND NOT -1, SIXBIT NAME OF "SECONDARY" PACK
|
||||
;STG FOR RANDOM INFO ^
|
||||
DEFSYM LTIBLK==20 ;BYTES MAPPING THE DISK START HERE
|
||||
|
||||
;UFD INFO
|
||||
;IF A IS RELATIVE LOCATION OF MFD ENTRY, USER DIR IS LOCATED IN
|
||||
;TRACK NUMBERED <A-2000+2*MDNUDS>/2 (SEE QFL2)
|
||||
|
||||
DEFSYM UFDBYT==6 ;SIZE OF BYTES (Do not change!)
|
||||
DEFSYM UFDBPW==36./UFDBYT ;NUMBER OF BYTES PER WORD
|
||||
|
||||
;RANDOM INFO IN UFD
|
||||
DEFSYM UDESCP==0 ;FS PNTR TO DESC AREA
|
||||
DEFSYM UDNAMP==1 ;PNTR TO ORG OF NAME AREA
|
||||
DEFSYM UDNAME==2 ;USER NAME (FOR CHECKING)
|
||||
DEFSYM UDBLKS==3 ;LEFT HALF HAS AMOUNT OF SPACE ALLOCATED (NOT USED
|
||||
; CURRENTLY BY SYSTEM), RIGHT HALF HAS NUMBER OF BLOCKS USED.
|
||||
DEFSYM UDALLO==4 ;IF NONZERO, LEFT HALF HAS DISK NUMBER, RIGHT
|
||||
; HALF HAS AMOUNT OF SPACE ALLOCATED
|
||||
DEFSYM UDDESC==11. ;FIRST LOC AVAIL FOR DESC
|
||||
|
||||
;UFD DESCRIPTORS
|
||||
;0 => FREE 1-UDTKMX => TAKE NEXT N
|
||||
;UDTKMX+1 THRU UDWPH-1 => SKIP N-UDTKMX AND TAKE ONE
|
||||
;UDWPH => WRITE-PLACE-HOLDER
|
||||
;40 BIT SET => LOAD ADDRESS. LOWER 5 BITS PLUS NEXT NXLBYT (2)
|
||||
; CHARS (17 BITS IN ALL)
|
||||
;40 BIT & 20 BIT => "FUNNY" BLOCK IF DMDSK. WHAT IS THIS, ANYWAY?
|
||||
;END BY 0
|
||||
|
||||
;IF LINK DESCR
|
||||
;6 CHAR OR UNTIL ; = SYS NAME. MUST HAVE NO CHAR = 0 IN THIS OR NEXT 2 NAMES
|
||||
;NEXT CHAR QUOTED BY : (FOR NAMES WITH : OR ;)
|
||||
;NEXT CHAR N1
|
||||
;NEXT CHAR N2
|
||||
;END BY 0
|
||||
|
||||
DEFSYM UDTKMX==12. ;HIGHEST "TAKE N" CODE
|
||||
DEFSYM UDWPH==31. ;PLACE HOLDER ON WRITE (OR NULL FILE)
|
||||
DEFSYM UDSKMX==UDWPH-UDTKMX-1 ;# BLOCKS THAT CAN BE SKIPPED
|
||||
DEFSYM NXLBYT==2 ;# ADDITIONAL BYTES FOR LOAD ADDR
|
||||
;IN SYSTEM THIS IS DEFINED AT FRONT OF FILE
|
||||
|
||||
;NAME AREA DATA
|
||||
|
||||
DEFSYM LUNBLK==5 ;WDS/NAME BLK
|
||||
DEFSYM UNFN1==0 ;FIRST FN
|
||||
DEFSYM UNFN2==1 ;SECOND FN
|
||||
DEFSYM UNRNDM==2 ;ALL KINDS OF RANDOM INFO
|
||||
DEFSYM UNDSCP==1500,, ;PNTR TO DESC
|
||||
DEFSYM UNPKN==150500,, ;PACK #
|
||||
DEFSYM UNLINK==1 ;LINK BIT
|
||||
DEFSYM UNLNKB==220100,,
|
||||
DEFSYM UNREAP==2 ;IF 1, DONT REAP FILE
|
||||
DEFSYM UNWRIT==4 ;OPEN FOR WRITING
|
||||
DEFSYM UNMARK==10 ;GC MARK BIT
|
||||
DEFSYM UNCDEL==20 ;DEL WHEN CLOSED
|
||||
DEFSYM DELBTS==20 ;DELETED -- IGNORE
|
||||
DEFSYM UNIGFL==24 ;BITS TO IGNORE FILE
|
||||
DEFSYM UNWRDC==301200,, ;WORD COUNT OF LAST BLOCK MOD 2000
|
||||
DEFSYM UNDUMP==400000 ;HAS BEEN DUMPED
|
||||
DEFSYM UNDATE==3 ;DATE ETC.
|
||||
DEFSYM UNTIM==2200,, ;COMPACTED TIME OF CREATION
|
||||
DEFSYM UNYMD==222000,, ;Y,M,D OF CREATION
|
||||
DEFSYM UNMON==270400,, ;MONTH
|
||||
DEFSYM UNDAY==220500,, ;DAY
|
||||
DEFSYM UNYRB==330700,, ;YEAR
|
||||
DEFSYM UNREF==4 ;REFERENCE DATE SAME AS LEFT HALF OF UNDATE
|
||||
DEFSYM UNREFD==222000,, ;REFERENCE DATE BYTE POINTER
|
||||
DEFSYM UNAUTH==111100,, ;MFD INDEX OF AUTHOR, ALL 1=> NO DIRECTORY
|
||||
DEFSYM UNBYTE==001100,, ;FILE BYTE SIZE AND LENGTH INFO.
|
||||
;LET S=BITS PER BYTE, C=COUNT OF UNUSED BYTES IN LAST WD
|
||||
;400+100xS+C S=1 TO 3 C=0 TO 35.
|
||||
;200+20xS+C S=4 TO 7 C=0 TO 8
|
||||
;44+4xS+C S=8 TO 18. C=0 TO 3
|
||||
;44-S S=19. TO 36. C=0
|
||||
;NOTE THAT OLD FILES HAVE UNBYTE=0 => S=36.
|
||||
|
||||
IF1 IFDEF NUDSL, IFG NUDSL*LMNBLK+LMIBLK-2000,.ERR MFD LOSES
|
||||
|
||||
IFN $$TEMP,EXPUNG DEFSYM
|
||||
96
src/syseng/modems.20
Executable file
96
src/syseng/modems.20
Executable file
@@ -0,0 +1,96 @@
|
||||
; -*- Midas -*-
|
||||
|
||||
title MODEMS - Initialize Hairy Modems
|
||||
; Here in the future, modems are smarter than we are.
|
||||
|
||||
a=:1
|
||||
b=:2
|
||||
c=:3
|
||||
d=:4
|
||||
e=:5
|
||||
t=:6
|
||||
tt=:7
|
||||
|
||||
chttyo=:10
|
||||
|
||||
slose=:.lose %lssys
|
||||
quit=:.logout 1,
|
||||
tyo=:.iot chttyo,
|
||||
|
||||
define syscall name,args
|
||||
.call [setz ? sixbit /name/ ? args(400000)]
|
||||
termin
|
||||
|
||||
go: syscall sstatu,[repeat 6,[ ? movem a]]
|
||||
slose
|
||||
movsi b,-lmchtab
|
||||
came a,mchtab(b)
|
||||
aobjn b,.-1
|
||||
jumpge b,done
|
||||
move a,tabtab(b)
|
||||
loop: hlrz b,(a)
|
||||
syscall ttyvar,[movei 400000(b) ? [sixbit /TTYTYP/] ? movem c]
|
||||
slose
|
||||
trnn c,%tydil
|
||||
jrst next
|
||||
idivi b,10
|
||||
hrlzi c,'T00(c)
|
||||
lsh b,24.
|
||||
add b,c
|
||||
syscall open,[[.uao\%tjsio,,chttyo] ? b]
|
||||
jrst next
|
||||
syscall ttyget,[movei chttyo ? movem b ? movem b ? movem b]
|
||||
slose
|
||||
tlne b,%tscns
|
||||
jrst next ; Don't diddle our own console!
|
||||
.reset chttyo,
|
||||
syscall ttyset,[movei chttyo
|
||||
[<010101,,010101>*%tgact]
|
||||
[<010101,,010101>*%tgact]]
|
||||
slose
|
||||
hrrz b,(a)
|
||||
hrli b,440700
|
||||
jrst outlp1
|
||||
|
||||
; Each character is output preceeded by a 1/3 second pause.
|
||||
; Except ^P just causes a 2 second pause.
|
||||
; Except ^Q outputs the next character immediately.
|
||||
outlpq: ildb c,b
|
||||
outlp: tyo c
|
||||
outlp1: ildb c,b
|
||||
cain c,^Q
|
||||
jrst outlpq
|
||||
cain c,^P
|
||||
jrst [ MOVEI T,60. ? .SLEEP T, ? JRST OUTLP1 ] ; 2 secs
|
||||
movei t,10. ; 1/3 sec
|
||||
.sleep t,
|
||||
jumpn c,outlp
|
||||
.close chttyo,
|
||||
next: aobjn a,loop
|
||||
done: quit
|
||||
|
||||
mchtab: sixbit /AI/
|
||||
sixbit /MC/
|
||||
lmchtab==:.-mchtab
|
||||
|
||||
tabtab: -laitab,,aitab
|
||||
-lmctab,,mctab
|
||||
ifn <.-tabtab>-lmchtab, .err TABTAB wrong size
|
||||
|
||||
; On AI, T03 and T04 are connected to shitty maxel modems.
|
||||
aitab: 3,,maxel
|
||||
4,,maxel
|
||||
laitab==:.-aitab
|
||||
|
||||
; On MC, T01 and T02 are connected to shitty maxel modems.
|
||||
mctab: 1,,maxel
|
||||
2,,maxel
|
||||
lmctab==:.-mctab
|
||||
|
||||
maxel: asciz "+++îîîîîIîATZîATS0=1S2=26E0Q1î"
|
||||
|
||||
cnstnts:
|
||||
constants
|
||||
variables
|
||||
|
||||
end go
|
||||
2705
src/syseng/netwrk.266
Executable file
2705
src/syseng/netwrk.266
Executable file
File diff suppressed because it is too large
Load Diff
3678
src/syseng/pft.149
Executable file
3678
src/syseng/pft.149
Executable file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user