1
0
mirror of https://github.com/livingcomputermuseum/pdp7-unix.git synced 2026-04-27 20:48:23 +00:00

Merge pull request #19 from philbudne/master

fix as7 relative subtraction; system & as comments
This commit is contained in:
philbudne
2016-03-02 15:43:06 -05:00
5 changed files with 42 additions and 21 deletions

View File

@@ -193,8 +193,8 @@ process: 0
lac dot+1 " get "." value
dac lvrand
lac dot " get "." type??
sad d3 " three?
jmp proc4 " no, give "." error
sad d3 " three (user defined symbol?)?
jmp proc4 " yes, give "." error
sza " zero?
jmp proc1 " no
-1 " yes (".." type)

View File

@@ -110,7 +110,7 @@
skp
jms error
lac d1
dac mode
dac mode " save mode bits for access
jms access
jms dslot
lac u.base
@@ -131,8 +131,8 @@
.unlink:
jms argname
dac u.base
lac d1
dac mode
lac d1 " mode bit 1 (write?)
dac mode " save for access call
jms access
dac d.i
jms dput
@@ -162,8 +162,8 @@
lac u.cdir
jms namei; 0:0
jms error
lac d1
dac mode
lac d1 " mode bit 1 (write?)
dac mode " save for access call
jms access
jms copy; 1:0; d.name; 4
jmp okexit
@@ -197,8 +197,8 @@
sza
lac d1
sna
lac d2
dac mode
lac d2 " mode bit 2 (read?)
dac mode " save for access call
lac u.cdir
jms namei; 0:0
jms error
@@ -218,8 +218,8 @@
jmp open1
.creat:
lac d1
dac mode
lac d1 " mode bit 1 (write?)
dac mode " save for access call
jms arg
dac .+2
jms copy; ..; name; 4

View File

@@ -280,6 +280,9 @@ dskwr: 0
jmp dskwr i
t = t+3
" called with:
" AC/ block
" jms dskio; dsld_bits
dskio: 0
dac dskaddr
cll; idiv; 80
@@ -304,6 +307,8 @@ dskio: 0
jmp dskio i
t = t+1
" called with:
" jms dsktrans; -WC; MAC; addr_ptr?; dsld_ptr
dsktrans: 0
-10
dac 9f+t
@@ -312,25 +317,25 @@ dsktrans: 0
tad dsktrans
dac 12
"** 01-s1.pdf page 26
dscs
dscs " clear status register
lac 12 i
dslw
dslw " load WC
lac 12 i
dslm
dslm " load MAC
lac 12 i
jms laci
dsld
dsld " load TA & SA
dzm .dskb
lac 12 i
jms laci
jms laci
dsls
lac .dskb
dsls " load status
lac .dskb " check for interrupt
sna
jmp .-2
lac .dske
lac .dske " get status from interrupt
sma
jmp 12 i
jmp 12 i " return
isz 9f+t
jmp 1b
jms halt " 10 disk errors

View File

@@ -22,7 +22,7 @@ access: 0
sad i.uid
lrs 2
lacq
and mode
and mode " mode from system call
sza
jmp access i
jms error
@@ -138,6 +138,8 @@ dslot: 0
jmp 1b
jmp dslot i
" called with:
" AC/ mode
icreat: 0
dac 9f+t
jms dslot

View File

@@ -465,15 +465,29 @@ sub parse_expression {
if ($op eq '+') {
$word += $syllable;
$flags |= $sylflags;
}
elsif ($op eq '-') {
$word -= $syllable;
if ($flags & $RELATIVE) {
# relative-relative => absolute!
if ($sylflags & $RELATIVE) {
$flags &= ~$RELATIVE;
}
# else: relative-abs => relative (no change)
}
else { # word is absolute
if ($sylflags & $RELATIVE) {
err('A', 'absolute value minus relative??');
}
# else: absolute-absolute => absolute (no change)
}
}
else {
$word |= $syllable;
$flags |= $sylflags;
}
$word &= 0777777;
$flags |= $sylflags;
printf("\tsyllable: %#o word: %#o\n", $syllable, $word) if ($debug);
}
}