sys comments

This commit is contained in:
Phil Budne
2016-03-31 22:53:27 -04:00
parent 9a8a4bae17
commit 208ed1dbf5
6 changed files with 211 additions and 209 deletions
+4 -4
View File
@@ -65,7 +65,7 @@ sysexit: " common system call exit code
1:
dzm .insys " clear "in system call" flag
jms chkint " pending user interrupt?
skp " no
skp " no, return to user
jmp .save " yes: dump core
jms copy; u.rq+2; 10; 6 " restore auto-index locations 10-15
lac u.rq+1 " restore auto-index location 9
@@ -77,7 +77,7 @@ sysexit: " common system call exit code
lac u.ac " restore AC register
jmp u.rq+8 i " return to user
" scheduler / idle loop
" scheduler / swapper / idle loop
swap: 0
ion
1:
@@ -176,8 +176,8 @@ locn:
" call:
" .insys/ 0
" jms chkint
" no: no interrupt, or intflg set (discards interrupt)
" yes: PI off, .insys set
" <already ".insys", no interrupt, or intflg set (ignore interrupt)>
" <found user interrupt: PI off, .insys set>
chkint: 0
lac .insys
sza " in system?
+1 -1
View File
@@ -216,7 +216,7 @@
sza " zero (read)
lac d1 " no: get write mode bit
sna " non-zero (write)?
lac d2 " no: get read mode bot
lac d2 " no: get read mode bit
dac mode " save for access call
lac u.cdir " get current working directory
jms namei; 0:0 " search for file
+3 -3
View File
@@ -330,9 +330,9 @@ rppti:
jmp .+3
alss 9
jmp passone
lac sfiles+3
sma
rsa
lac sfiles+3 " get sleep word
sma " high bit set?
rsa " no: reader select alphanumeric mode
1:
jms sleep; sfiles+3
jms swap
+4 -4
View File
@@ -248,13 +248,13 @@ dspinit: 0
jmp dspinit i
" "move display" (change display buffer pointer)
" called with new buffer pointer in AC??
" called with new buffer pointer in AC
movdsp: 0
iof
cdf
dac dspbufp
cdf " clear display flags (stop)
dac dspbufp " save display buf pointer
-1
dac .dspb
dac .dspb " .dspb = -1
ion
jmp movdsp i
+53 -52
View File
@@ -4,25 +4,25 @@
pibreak: " priority interrupt break processing "chain"
dac .ac " save interrupt AC
"** CROSSED OUT....
dpsf
jmp 1f " disable the Graphics-2 I/O
dpsf " skip on data phone flag set
jmp 1f " not set: check next device
dpcf
dprs
dac dpstat
sma ral
jmp 2f
dprc
dac dpchar
dpcf " clear dataphone flag
dprs " read dataphone status
dac dpstat " save for user
sma ral " REC FLG set? rotate flags left
jmp 2f " no
dprc " read char (bit zero set if parity correct)
dac dpchar " save for user
-1
dac dpread
lac dpstat
ral
dac dpread " dpread = -1
lac dpstat " get status back
ral " rotate up
2:
sma
jmp piret
sma " XMIT FLG set?
jmp piret " no: return from interrupt
-1
dac dpwrite
dac dpwrite " dpwrite = -1
jmp piret "** END OF CROSSOUT
1: clsf " clock overflow (line frequency ticks)?
@@ -40,7 +40,7 @@ pibreak: " priority interrupt break processing "chain"
cnop: " fetched as constant in iread
nop
-1
dac 7 " set location 7 to -1 (nothing ever clears it)
dac 7 " set location 7 to -1 (nothing ever checks/clears it?)
clon " enable clock interrupts, reset flag
lac ttydelay " tty delay positive?
spa " yes: skip to skp
@@ -49,16 +49,17 @@ cnop: " fetched as constant in iread
jms ttyrestart " yes: start output
"** START CROSSED OUT: written: lac tty
lac .dspb
sna
jmp piret
isz .dsptm
skp
jmp dsprestart
sad d3
jmp piret
isz .dspb
jmp piret
jmp dsprestart "** END CROSSED OUT
sna " .dspb != 0?
jmp piret " no: return
isz .dsptm " increment .dsptm; is zero?
skp " no
jmp dsprestart " yes: restart display
sad d3 " .dspb == 3?
jmp piret " yes: return
isz .dspb " increment .dspb; is zero?
jmp piret " no: return from interrupt
jmp dsprestart " yes: restart display
"** END CROSSED OUT
1: dssf " disk flag set?
jmp 1f " no
@@ -192,21 +193,21 @@ ttyrestart: 0
dac sfiles+2
jmp piret
1: rsf " paper tape ready?
1: rsf " paper tape reader ready?
jmp 1f " no
"** 01-s1.pdf page 44
lac npptchar
sna
jmp .+5
dac char
rrb
dac npptchar
sna " have saved char?
jmp .+5 " no: jump to second rrb
dac char " yes: save as current char
rrb " clear flag, read reader buffer
dac npptchar " save as saved char
jmp .+3
rrb
dac char
rrb " here without saved char: read new
dac char " save as current
3:
lac char
sna
@@ -218,16 +219,16 @@ ttyrestart: 0
sad d4
jmp 4f
2:
lac npptchar
sna
jmp .+4
dac char
dzm npptchar
lac npptchar " get saved char (if any)
sna " had saved char?
jmp .+4 " no: wake up writer
dac char " yes: save as char to send
dzm npptchar " clear saved char
jmp 3b
rsa
rsa " reader select alphanumeric mode
lac sfiles+3
jms wakeup
xor o400000
jms wakeup " wake sleepers; returns zero
xor o400000 " set high bit (rsa before sleep)
dac sfiles+3
jmp piret
3:
@@ -239,19 +240,19 @@ ttyrestart: 0
dac sfiles+3
jmp piret
1: psf " paper tape ready?
1: psf " paper tape punch ready?
jmp 1f " no
pcf " clear ptp flag
lac d5
jms getchar " get next char
jmp .+3
psa
jmp piret
lac sfiles+4
jms wakeup
dac sfiles+4
jmp piret
jmp .+3 " none: wake sleepers
psa " punch set alphanumeric mode
jmp piret " return from interrupt
lac sfiles+4 " get sleeper bit vector
jms wakeup " wake them
dac sfiles+4 " store zero
jmp piret " return from PI
"** BEGIN CROSSED OUT
1: spb " any graphic-2 push button?
@@ -286,7 +287,7 @@ ttyrestart: 0
1: crrb " read card reader buffer??
piret: " return from priority interrupt
lac 0 " get LINK/PC
lac 0 " get LINK (in bit 0)
ral " restore LINK
lac .ac " restore AC
ion " reenable interrupts
@@ -327,7 +328,7 @@ wakeup: 0
jmp wakeup i
t = t+2
" call to output CR after LF (NL)
" call to output CR after LF (NL) on TTY
putcr: 0
lac o15
dac nttychar
+7 -6
View File
@@ -117,6 +117,7 @@ dspbuf:
" X-Y: invisible, no delay, Y=01740 (992)
" X-Y: invisible, settling delay, X=0
.=.+30
" Kernel startup (reused for display buffer)
coldentry:
dzm 0100 " not re-entrant
caf " clear all flags
@@ -145,14 +146,14 @@ edskbsp: .
uquant: .=.+1 " number of ticks user has been running
dspbufp: .=.+1 " pointer to display buffer
pbsflgs: .=.+2 " buttons on last tick, last button interrupt
mode: .=.+1
mode: .=.+1 " user access mode: 1 for write, 2 for read
nttychar: .=.+1 " CR to send next, or zero
npptchar: .=.+1
npptchar: .=.+1 " saved PTR char
ttydelay: .=.+1 " delay count for TTY output
name: .=.+4
lnkaddr: .=.+1
char: .=.+1
dskaddr: .=.+1
name: .=.+4 " file name for current sys call
lnkaddr: .=.+1 " temp for character queue routines
char: .=.+1 " current char: temp for PI
dskaddr: .=.+1 " number of block in dskbuf
uniqpid: 1 " pid generator
lu: .=.+4 " user (process) table entry copy
sfiles: .=.+10 " wait addresses for special files