diff --git a/scans/README.md b/scans/README.md index 753c1eb..bd06a45 100644 --- a/scans/README.md +++ b/scans/README.md @@ -26,9 +26,14 @@ Details of the files: * s9.s: pages 53-55 of 01-s1.pdf * sysmap: pages 57-61 of 01-s1.pdf * sop.s pages 62-63 of 01-s1.pdf -* sx.s: temp additional symbol defns * maksys.s: page 64 of 01-s1.pdf * trysys.s: page 65 of 01-s1.pdf +* scope.v pages 3-18 of 03-scope.pdf +* cas.s: pages 1-17 of 04-cas.pdf +* adm.s pages 2-11 of 05-1-4.pdf +* ald.s pages 13-17 of 05-1-4.pdf +* apr.s pages 19-30 of 05-1-4.pdf +* as.s: pages 32-48 of 05-1-4.pdf * bl.s: pages 3-6 of 06-5-12.pdf * bc.s: pages 7-11 of 06-5-12.pdf * bi.s: pages 12-19 of 06-5-12.pdf @@ -46,19 +51,18 @@ Details of the files: * dskio.s: pages 42-43 of 07-13-19.pdf * dsw.s: page 45 of 07-13-19.pdf * init.s pages 47-51 of 07-13-19.pdf -* cas.s: pages 1-17 of 04-cas.pdf * ind.b: page 2 of 08-rest.pdf * lcase.b: page 4 of 08-rest.pdf -* adm.s pages 2-11 of 05-1-4.pdf -* ald.s pages 13-17 of 05-1-4.pdf -* apr.s pages 19-30 of 05-1-4.pdf -* as.s: pages 32-48 of 05-1-4.pdf * ed1.s: pages 7-20 of 08-rest.pdf * ed2.s: pages 21-29 of 08-rest.pdf +* ln.s pages 15-16 of 09-1-35.pdf +* nm.s pages 31-34 of 09-1-35.pdf +* op.s page 35 of 09-1-35.pdf * pd.s: page 1 of 11-45-91.pdf * psych.s: page 2-6 of 11-45-91.pdf * rm.s: page 7 of 11-45-91.pdf * rn.s: page 8 of 11-45-91.pdf +* roff.s: pages 9-24 of 11-45-91.pdf * salv.s: pages 25-29 of 11-45-91.pdf * sh.s: pages 30-36 of 11-45-91.pdf * st-1.s pages 1-5 of 12-92-119.pdf @@ -68,6 +72,15 @@ Details of the files: * st-5.s pages 19-20 of 12-92-119.pdf * st-6.s pages 21-25 of 12-92-119.pdf * st-7.s pages 26-28 of 12-92-119.pdf +* stat.s: pages 1-2 of 13-120-147.pdf +* t1,s: pages 5-6 of 13-120-147.pdf +* t2,s: pages 7-13 of 13-120-147.pdf +* t3,s: pages 14-18 of 13-120-147.pdf +* t4,s: pages 19-20 of 13-120-147.pdf +* t5,s: pages 21-22 of 13-120-147.pdf +* t6,s: pages 23-25 of 13-120-147.pdf +* t7,s: pages 26-27 of 13-120-147.pdf +* t8,s: pages 28 of 13-120-147.pdf * ttt1.s pages 1-12 of 14-148-165.pdf * ttt2.s pages 13-17 of 14-148-165.pdf * un.s page 18 of 14-148-165.pdf diff --git a/scans/roff.s b/scans/roff.s new file mode 100644 index 0000000..8e9209b --- /dev/null +++ b/scans/roff.s @@ -0,0 +1,942 @@ +" ** 11-45-91.pdf page 9 +" roff + + lac i 017777 + sad d4 + sys exit + lac 017777 + tad d1 + dac fname + jms nextfile + lac obufp + dac otal + +" main i/o loop +1: + jms readline + jmp 3f + lac rawchar + sad cc + jmp 2f + jms text + jmp 1b +2: + jms control + jmp 1b +3: + jms break + jms eject + lac otal + sma + jmp 1f + cla + jms putsc; otal +1: + -1 + tad obufp + cma + tad otal + dac 1f + lac output + sys write; obuf; 1: 0 + sys exit + +" read line routine +readline: 0 + law rawchar-1 + dac 8 +1: + jms getchar + dac i 8 + sad o12 + skp + jmp 1b + isz readline + jmp i readline + +" read character routine +getchar: 0 + lac ital + sad eibufp + skp + jmp 1f + -64 +" ** 11-45-91.pdf page 10 + dac 3f + law ibuf-1 + dac 15 +2: + dzm i 15 + isz 3f + jmp 2b + lac input + sys read; ibuf; 64 + sna + jms nextfile + lac ibufp + dac ital +1: + jms getsc; ital + sza + jmp i getchar + jmp getchar+1 +3: 0 + +putchar: 0 + jms putsc; otal + lac otal + sad eobufp + skp + jmp i putchar + lac output + sys write; obuf; 64 + lac obufp + dac otal + jmp i putchar + +laci: 0 + dac 1f + lac i 1f + jmp i laci +1: 0 + +nextfile: 0 + lac i 017777 + sad d4 + jmp i readline + tad dm4 + dac i 017777 + lac fname + tad d4 + dac fname + lac input + sys close + sys open; fname: 0; 0 + sma + jmp 1f + lac fname + dac 2f + lac d1 + sys write; 2: 0; 4 + lac d1 + sys write; 2f; 2 + sys exit +2: 040077;012 +1: +" ** 11-45-91.pdf page 11 + dac input + lac eibufp + dac otal + jmp i nextfile + +getsc:0 +lac i getsc +dac sctalp +isz getsc +lac i sctalp +dac sctal +add o400000 +dac i sctalp +ral +lac i sctal +szl +lrss 9 +and o177 +jmp i getsc + +putsc: 0 +and o177 +lmq +lac i putsc +dac sctalp +isz putsc +lac i sctalp +dac sctal +add o400000 +dac i sctalp +sma cla +jmp 1f +llss 27 +dac i sctal +lrss 9 +jmp i putsc +1: +lac i sctal +omq +dac i sctal +lacq +jmp i putsc + +" conmtrol card decoder +control: 0 + law 2f-1 + dac 8 + -ncase + dac c + lac rawchar+1 + alss 9 + xor rawchar+2 +1: + sad i 8 + jmp i 8 + isz 8 + isz c + jmp 1b + jmp i control +2: + ncase = 0 +" ** 11-45-91.pdf page 12 +; jmp casead; ncase = ncase+1 +; jmp casebp; ncase = ncase+1 +
; jmp casebr; ncase = ncase+1 +; jmp casecc; ncase = ncase+1 +; jmp casece; ncase = ncase+1 +; jmp caseds; ncase = ncase+1 +; jmp casefi; ncase = ncase+1 +; jmp casein; ncase = ncase+1 +
  • ; jmp caseli; ncase = ncase+1 +; jmp casell; ncase = ncase+1 +; jmp casels; ncase = ncase+1 +; jmp casena; ncase = ncase+1 +; jmp casene; ncase = ncase+1 +; jmp casenf; ncase = ncase+1 +; jmp casepl; ncase = ncase+1 +; jmp casesp; ncase = ncase+1 +; jmp casess; ncase = ncase+1 +; jmp caseti; ncase = ncase+1 +
      ; jmp caseul; ncase = ncase+1 +; jmp caseun; ncase = ncase+1 + +" control cases +casead: + jms break + -1 + dac ad + jmp i control + +casebp: + jms break + jms eject + jmp i control + +casebr: + jms break + jmp i control + +casecc: + jms skipcont + lac i 8 + sad o12 + jmp i control + dac cc + jmp i control + +casece: + jms break + jms number; d0 + spa + cla + dac ce + jms need; ce + jmp i control + +caseds: + jms break + lac d2 + dac ls + jmp i control + +casefi: +" ** 11-45-91.pdf page 13 + jms break + -1 + dac fi + jmp i control + +casein: + jms number; in + cma + tad d1 + sma + cla + dac in + dac un + jmp i control + +caseli: + jms number; d0 + cma + tad d1 + sma + jmp i control + dac 2f +1: + jms readline + jmp i control + jms text + isz 2f + jmp 1b + jmp i control +2: 0 + +casell: + jms number; ll + spa + cla + dac ll + jmp i control + +casels: + jms number; d0 + sza; spa + lac d1 + dac ls + jmp i control + +casena: + jms break + dzm ad + jmp i control + +casene: + jms number; d0 + spa + cla + dac c + jms need; c + jmp i control + +casenf: + jms break + dzm fi +" ** 11-45-91.pdf page 14 + jmp i control + +casepl: + jms number; pl + spa + cla + dac pl + jms topbot + jmp i control + +casesp: + jms break + jms number; d0 + cma + tad d1 + sma + jmp i control + dac c +1: + jms nline + isz c + jmp 1b + jmp i control + +casess: + jms break + lac d1 + dac ls + jmp i control + +caseti: + jms break + jms number; in + spa + cla + dac un + jmp i control + +caseul: + jms number; d0 + spa + cla + dac ul + jmp i control + +caseun: + jms number; d0 + tad in + sma + cla + dac un + jmp i control + +" selected short routines +skipcont: 0 + law rawchar-1 + dac 8 +1: + lac i 8 + sad o40 + jmp 1f +" ** 11-45-91.pdf page 15 + sad o12 + jmp 2f + jmp 1b +1: + lac i 8 + sad o12 + jmp 2f + sad o40 + jmp 1b +2: + -1 + tad 8 + dac 8 + jmp i skipcont + +break: 0 + lac nc + sna + jmp i break + -2 + tad ls + cma + sma + jmp 2f + dac c +1: + jms nline + isz c + jmp 1b +2: + lac nl + sad bl + jms eject + lac nl + sza + jmp 2f + -5 + dac c +1: + lac o55 + jms putchar + isz c + jmp 1f + lac ma1 + dac c +1: + jms newline + isz c + jmp 1b +2: + law char-1 + dac 8 + lac un + sza + jmp 1f + dac c +2: + lac o40 + jms putchar + isz c + jmp 2b +" ** 11-45-91.pdf page 16 +1: + lac i 8 + jms putchar + isz nc + jmp 1b + jms newline + dzm nwd + dzm ne + lac in + dac un + jmp i break + +newline: 0 + lac o12 + jms putchar + isz nl + jmp i newline + +nline: 0 + lac nl + sna + jmp i nline + sad bl + jmp i nline + jms newline + jmp i nline + +number: 0 + dzm num + dzm sign + -1 + dac any + jms skipcont +1: + lac i 8 + sad o12 + jmp 3f + sad o53 + jmp 2f + tad om72 + sma + jmp 1b + tad o12 + spa + jmp 1b + dac any + lac num + cll; mul; 10 + lacq + tad any + dac num + jmp 1b +2: + dac sign + jmp 1b +3: + lac any + sma + jmp 1f +" ** 11-45-91.pdf page 17 + lac d1 + isz number + jmp i number +1: + lac sign + sza + jmp 1f + lac num + isz number + jmp i number +1: + sad o53 + jmp 1f + lac i number + jms laci + cma + tad num + cma + isz number + jmp i number +1: + lac i number + jms laci + tad num + isz number + jmp i number + +eject: 0 + lac pl + sna + jmp i eject + lac nl + sna + jmp i eject +1: + sad pl + jmp 1f + jms newline + lac nl + jmp 1b +1: + dzm nl + jmp i eject + +storechar: 0 + lmq + lac nc + sza + jmp 1f + law char-1 + dac 10 +1: + lacq + dac i 10 + jms width + cma + tad d1 + tad ne + dac ne + -1 + tad nc +" ** 11-45-91.pdf page 18 + dac nc + jmp i storechar + +getword: 0 + law word-1 + dac 8 + " *** hand written box/arrow to move after 1: + dzm wne + dzm wch +1: + lac i 11 + sad o12 + jmp i getword +2: + dac i 8 + lmq + jms width + cma + jms width + cma + tad d1 + tad wne + dac wne + -1 + tad wch + dac wch + lacq + sad o40 + jmp 1b + lac word + sad o40 + jmp 1f + lac o40 + dac word + lacq + jmp 2b +1: + lac i 11 + sad o12 + jmp 1f + sad o40 + jmp 1f + dac i 8 + jms width + cma + tad d1 + tad wne + dac wne + -1 + tad wch + dac wch + jmp 1b +1: + -1 + tad 11 + dac 11 + isz getword + jmp i getword + +need: 0 + lac ls + dac 1f + lac i need + jms laci +" ** 11-45-91.pdf page 19 + cll; mul; 1: 0 + lacq + tad nl + cma + tad bl + spa + jms eject + isz need + jmp i need + +" text line routine +text: 0 + -1 + tad ul + sma + jms undline + -1 + tad ce + sma + jms center + law rawchar-1 + dac 11 + lac rawchar + sad o12 + jmp 1f-1 + sad o40 + lac fi + sza + jmp 2f + skp + jms break +1: + lac i 11 + sad o12 + jmp 1f + jms storechar + jmp 1b +1: + lac nc + sna + jms nline + jms break + jmp i text +2: + jms getword; jmp i text + lac wne + tad ne + tad un + tad ll + spa + jms adjust + law word-1 + dac 8 + lac nwd + sza + jmp 3f +1: + lac i 8 + sad o40 + skp +" ** 11-45-91.pdf page 20 + jmp 3f+1 + isz wch + jmp 1b +3: + lac i 8 + jms storechar + isz wch + jmp 3b + isz nwd + jmp 2b + +" adjust routine +adjust: 0 + lac nwd + sna + jmp i adjust + dac 8 + law tchar-1 + dac 9 + dzm ndiv + dzm nrem + lac ad + sna + jmp 1f + -1 + tad nwd + sna + jmp 1f + dac 2f + lac ll + tad ne + tad un + spa + jmp 1f + cll; idiv; 2: 0 + dac nrem + lacq + dac ndiv +1: + lac i 8 + sad o40 + jms fill + dac i 9 + isz nc + jmp 1b + lac o12 + dac i 9 + law tchar-1 + dac 8 +2: + lac i 8 + sad o12 + jmp 2f + jms storechar + jmp 2b +2: + jms break + jmp i adjust + +fill: 0 +" ** 11-45-91.pdf page 21 + lac nrem + sna + jmp 2f + tad dm1 + dac nrem + lac d1 +2: + tad ndiv + cma + dac c + lac o40 +2: + dac i 9 + isz c + jmp 2b +2: + isz nc + lac i 8 + sad o40 + skp + jmp i fill + dac i 9 + jmp 2b + +" more routines +topbot: 0 + lac pl + sza + jmp 1f + dzm bl + jmp i topbot +1: + -11 + tad pl + spa + jmp 1f + dac bl + cma + tad d1 + tad nl + spa + jmp i topbot + lac bl + dac nl + jmp i topbot +1: + lac d55 + dac bl + dac nl + tad d11 + dac pl + jmp i topbot + +undline: 0 + dac ul + law rawchar-1 + dac 8 + law tchar-1 + dac 9 +1: + lac i 8 +" ** 11-45-91.pdf page 22 + dac i 9 + sad o12 + jmp 1f + sad o40 + jmp 1b + lac o10 + dac i 9 + lac o137 + jmp 1b +1: + law tchar-1 + dac 8 + law rawchar-1 + dac 9 +1: + lac i 8 + dac i 9 + sad o12 + jmp i undline + jmp 1b + +center: 0 + dac ce + law rawchar-1 + dac 8 + law tchar-1 + dac 9 + dzm wne +1: + lac i 8 + dac i 9 + sad o12 + jmp 1f + jms width + tad wne + dac wne + jmp 1b +1: + -1 + tad wne + spa + jmp i center + cma + tad ll + tad in + lrss 1 + cma + tad d1 + sma + -1 + dac c + law tchar-1 + dac 8 + law rawchar-1 + dac 9 + lac o40 +1: + dac i 9 + isz c + jmp 1b +" ** 11-45-91.pdf page 23 +1: + lac i 8 + dac i 9 + sad o12 + jmp i center + jmp 1b + +width: 0 + sad o10 + jmp 1f + lac d1 + jmp i width +1: + -1 + jmp i width + +eibufp: ibuf+64 +ibufp: ibuf +eobufp: obuf+64 +obufp: obuf +input: 0 +output: 1 +ls: 1 +ce: 0 +in: 0 +un: 0 +ul: 0 +ma1: -5 +bl: 55 +ll: 50 +nwd: 0 +nl: 0 +nc: 0 +ne: 0 +pl: 88 +ad: -1 +fi: -1 +cc: .> +o12: 012 +o40: 040 +o177: 0177 +o53: 053 +om72: -072 +o55: 055 +o400000: 0400000 +o10: 010 +d11: 11 +d55: 55 +o137: 0137 +d1: 1 +d2: 2 +d4: 4 +dm4: -4 +d0: 0 +dm1: -1 +c: .=.+1 +nrem: .=.+1 +ndiv: .=.+1 +num: .=.+1 +" ** 11-45-91.pdf page 24 +any: .=.+1 +ital: .=.+1 +otal: .=.+1 +sctal: .=.+1 +sctalp: .=.+1 +sign: .=.+1 +wch: .=.+1 +wne: .=.+1 +word: .=.+300 +char: .=.+300 +tchar: .=.+300 +rawchar: .=.+300 +ibuf: .=.+64 +obuf: .=.+64 diff --git a/tools/a7out b/tools/a7out index ee92b2f..4835c1b 100755 --- a/tools/a7out +++ b/tools/a7out @@ -654,9 +654,11 @@ sub eae { $PC++; return; } - if ( $maskedinstr == 0660600 ) { # llss: long left shift, signed + if ( ($maskedinstr == 0660600) || + ($maskedinstr == 0661600) ) { # llss: long left shift, signed # Set the link to be the AC sign bit $LINK= ($AC & SIGN) ? LINKMASK : 0; + $AC = 0 if ($maskedinstr & 01000); # PLB: ecla llss seen in adm,apr,bc,ds,sh dprintf( "llss step %d\n", $step ); foreach my $i ( 1 .. $step ) { my $MQmsb = ( $MQ & SIGN ) ? 1 : 0;