s4.s: more comments
This commit is contained in:
+29
-27
@@ -229,10 +229,14 @@ putq: 0
|
|||||||
dac q1+1 ..
|
dac q1+1 ..
|
||||||
jmp putq i
|
jmp putq i
|
||||||
|
|
||||||
" NOTE!! srcdbs, collaps, dskrd, dskwr share the same "temp" vars!!
|
" NOTE!! srcdbs, collaps, dskrd, dskwr share the same "temp" vars:
|
||||||
|
" "t0" temp!!
|
||||||
|
" "t1" contains pointer to (addr, buffer)
|
||||||
|
" "t2" contains block number
|
||||||
|
|
||||||
" check if disk block number in AC in memory
|
" check if disk block number in AC in memory
|
||||||
" give skip return if block not found
|
" give skip return if block NOT found
|
||||||
|
|
||||||
srcdbs: 0
|
srcdbs: 0
|
||||||
dac 9f+t+2 "* lmq " save block number in t2
|
dac 9f+t+2 "* lmq " save block number in t2
|
||||||
-ndskbs " loop for number of buffers
|
-ndskbs " loop for number of buffers
|
||||||
@@ -241,10 +245,6 @@ srcdbs: 0
|
|||||||
dac 9f+t+1 "* lacq " in t1
|
dac 9f+t+1 "* lacq " in t1
|
||||||
1:
|
1:
|
||||||
lac 9f+t+2 "** crossed out " get desired block number
|
lac 9f+t+2 "** crossed out " get desired block number
|
||||||
" Phil: it looks to me like the next line
|
|
||||||
" is missing an indirect (t1 contains an address),
|
|
||||||
" but setting "i" breaks the kernel, so there must
|
|
||||||
" be something else missing/wrong as well!
|
|
||||||
sad 9f+t+1 i "** "8 i" written " match buffer block?
|
sad 9f+t+1 i "** "8 i" written " match buffer block?
|
||||||
jmp srcdbs i " yes: return without skip
|
jmp srcdbs i " yes: return without skip
|
||||||
law 65 "** crossed out " no: advance to next buffer
|
law 65 "** crossed out " no: advance to next buffer
|
||||||
@@ -256,35 +256,37 @@ srcdbs: 0
|
|||||||
jmp srcdbs i
|
jmp srcdbs i
|
||||||
|
|
||||||
collapse: 0
|
collapse: 0
|
||||||
cla " look for block zero
|
cla " look for free buffer
|
||||||
jms srcdbs " in memory?
|
jms srcdbs " found?
|
||||||
jmp 1f " yes
|
jmp 1f " yes
|
||||||
law dskbs
|
law dskbs " no: reuse last buffer
|
||||||
dac 9f+t+1 "** 9f+t+1 crossed out: 8 written in
|
dac 9f+t+1 "** 9f+t+1 crossed out: 8 written in
|
||||||
1:
|
1:
|
||||||
|
"** written: tad dm1
|
||||||
|
"** written: dac 8
|
||||||
lac 9f+t+1 "** 9f+t+1 crossed out: 8 written in
|
lac 9f+t+1 "** 9f+t+1 crossed out: 8 written in
|
||||||
dac 0f+1
|
dac 0f+1 " save as copy dest
|
||||||
tad d65 "** crossed out: d2-- original obscured
|
tad d65 "** crossed out w/ d2 " get start of next buffer
|
||||||
dac 0f
|
dac 0f " save as copy src
|
||||||
cma
|
cma
|
||||||
tad d1
|
tad d1
|
||||||
tad edskbsp
|
tad edskbsp " subtract from end of buffers
|
||||||
and o17777
|
and o17777 " mask to 13 bits
|
||||||
sna
|
sna " non-zero count?
|
||||||
jmp 0f+3
|
jmp 0f+3 " no: skip copy
|
||||||
dac 0f+2
|
dac 0f+2 " save as copy length
|
||||||
jms copy; 0:..; ..; ..
|
jms copy; 0:..; ..; .. " slide buffers up
|
||||||
-65
|
-65
|
||||||
tad edskbsp
|
tad edskbsp " get addr of last buffer
|
||||||
dac 9f+t
|
dac 9f+t " save in t0
|
||||||
tad d1
|
tad d1 " get block data pointer
|
||||||
dac 0f
|
dac 0f " save as copy dest
|
||||||
lac dskaddr
|
lac dskaddr " get block number
|
||||||
dac 9f+t i
|
dac 9f+t i " save in buffer header
|
||||||
jms copy; dskbuf; 0:..; 64
|
jms copy; dskbuf; 0:..; 64 " copy dskbuf to last buffer
|
||||||
jmp collapse i
|
jmp collapse i
|
||||||
|
|
||||||
" read logical disk block number (2..7999) in AC
|
" read logical disk block number (2..7999) in AC into dskbuf
|
||||||
dskrd: 0
|
dskrd: 0
|
||||||
jms betwen; d2; d7999
|
jms betwen; d2; d7999
|
||||||
|
|
||||||
@@ -323,7 +325,7 @@ t = t+3
|
|||||||
|
|
||||||
" called to read/write logical block into "dskbuf"
|
" called to read/write logical block into "dskbuf"
|
||||||
" AC/ block
|
" AC/ block
|
||||||
" jms dskio; dsld_bits
|
" jms dskio; DSLD_BITS
|
||||||
dskio: 0
|
dskio: 0
|
||||||
dac dskaddr
|
dac dskaddr
|
||||||
cll; idiv; 80
|
cll; idiv; 80
|
||||||
|
|||||||
Reference in New Issue
Block a user