mirror of
https://github.com/DoctorWkt/unix-jun72.git
synced 2026-02-01 22:43:27 +00:00
58 lines
2.2 KiB
Plaintext
58 lines
2.2 KiB
Plaintext
/ free rest of drum
|
|
|
|
.if cold
|
|
mov $128.,systm / initialize word 1 of drum superblock image;
|
|
/ number of bytes in free storage map=128.
|
|
mov $64.,systm+2+128. / init. wd 66. of superblock image; # of
|
|
/ bytes in i-node map=64.
|
|
1:
|
|
dec r1 / r1=687.,...,34.
|
|
jsr r0,free / free block 'r1', i.e., set bit 'r1' in free
|
|
/ storage map in core
|
|
cmp r1,$34. / first drum address not in i list
|
|
bgt 1b / if block 34 has been freed, zero i list
|
|
|
|
/ zero i list
|
|
|
|
1:
|
|
dec r1 / r1=33.,...,1
|
|
jsr r0,clear / zero block 'r1' on fixed head disk
|
|
tst r1
|
|
bgt 1b / if blocks 33,...,1 have all been zeroed, done.
|
|
.endif
|
|
|
|
/ make current program a user
|
|
|
|
mov $41.,r0 / rootdir set to 41 and never changed
|
|
mov r0,rootdir / rootdir is i-number of root directory
|
|
mov r0,u.cdir / u.cdir is i-number of process current directory
|
|
mov $1,r0
|
|
movb r0,u.uno / set process table index for this process to 1
|
|
mov r0,mpid / initialize mpid to 1
|
|
mov r0,p.pid / p.pid identifies process
|
|
movb r0,p.stat / process status = 1 i.e., active
|
|
/ = 0 free
|
|
.if cold / = 2 waiting for a child to die
|
|
/ = 3 terminated but not yet waited
|
|
/ for
|
|
|
|
/ initialize inodes for special files (inodes 1 to 40.)
|
|
|
|
mov $40.,r1 / set r1=i-node-number 40.
|
|
1:
|
|
jsr r0,iget / read i-node 'r1' from disk into inode area of
|
|
/ core and write modified inode out (if any)
|
|
mov $100017,i.flgs / set flags in core image of inode to indi-
|
|
/ cate allocated, read (owner, non-owner),
|
|
/ write (owner, non-owner)
|
|
movb $1,i.nlks / set no. of links = 1
|
|
movb $1,i.uid / set user id of owner = 1
|
|
jsr r0,setimod / set imod=1 to indicate i-node modified, also
|
|
/ stuff time of modification into i-node
|
|
dec r1 / next i-node no. = present i-node no.-1
|
|
bgt 1b / has i-node 1 been initialized; no, branch
|
|
|
|
/ initialize i-nodes r1.,...,47. and write the root device, binary, etc.,
|
|
/ directories onto fixed head disk. user temporary, initialization prog.
|
|
|