mirror of
https://github.com/PDP-10/its.git
synced 2026-03-04 10:44:38 +00:00
Build ARCDEV.
This commit is contained in:
2
Makefile
2
Makefile
@@ -1,5 +1,5 @@
|
||||
SRC = system syseng sysen1 sysen2 sysnet kshack midas _teco_ rms klh
|
||||
MINSYS = _ sys sys3
|
||||
MINSYS = _ sys sys3 device
|
||||
RAM = bin/boot/ram.262
|
||||
NSALV = bin/boot/salv.rp06
|
||||
DSKDMP = bin/boot/dskdmp.rp06
|
||||
|
||||
@@ -40,5 +40,6 @@ from scratch.
|
||||
- ATSIGN DEVICE, load device drivers.
|
||||
- TCTYP and CRTSTY, terminal handling.
|
||||
- PEEK, system monitoring.
|
||||
- ARCDEV, transparent file system access to archive files.
|
||||
|
||||
4. Finally, the whole file system is dumped to tape.
|
||||
|
||||
BIN
bin/device/oarcdv.bin
Executable file
BIN
bin/device/oarcdv.bin
Executable file
Binary file not shown.
@@ -172,6 +172,10 @@ respond "*" "purify\033g"
|
||||
respond "Idle" "q"
|
||||
expect ":KILL"
|
||||
|
||||
respond "*" ":midas device;jobdev arc_syseng;arcdev\r"
|
||||
expect ":KILL"
|
||||
respond "*" ":link device;jobdev ar,device;jobdev arc\r"
|
||||
|
||||
respond "*" "\005"
|
||||
respond "sim>" "at tu0 out/output.tape\r"
|
||||
respond "sim>" "c\r"
|
||||
|
||||
84
doc/sysdoc/arcdev.format
Executable file
84
doc/sysdoc/arcdev.format
Executable file
@@ -0,0 +1,84 @@
|
||||
;Archive device format:
|
||||
|
||||
;The first page of an archive device file is its directory.
|
||||
;The remaining pages are data.
|
||||
|
||||
;The directory may not even be looked at unless the archive is "locked".
|
||||
.SEE LOCK,UNLOCK ;Only one ARCDEV can lock a given archive at a time.
|
||||
;Shuffling the directory should not be done in place, even when it is locked.
|
||||
;Instead, use DIRGET to make a copy and DIRPUT to store the copy back in.
|
||||
;When a file is open, the address of its data area is remembered in FILADR.
|
||||
;The data area of a file never moves, and the file can be open only in one
|
||||
;direction at a time, so reading or writing the data area requires no interlocking.
|
||||
|
||||
;The format of the archive device directory is approximately that of
|
||||
;an I.T.S. UFD. The differences are:
|
||||
|
||||
;In the fixed header, word 0 (UDESCP) contains SIXBIT /ARC1!!/
|
||||
;Word 1 points to the beginning of the name area, as in UFDs.
|
||||
;Word 2 points to the end of the data area.
|
||||
;Word 3 is used to tell when the archive needs to be cleaned
|
||||
; because it is being touched for the first time since the system came up.
|
||||
;Word 4 contains what is supposed to be the creation date of the archive.
|
||||
; Since locking the archive device clobbers the creation date,
|
||||
; we store it here so we can restore it after clobbering it.
|
||||
;Word 5 similarly stores the dumped bit.
|
||||
|
||||
;There is nothing analogous to the "descriptors" in a disk UFD.
|
||||
|
||||
;Random info in UFD
|
||||
UDESCP==0 ;SIXBIT /ARC1!!/
|
||||
UDNAMP==1 ;Address in directory of first filename block.
|
||||
UDDATP==2 ;Address of first free word past data area of last file.
|
||||
UDINIT==3 ;Time of startup of last run of system during which this
|
||||
;archive was cleaned (ARCCLN). If not same as startup time
|
||||
;of this run of the system, we must do ARCCLN.
|
||||
UDCRDT==4 ;This word holds what ought to be the creation date
|
||||
;of the archive device file itself.
|
||||
;0 => this archive antedates the UDCRDT word, in which
|
||||
;case it gets set from today's date.
|
||||
UDDMPB==5 ;This is like UDCRDT but stores the dumped bit.
|
||||
|
||||
UDNMIN==10 ;If UDNAMP is less than this, there is no room for another filename block.
|
||||
|
||||
;In each filename block, the UNFN1, UNFN2, UNDATE and UNREF words are
|
||||
;just as in UFDs. The UNRNDM word is slightly different:
|
||||
|
||||
LUNBLK==5 ;Number of words in each filename block.
|
||||
UNFN1==0 ;First file name.
|
||||
UNFN2==1 ;Second file name.
|
||||
UNRNDM==2 ;All kinds of random info:
|
||||
;The RH is the address in the file of the start of the file's data area header.
|
||||
;The LH contains these bits:
|
||||
UNWRIT==4 ;Open for writing. Not actually maintained in the archive,
|
||||
;Just reflected to the user when he reads ARC:.FILE. (DIR).
|
||||
UNCDEL==20 ;Delete this file when it is closed.
|
||||
UNIGFL==24 ;Bits to ignore file
|
||||
UNWRDC==301200,, ;Word count of last block mod 2000.
|
||||
;This information really lives in UHWCNT, and is just reflected
|
||||
;here when the user reads the image directory.
|
||||
UNDATE==3 ;Date and time file last modified.
|
||||
UNTIM==2200,, ;Compacted time of creation
|
||||
UNYMD==222000,, ;Y,M,D of creation
|
||||
UNMON==270400,, ;Month
|
||||
UNDAY==220500,, ;Day
|
||||
UNYRB==330700,, ;Year
|
||||
UNREF==4 ;Reference date same as left half of undate
|
||||
UNREFD==222000,, ;Reference date byte pointer
|
||||
UNAUTH==111100,, ;MFD index of author, all 1=> no directory.
|
||||
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.
|
||||
|
||||
|
||||
;The data of a file starts with two words of header information:
|
||||
UHWCNT==0 ;Total length of the file's data, including header, in words.
|
||||
UHREFC==1 ;RH: Number of archives using the file, in either direction.
|
||||
;LH: -1 if file open for writing.
|
||||
UHNAMP==2 ;Unused
|
||||
UHBLEN==3 ;Length of this header; offset to 1st actual data word.
|
||||
|
||||
1962
src/syseng/arcdev.69
Executable file
1962
src/syseng/arcdev.69
Executable file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user