sys comments
This commit is contained in:
+4
-4
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user