P LITTLE099UPU LIST INSTRUCTIONS| ST 0; TL 999; V9; PROGRAM; ( This program tests the resurrection the the Paper Tape Usercode Compiler KAA01. It contains a list of single byte (syllable) instructions, each preceded by a SET instruction that gives its octal value. There is a similar section for 2-byte instructions, and another one for jump instructions, There was at one stage a page missing from KAA01, so 3-byte mainstore accesses lead into a black hole. This explains some of the quirky programming. ); V0=B1010100104101001; V1=B2020200020202002; SETAV0; =M2; (for access to V-stores, M0M2 is the radix word); SETAY3; =RM3; SETB30; =Y2; (output buffer starting at address 512); SETAR2; SETAR1; DUP; =RM1; -; =C1; (Q-store to scan list of single-byte instructions); *11; V0; M0M1Q; SHL+16; SHL-32; (D32-39 = value from SET, D40-47 = instruction); FRB; M0M2N; OR; =M0M3Q; J11C1NZ; SETAY2; =I3; C0TOQ3; Q3; NEG; NOT; SET8; OUT; (produces a list to be compared by eye); SETAR3; SETAR2; DUP; =RM1; -; =C1; (Q-store to scan list of 2-byte instructions); SETAY3; =RM3; 12; M0M2; M0M1Q; SHL+16; ZERO; SHLD+8; (fist byte at LS end of N1); REV; SHL+16; REV; SHLD-40; ERASE; (2-byte value at LS end of N1); FRB; DUP; M0M2N; OR; SET2; -; =M0M3Q; (true value from SET instrs in chars to outout buffer, also in N1) M0M2; M0M1Q; SHL-32; FRB; DUP; M0M2N; OR; =M0M3Q; (same for assembled 2-byte instruction); NEV; J123=Z; SETB177002; =M0M3Q; (compare values and output an X on the next line if it disagrees); 123; SETAY2; =I3; C0TOQ3; Q3; NEG; NOT; SET8; OUT; (print it); SETAY3; =RM3; (reset outut buffer pointer); J12C1NZ; SETAR4; SETAR3; DUP; =RM1; -; =C1; (Q-store to scan list of jump instructions); SETAY3; =RM3; (just compare first 2 bytes, same as for 2-byte instructions); 13; M0M2; M0M1Q; SHL+16; ZERO; SHLD+8; REV; SHL+16; REV; SHLD-40; ERASE; (3rd byte contains only address bits); FRB; DUP; M0M2N; OR; SET2; -; =M0M3Q; M0M2; M0M1Q; SHL-32; FRB; DUP; M0M2N; OR; =M0M3Q; NEV; J124=Z; SETB177002; =M0M3Q; 124; SETAY2; =I3; C0TOQ3; Q3; NEG; NOT; SET8; OUT; SETAY3; =RM3; J13C1NZ; ZERO; OUT; (stop :-); *1; SETB001; VR; VR; VR; (pad out to a whole word); SETB002; =TR; VR; VR; SETB003; BITS; VR; VR; SETB004; ×F; VR; VR; SETB005; ×DF; VR; VR; SETB007; ×+F; VR; VR; SETB010; NEGD; VR; VR; SETB011; OR; VR; VR; SETB012; PERM; VR; VR; SETB013; TOB; VR; VR; SETB014; ROUNDH; VR; VR; SETB015; NEV; VR; VR; SETB016; ROUND; VR; VR; SETB017; DUMMY; VR; VR; SETB020; ROUNDF; VR; VR; SETB021; ROUNDHF; VR; VR; SETB022; -DF; VR; VR; SETB023; +DF; VR; VR; SETB024; FLOAT; VR; VR; SETB025; FLOATD; VR; VR; SETB026; ABS; VR; VR; SETB027; NEG; VR; VR; SETB030; ABSF; VR; VR; SETB031; NEGF; VR; VR; SETB032; MAX; VR; VR; SETB033; NOT; VR; VR; SETB034; ×D; VR; VR; SETB035; ×; VR; VR; SETB036; -; VR; VR; SETB037; SIGN; VR; VR; SETB041; ZERO; VR; VR; SETB042; DUP; VR; VR; SETB043; DUPD; VR; VR; SETB044; %I; VR; VR; SETB045; FIX; VR; VR; SETB047; STR; VR; VR; SETB050; CONT; VR; VR; SETB051; REVD; VR; VR; SETB052; ERASE; VR; VR; SETB053; -D; VR; VR; SETB054; AND; VR; VR; SETB056; +; VR; VR; SETB057; +D; VR; VR; SETB060; %; VR; VR; SETB061; %D; VR; VR; SETB062; %F; VR; VR; SETB063; %DF; VR; VR; SETB064; %R; VR; VR; SETB065; REV; VR; VR; SETB066; CAB; VR; VR; SETB067; FRB; VR; VR; SETB070; STAND; VR; VR; SETB071; NEGDF; VR; VR; SETB072; MAXF; VR; VR; SETB074; +F; VR; VR; SETB075; -F; VR; VR; SETB077; SIGNF; VR; VR; *2; *SETB100; SETB363; M3M15; (first word has true value in D16-23 and D40-47); *SETB101; SETB363; =M3M15; (second word has "compiled" instruction in D0-15); *SETB102; SETB363; M3M15Q; *SETB103; SETB363; =M3M15Q; *SETB104; SETB363; M3M15H; *SETB105; SETB363; =M3M15H; *SETB106; SETB363; M3M15QH; *SETB107; SETB363; =M3M15QH; *SETB110; SETB363; M3M15N; *SETB111; SETB363; =M3M15N; *SETB112; SETB363; M3M15QN; *SETB113; SETB363; =M3M15QN; *SETB114; SETB363; M3M15HN; *SETB115; SETB363; =M3M15HN; *SETB116; SETB363; M3M15QHN; *SETB117; SETB363; =M3M15QHN; *SETB140; SETB360; M+I15; *SETB141; SETB360; M-I15; *SETB142; SETB360; NC15; *SETB143; SETB360; DC15; *SETB144; SETB360; I15=+1; *SETB145; SETB360; I15=-1; *SETB146; SETB360; I15=+2; *SETB147; SETB360; I15=-2; *SETB151; SETB363; M15TOQ3; *SETB152; SETB363; I15TOQ3; *SETB153; SETB363; IM15TOQ3; *SETB154; SETB363; C15TOQ3; *SETB155; SETB363; CM15TOQ3; *SETB156; SETB363; CI15TOQ3; *SETB157; SETB363; Q15TOQ3; *SETB161; SETB360; SHAC15; *SETB161; SETB133; SHA45; *SETB162; SETB360; SHADC15; *SETB162; SETB133; SHAD45; *SETB163; SETB360; ×+C15; *SETB163; SETB133; ×+45; *SETB164; SETB360; SHLC15; *SETB164; SETB133; SHL45; *SETB166; SETB360; SHLDC15; *SETB166; SETB133; SHLD45; *SETB167; SETB360; SHCC15; *SETB167; SETB133; SHC45; *SETB170; SETB362; =M15; *SETB170; SETB363; =RM15; *SETB170; SETB363; =RM15; *SETB170; SETB364; =I15; *SETB170; SETB365; =RI15; *SETB170; SETB370; =C15; *SETB170; SETB371; =RC15; *SETB170; SETB376; =Q15; *SETB171; SETB362; M15; *SETB171; SETB364; I15; *SETB171; SETB370; C15; *SETB171; SETB376; Q15; *SETB172; SETB362; =+M15; *SETB172; SETB364; =+I15; *SETB172; SETB370; =+C15; *SETB172; SETB376; =+Q15; *SETB173; SET0; LINK; *SETB174; SETB000; =LINK; *SETB175; SETB200; =K0; *SETB175; SETB100; =K1; *SETB175; SETB040; =K2; *SETB175; SETB020; =K3; *SETB176; SETB010; K4; *SETB176; SETB004; K5; *SETB176; SETB001; K7; *177; SETB177; SETB360; J177C15NZS; ( Peripheral instructions (two syllable) ); *SETB120; SETB220; CTQ9; *SETB120; SETB221; MANUALQ9; *SETB120; SETB222; BUSYQ9; *SETB120; SETB224; MLBQ9; *SETB120; SETB230; MBTQ9; *SETB121; SETB220; PARQ9; *SETB122; SETB220; METQ9; *SETB124; SETB220; MFRQ9; *SETB124; SETB222; CLOQ9; *SETB124; SETB224; TLOQ9; *SETB124; SETB230; PRCQ9; *SETB125; SETB220; PREQ9; *SETB125; SETB230; PRCEQ9; *SETB126; SETB220; MBRQ9; *SETB127; SETB220; MBREQ9; *SETB130; SETB220; PWQ9; *SETB130; SETB230; MLWQ9; *SETB130; SETB234; MGAPQ9; *SETB130; SETB234; PGAPQ9; *SETB130; SETB224; MWIPEQ9; *SETB131; SETB220; MWEQ9; *SETB131; SETB230; MLWEQ9; *SETB134; SETB220; MFSKQ9; *SETB134; SETB222; INTQ9; *SETB136; SETB220; MBSKQ9; *SETB136; SETB230; MRWDQ9; *SETB124; SETB220; PIAQ9; *SETB125; SETB220; PIBQ9; *SETB124; SETB230; PICQ9; *SETB125; SETB230; PIDQ9; *SETB126; SETB220; PIEQ9; *SETB127; SETB220; PIFQ9; *SETB126; SETB230; PIGQ9; *SETB127; SETB230; PIHQ9; *SETB134; SETB220; PMAQ9; *SETB120; SETB230; PMBQ9; *SETB120; SETB224; PMCQ9; *SETB136; SETB230; PMDQ9; *SETB136; SETB220; PMEQ9; *SETB122; SETB220; PMFQ9; *SETB122; SETB224; PMGQ9; *SETB130; SETB222; PMHQ9; *SETB134; SETB224; PMKQ9; *SETB136; SETB224; PMLQ9; *SETB130; SETB220; POAQ9; *SETB131; SETB220; POBQ9; *SETB130; SETB230; POCQ9; *SETB131; SETB230; PODQ9; *SETB130; SETB234; POEQ9; *SETB130; SETB224; POFQ9; *SETB132; SETB220; POGQ9; *SETB133; SETB220; POHQ9; *SETB133; SETB230; POKQ9; *SETB132; SETB230; POLQ9; *3; (jump instructions); *SETB200; SETB320; JS11; (first word has true value in D16-23 and D40-47); *SETB220; SETB020; J11=; (second word has "compiled" instruction in D0-23); *SETB200; SETB020; J11#; (N.B. R11 has syllable address 0); *SETB220; SETB040; J11Z; *SETB220; SETB100; J11>Z; *SETB200; SETB100; J11_