From 902754d284ef1d22915cbdd90df4e8a243e1d0aa Mon Sep 17 00:00:00 2001 From: Phil Budne Date: Wed, 2 Mar 2016 10:03:33 -0500 Subject: [PATCH 1/3] add some comments to kernel files --- src/sys/s2.s | 18 +++++++++--------- src/sys/s4.s | 21 +++++++++++++-------- src/sys/s5.s | 4 +++- 3 files changed, 25 insertions(+), 18 deletions(-) diff --git a/src/sys/s2.s b/src/sys/s2.s index 3424c44..2119ec5 100644 --- a/src/sys/s2.s +++ b/src/sys/s2.s @@ -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 diff --git a/src/sys/s4.s b/src/sys/s4.s index 75f3d19..2c91305 100644 --- a/src/sys/s4.s +++ b/src/sys/s4.s @@ -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 diff --git a/src/sys/s5.s b/src/sys/s5.s index 6c89ab9..4965236 100644 --- a/src/sys/s5.s +++ b/src/sys/s5.s @@ -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 From 6791efe25c86a2e7354e7ea1f5127bec7e2de7be Mon Sep 17 00:00:00 2001 From: Phil Budne Date: Wed, 2 Mar 2016 10:04:01 -0500 Subject: [PATCH 2/3] update a comment in as.s --- src/cmd/as.s | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cmd/as.s b/src/cmd/as.s index ce06006..9382fac 100644 --- a/src/cmd/as.s +++ b/src/cmd/as.s @@ -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) From f06f075517e35a64781a9ec6b773a5aba0b8e36d Mon Sep 17 00:00:00 2001 From: Phil Budne Date: Wed, 2 Mar 2016 15:40:52 -0500 Subject: [PATCH 3/3] fix subtraction with relative values (relative-relative)=absolute! --- tools/as7 | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/tools/as7 b/tools/as7 index 333c340..41b0c09 100755 --- a/tools/as7 +++ b/tools/as7 @@ -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); } }