LEX 'STRBOOLX' TITLE STRBOOLX ver. <87/01/23> * ********************************************************************** * LEX HEADER BLOCK * CON(2) #52 LEX ID, see USERLIB1 for assignment CON(2) #18 Low Token CON(2) #1C High Token CON(5) 0 No link NIBHEX F No speed table CON(4) (TxTbSt)+1-(*) Offset to TEXT Table CON(4) 0 No message table REL(5) POLHND Offset to poll handler * ********************************************************************** * * STITLE Main Table * CON(3) (TxEn01)-(TxTbSt) REL(5) AND$ NIBHEX F * CON(3) (TxEn04)-(TxTbSt) REL(5) OR$ NIBHEX F * CON(3) (TxEn03)-(TxTbSt) REL(5) EXOR$ NIBHEX F * CON(3) (TxEn02)-(TxTbSt) REL(5) COMP$ NIBHEX F * CON(3) (TxEn05)-(TxTbSt) REL(5) REVBIT NIBHEX F * ********************************************************************** * STITLE TEXT TABLE * TxTbSt TxEn01 CON(1) (TxEn02)-(*)-4 NIBASC 'AND$' CON(2) #18 * TxEn02 CON(1) (TxEn03)-(*)-4 NIBASC 'COMP$' CON(2) #1B * TxEn03 CON(1) (TxEn04)-(*)-4 NIBASC 'EXOR$' CON(2) #1A * TxEn04 CON(1) (TxEn05)-(*)-4 NIBASC 'OR$' CON(2) #19 * TxEn05 CON(1) (TxTbEn)-(*)-4 NIBASC 'REVBIT$' CON(2) #1C * TxTbEn NIBHEX 1FF Text table terminator ********************************************************************** * STITLE POLL HANDLER * POLHND ?B=0 B VER poll? GOYES VER$P Yes RTNSXM No, exit XM=1, Cy=0 VER$P A=R2 Fetch AVMEMS C=R3 Fetch stack pointer D1=C D1=D1- (VER$en)-(VER$st)-2 allow for our reply CD1EX ?A>C A not enough memory? GOYES VER$Pe exit not handled Cy=1 D1=C restore stack pointer R3=C and save for next file VER$st LCASC ' STRBOOl' VER$en DAT1=C (VER$en)-(VER$st)-2 Write our reply VER$Pe RTNSXM exit * ********************************************************************** * NIBHEX 411 REVBIT CD1EX D1=C R0=C GOSBVL #0BD38 C=0 W C=A A CSRB D=C A CE67F D=D-1 A GOC CE6A0 P= 7 A=DAT1 B CE689 A=A+A X C=A XS CSRB P=P-1 GONC CE689 DAT1=C B D1=D1+ 2 GONC CE67F CE6A0 GOC CE6D6 NIBHEX 411 COMP$ CD1EX D1=C R0=C A=0 W GOSBVL #0BD38 ASRB CE6BC A=A-1 A GOC CE6D6 C=DAT1 B C=-C-1 B DAT1=C B D1=D1+ 2 GONC CE6BC CE6D0 C=R1 D0=C CE6D6 C=R0 D1=C P= 0 GOVLNG #0F23C NIBHEX 4422 AND$ GOSUB CE763 CE6ED B=B-1 A GOC CE6D0 D1=D1- 2 D0=D0- 2 A=DAT0 B C=DAT1 B C=C&A B DAT1=C B GONC CE6ED NIBHEX 4422 OR$ GOSUB CE763 CE710 B=B-1 A GOC CE6D0 D1=D1- 2 D0=D0- 2 A=DAT0 B C=DAT1 B C=C!A B DAT1=C B GONC CE710 NIBHEX 4422 EXOR$ GOSUB CE763 C=B A D=C A CE737 D=D-1 A GOC CE6D0 D1=D1- 2 D0=D0- 2 A=DAT0 B C=DAT1 B B=C B B=-B-1 B B=A&B B A=-A-1 B C=C&A B C=B!C B DAT1=C B GONC CE737 CE763 GOSBVL #0BD38 CD1EX C=C+A A D1=C B=0 W B=A A R0=C GOSBVL #0BD38 CD1EX C=C+A A D1=C ?A>=B A GOYES CE790 B=A A CE790 C=R0 CD0EX R1=C BSRB RTN END