; MXPRA.ASM tables for use with MXPRIN.BCPL ; The tables consist of a vector of displacements indexed by a field value ; in the microinstruction. The strings are at (Table+Disp)+rv (Table+Disp) .ent F1tab .ent F2tab .ent BStab .ent BDtab .ent ALUtab .ent BCtab .txtm B .srel F1tab: .F1tab F2tab: .F2tab BStab: .BStab BDtab: .BDtab ALUtab: .ALUtab BCtab: .BCtab .nrel .F1tab: 0 ; NOZ setsf-. ykptr-. signova-. sethovf-. setovpc01-. rcy0q-. rcynotaluq-. iref-. f111-. rref-. rrefdxk-. rmwref-. rmwrefdxk-. wref-. wrefdxk-. 0 0 0 incy-. decy-. negy-. arm-. 0 incx-. decx-. incac-. decac-. setf-. setfc-. clearf-. clearfc-. f140-. mdrld-. wrestart-. kmdrld-. kwrestart-. krdata-. kwdata-. xref-. 0 ldpaluh-. q35alug-. 0 bamask-. samask-. xmask-. amask-. 0 0 armd-. setfb-. preiret-. iret-. frzbalubc-. pop-. bax-. sax-. f172-. ax-. f174-. f175-. f176-. f177-. setsf: .txt "SETSF" ykptr: .txt "YKPTR←" signova: .txt "SIGNOVA" sethovf: .txt "SETHOVF" setovpc01: .txt "SETOVPC01" rcy0q: .txt "RCY0Q" rcynotaluq: .txt "RCYNOTALUQ" iref: .txt "IREF" f111: .txt "F1[11]" rref: .txt "RREF" rrefdxk: .txt "RREFDXK" rmwref: .txt "RMWREF" rmwrefdxk: .txt "RMWREFDXK" wref: .txt "WREF" wrefdxk: .txt "WREFDXK" incy: .txt "INCY" decy: .txt "DECY" negy: .txt "NEGY" arm: .txt "ARM" incx: .txt "INCX" decx: .txt "DECX" incac: .txt "INCAC" decac: .txt "DECAC" setf: .txt "SETF" setfc: .txt "SETFC" clearf: .txt "CLEARF" clearfc: .txt "CLEARFC" f140: .txt "F1[40]" mdrld: .txt "MDRL←" wrestart: .txt "WRESTART" kmdrld: .txt "KMDRL←" kwrestart: .txt "KWRESTART" krdata: .txt "KRDATA" kwdata: .txt "KWDATA" xref: .txt "XREF" ldpaluh: .txt "LDPALUH" q35alug: .txt "Q35ALUG" bamask: .txt "BAMASK" samask: .txt "SAMASK" xmask: .txt "XMASK" amask: .txt "AMASK" armd: .txt "ARM←" setfb: .txt "SETFB" preiret: .txt "PREIRET" iret: .txt "IRET" frzbalubc: .txt "FRZBALUBC" pop: .txt "POP" bax: .txt "BAX" sax: .txt "SAX" f172: .txt "F1[72]" ax: .txt "AX" f174: .txt "F1[74]" f175: .txt "F1[75]" f176: .txt "F1[76]" f177: .txt "F1[77]" .F2tab: inhint-. npcd-. f22-. f23-. 0 0 0 wrestart-. 0 setsf-. 0 0 ashovf-. 0 pop-. acfs-. inhint: .txt "INHINT" npcd: .txt "NPC←" f22: .txt "F2[2]" f23: .txt "F2[3]" ashovf: .txt "ASHOVF" acfs: .txt "ACFS" .BStab: null-. x-. y-. ac-. d1-. d-. 0 d2-. mdr-. mdrl-. mar-. mdrsettag-. kmdr-. kmdrl-. kmar-. bs17-. kunit-. kstat-. ereg-. xtop-. bq-. bs25-. stack-. npc-. bs30-. flags-. tenf-. map-. i-. bpc-. 0 bax-. null: .txt "NULL" x: .txt "X" y: .txt "Y" ac: .txt "AC" d1: .txt "D1" d: .txt "D" d2: .txt "D2" mdr: .txt "MDR" mdrl: .txt "MDRL" mar: .txt "MAR" mdrsettag: .txt "MDR&SETTAG" kmdr: .txt "KMDR" kmdrl: .txt "KMDRL" kmar: .txt "KMAR" bs17: .txt "BS[17]" kunit: .txt "KUNIT" kstat: .txt "KSTAT" ereg: .txt "EREG" xtop: .txt "XTOP" bq: .txt "BQ" bs25: .txt "BS[25]" stack: .txt "STACK" npc: .txt "NPC" bs30: .txt "BS[30]" flags: .txt "FLAGS" tenf: .txt "TENF" map: .txt "MAP" i: .txt "I" bpc: .txt "BPC" .BDtab: bd-. xd-. yd-. acd-. d1d-. dd-. 0 d2d-. mdrd-. readd-. rmwd-. writed-. kmdrd-. kreadd-. kwrited-. krmwd-. kunitd-. ksetd-. kcsetd-. isplitd-. fsplitd-. bsplitd-. stackd-. mapvad-. map4d-. xsplitd-. yshiftd-. mapd-. id-. bpcd-. 0 bd37-. bd: .txt "B←" xd: .txt "X←" yd: .txt "Y←" acd: .txt "AC←" d1d: .txt "D1←" dd: .txt "D←" d2d: .txt "D2←" mdrd: .txt "MDR←" readd: .txt "READ←" rmwd: .txt "RMW←" writed: .txt "WRITE←" kmdrd: .txt "KMDR←" kreadd: .txt "KREAD←" kwrited: .txt "KWRITE←" krmwd: .txt "KRMW←" kunitd: .txt "KUNID←" ksetd: .txt "KSET←" kcsetd: .txt "KCSET←" isplitd: .txt "ISPLIT←" fsplitd: .txt "FSPLIT←" bsplitd: .txt "BSPLIT←" stackd: .txt "STACK←" mapvad: .txt "MAPVA←" map4d: .txt "MAP4←" xsplitd: .txt "XSPLIT←" yshiftd: .txt "YSHIFT←" mapd: .txt "MAP←" id: .txt "I←" bpcd: .txt "BPC←" bd37: .txt "BD[37]←" ; Table only has non-arithmetic alu functions--others are special ; because of carry. Hence, table is offset by 20B .ALUtab: notp-. notpandq-. notpandnotq-. a0-. notporq-. aq-. peq-. pandq-. notpornotq-. pxq-. notq-. pandnotq-. a1-. porq-. pornotq-. p-. notp: .txt "NOT P" notpandq: .txt "NOT P AND Q" notpandnotq: .txt "NOT P AND NOT Q" a0: .txt "A0" notporq: .txt "NOT P OR Q" aq: .txt "AQ" peq: .txt "P=Q" pandq: .txt "P AND Q" notpornotq: .txt "NOT P OR NOT Q" pxq: .txt "P#Q" notq: .txt "NOT Q" pandnotq: .txt "P AND NOT Q" a1: .txt "A1" porq: .txt "P OR Q" pornotq: .txt "P OR NOT Q" p: .txt "P" .BCtab: 0 aluzc-. alulc-. alulec-. alu8ec-. blc-. xlc-. ylc-. qoddc-. gec-. hec-. jec-. kec-. bc15-. oldword-. bc17-. 0 alunc-. alugec-. alugc-. alu8nc-. bgec-. xgec-. ygec-. qevenc-. gnc-. hnc-. jnc-. knc-. bc35-. newword-. bc37-. aluzc: .txt "ALU=0" alulc: .txt "ALU<0" alulec: .txt "ALU<=0" alu8ec: .txt "ALU8=0" blc: .txt "B<0" xlc: .txt "X<0" ylc: .txt "Y<0" qoddc: .txt "Q ODD" gec: .txt "G=0" hec: .txt "H=0" jec: .txt "J=0" kec: .txt "K=0" bc15: .txt "BC[15]" oldword: .txt "OLDWORD" bc17: .txt "BC[17]" alunc: .txt "ALU#0" alugec: .txt "ALU>=0" alugc: .txt "ALU>0" alu8nc: .txt "ALU8=1" bgec: .txt "B>=0" xgec: .txt "X>=0" ygec: .txt "Y>=0" qevenc: .txt "Q EVEN" gnc: .txt "G=1" hnc: .txt "H=1" jnc: .txt "J=1" knc: .txt "K=1" bc35: .txt "BC[35]" newword: .txt "NEWWORD" bc37: .txt "BC[37]" .end