Merge pull request #19 from philbudne/master
fix as7 relative subtraction; system & as comments
This commit is contained in:
+2
-2
@@ -193,8 +193,8 @@ process: 0
|
|||||||
lac dot+1 " get "." value
|
lac dot+1 " get "." value
|
||||||
dac lvrand
|
dac lvrand
|
||||||
lac dot " get "." type??
|
lac dot " get "." type??
|
||||||
sad d3 " three?
|
sad d3 " three (user defined symbol?)?
|
||||||
jmp proc4 " no, give "." error
|
jmp proc4 " yes, give "." error
|
||||||
sza " zero?
|
sza " zero?
|
||||||
jmp proc1 " no
|
jmp proc1 " no
|
||||||
-1 " yes (".." type)
|
-1 " yes (".." type)
|
||||||
|
|||||||
+9
-9
@@ -110,7 +110,7 @@
|
|||||||
skp
|
skp
|
||||||
jms error
|
jms error
|
||||||
lac d1
|
lac d1
|
||||||
dac mode
|
dac mode " save mode bits for access
|
||||||
jms access
|
jms access
|
||||||
jms dslot
|
jms dslot
|
||||||
lac u.base
|
lac u.base
|
||||||
@@ -131,8 +131,8 @@
|
|||||||
.unlink:
|
.unlink:
|
||||||
jms argname
|
jms argname
|
||||||
dac u.base
|
dac u.base
|
||||||
lac d1
|
lac d1 " mode bit 1 (write?)
|
||||||
dac mode
|
dac mode " save for access call
|
||||||
jms access
|
jms access
|
||||||
dac d.i
|
dac d.i
|
||||||
jms dput
|
jms dput
|
||||||
@@ -162,8 +162,8 @@
|
|||||||
lac u.cdir
|
lac u.cdir
|
||||||
jms namei; 0:0
|
jms namei; 0:0
|
||||||
jms error
|
jms error
|
||||||
lac d1
|
lac d1 " mode bit 1 (write?)
|
||||||
dac mode
|
dac mode " save for access call
|
||||||
jms access
|
jms access
|
||||||
jms copy; 1:0; d.name; 4
|
jms copy; 1:0; d.name; 4
|
||||||
jmp okexit
|
jmp okexit
|
||||||
@@ -197,8 +197,8 @@
|
|||||||
sza
|
sza
|
||||||
lac d1
|
lac d1
|
||||||
sna
|
sna
|
||||||
lac d2
|
lac d2 " mode bit 2 (read?)
|
||||||
dac mode
|
dac mode " save for access call
|
||||||
lac u.cdir
|
lac u.cdir
|
||||||
jms namei; 0:0
|
jms namei; 0:0
|
||||||
jms error
|
jms error
|
||||||
@@ -218,8 +218,8 @@
|
|||||||
jmp open1
|
jmp open1
|
||||||
|
|
||||||
.creat:
|
.creat:
|
||||||
lac d1
|
lac d1 " mode bit 1 (write?)
|
||||||
dac mode
|
dac mode " save for access call
|
||||||
jms arg
|
jms arg
|
||||||
dac .+2
|
dac .+2
|
||||||
jms copy; ..; name; 4
|
jms copy; ..; name; 4
|
||||||
|
|||||||
+13
-8
@@ -280,6 +280,9 @@ dskwr: 0
|
|||||||
jmp dskwr i
|
jmp dskwr i
|
||||||
t = t+3
|
t = t+3
|
||||||
|
|
||||||
|
" called with:
|
||||||
|
" AC/ block
|
||||||
|
" jms dskio; dsld_bits
|
||||||
dskio: 0
|
dskio: 0
|
||||||
dac dskaddr
|
dac dskaddr
|
||||||
cll; idiv; 80
|
cll; idiv; 80
|
||||||
@@ -304,6 +307,8 @@ dskio: 0
|
|||||||
jmp dskio i
|
jmp dskio i
|
||||||
t = t+1
|
t = t+1
|
||||||
|
|
||||||
|
" called with:
|
||||||
|
" jms dsktrans; -WC; MAC; addr_ptr?; dsld_ptr
|
||||||
dsktrans: 0
|
dsktrans: 0
|
||||||
-10
|
-10
|
||||||
dac 9f+t
|
dac 9f+t
|
||||||
@@ -312,25 +317,25 @@ dsktrans: 0
|
|||||||
tad dsktrans
|
tad dsktrans
|
||||||
dac 12
|
dac 12
|
||||||
"** 01-s1.pdf page 26
|
"** 01-s1.pdf page 26
|
||||||
dscs
|
dscs " clear status register
|
||||||
lac 12 i
|
lac 12 i
|
||||||
dslw
|
dslw " load WC
|
||||||
lac 12 i
|
lac 12 i
|
||||||
dslm
|
dslm " load MAC
|
||||||
lac 12 i
|
lac 12 i
|
||||||
jms laci
|
jms laci
|
||||||
dsld
|
dsld " load TA & SA
|
||||||
dzm .dskb
|
dzm .dskb
|
||||||
lac 12 i
|
lac 12 i
|
||||||
jms laci
|
jms laci
|
||||||
jms laci
|
jms laci
|
||||||
dsls
|
dsls " load status
|
||||||
lac .dskb
|
lac .dskb " check for interrupt
|
||||||
sna
|
sna
|
||||||
jmp .-2
|
jmp .-2
|
||||||
lac .dske
|
lac .dske " get status from interrupt
|
||||||
sma
|
sma
|
||||||
jmp 12 i
|
jmp 12 i " return
|
||||||
isz 9f+t
|
isz 9f+t
|
||||||
jmp 1b
|
jmp 1b
|
||||||
jms halt " 10 disk errors
|
jms halt " 10 disk errors
|
||||||
|
|||||||
+3
-1
@@ -22,7 +22,7 @@ access: 0
|
|||||||
sad i.uid
|
sad i.uid
|
||||||
lrs 2
|
lrs 2
|
||||||
lacq
|
lacq
|
||||||
and mode
|
and mode " mode from system call
|
||||||
sza
|
sza
|
||||||
jmp access i
|
jmp access i
|
||||||
jms error
|
jms error
|
||||||
@@ -138,6 +138,8 @@ dslot: 0
|
|||||||
jmp 1b
|
jmp 1b
|
||||||
jmp dslot i
|
jmp dslot i
|
||||||
|
|
||||||
|
" called with:
|
||||||
|
" AC/ mode
|
||||||
icreat: 0
|
icreat: 0
|
||||||
dac 9f+t
|
dac 9f+t
|
||||||
jms dslot
|
jms dslot
|
||||||
|
|||||||
@@ -465,15 +465,29 @@ sub parse_expression {
|
|||||||
|
|
||||||
if ($op eq '+') {
|
if ($op eq '+') {
|
||||||
$word += $syllable;
|
$word += $syllable;
|
||||||
|
$flags |= $sylflags;
|
||||||
}
|
}
|
||||||
elsif ($op eq '-') {
|
elsif ($op eq '-') {
|
||||||
$word -= $syllable;
|
$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 {
|
else {
|
||||||
$word |= $syllable;
|
$word |= $syllable;
|
||||||
|
$flags |= $sylflags;
|
||||||
}
|
}
|
||||||
$word &= 0777777;
|
$word &= 0777777;
|
||||||
$flags |= $sylflags;
|
|
||||||
printf("\tsyllable: %#o word: %#o\n", $syllable, $word) if ($debug);
|
printf("\tsyllable: %#o word: %#o\n", $syllable, $word) if ($debug);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user