[PROG. 2 FLASH [============= [ THIS IS 2 FLASH9. IT DIFFERS [ FROM 2 FLASH1 IN THAT IT HAS THREE CALLS TO Q+A. [SUBROUTINES EMPLOYED [--------------------- [ QARSUBLI THIS IS Q+A FOR LAP6. IT IS RELATIVIZED. [ DECBIN1 MODIFIED FOR THREE CHARACTERS [ RANDOM [CALLS TO Q+A [------------- [ 1.NO. OF TRLS [ NO. OF VALUES OF VARIABLE TO BE RANDOMMIZED [ NO. OF TRLS PER VAL OF VARIABLE [ 2.# OF ATR PER CYCLE [ 3. ATR SEC MSEC [BINARY. ATR, SEC [------ [DECIMAL. NO. TRLS, NO. VALS OF VAR., NO OF [------- TRLS PER COND., NO. OF ATR PER CYCLE [ [ [ [READ "RANDOM" INTO MEM BANK 1 [------------------------------ UMB 3 RDC 4212 [RANQ+AYZ, RAND +Q+A RDC 5213 [RETURN UMB TO 3 UMB 2 [ON RETURNING FROM LOADING RANDOM INTO CORE CHANGE [LOCATIONS 20-22 TO NOP SO THAT SUBSEQUENT PRESSES [OF START 20 DO NOT JUMP BACK TO REQUIRE LOAD F [RANDOM AGAIN. LDAi NOP STA 20 STA 21 STA 22 STA 23 STC 24 [RESTORE LOCATION 1032 TO STHi 3. THUS IF PRESS [START 20 WILL LOSE OLD DATA. #A29T LMB 3 JMP 760 [RANQ+AXX [CALL TO Q+A [=========== [ FIRST CALL [ ---------- [ FOR USE IN RANDOM NOS [ # TRLS [ # VALUES OF VAR TO BE RANDOMIZED [ # TRLS PER CONDITION #A29R LMB 3 JMP 245 [Q+A 1 A29X [QUEST BUFF A29Y [ANSW BUFF SETi 1 4000+A29Y-1 CLR LDHi 1 JMP A29A [TO DECBIN1 0 [RETURN ER COM [NROM RET PT FOR DECBIN STA A22M [# TRLS CNTR STC A29J [# TRLS LDHi 1 JMP A29A 0 COM STA A23K STC A29K [# VALUES OF VAR LDHi 1 JMP A29A [TO DECBIN1 0 [RETURN FROM DECBIN1 ON ERROR COM [NORMAL RETURN STC A29I SETi 17 #A29I [# TRLS PER CONDITION [SET VALUE FOR BCL IN RAND # LDA A29K ADAi 10 APO JMP A23F LDAi 7770 STC A23I JMP A29Z #A23F LDAi 7700 STC A23I JMP A29Z [GENERATE RANDOM NOS [=================== #A29Z SETi 2 #A29J [-# TRLS SETi 4 A23D-1 [BEGIN -1 OF TABLE OF RANDOM #S #A23H CLR STC A27A STC A27B STC A27C STC A27D STC A27E STC A27F STC A27G STC A27H STC A27I STC A27J STC A27K STC A27L STC A27M STC A27N STC A27O STC A27P STC A27Q SETi 3 #A29K [- # VALUES OF VARIABLE [ISSUE CALL TO RANDOM #A23E LDAi 1 LMB 3 JMP 20 [RETURN FROM RANDOM HERE ITH RANDOM # IN ACCUM BCLi #A23I [7700 IF MORE THAN 7 VALS OF VAR. 7770 IF LESS THAN [ 7 VALS OF VAR [IS IT LEGAL [----------- STAi #A23G [RANDOM # ADA A29K ADAi 1 APOi JMP A23E [IF ILLEGAL [HAS IT BEEN USED IN THIS BLOCK [------------------------------ CLR STC A28Z #A26A LDA A23G SAEi #A28Z [ JMP A26C [NO LDAi [YES A27A ADA A28Z STA A28Y STC A28X LDA #A28Y  JMP A27Z STA #A28X  LDA A28Z JMP A27Y #A26C LDAi 1 ADM A28Z SAEi 20 JMP A26A [BACK JMP A26R [OUT, ERROR [JMP TO STORE # IN TABLE AND RESET FOR NXT # #A27Y STAi 4 [STORE IN TABLE OF #S RANDOMIZD IN BLOCKS XSKi 2 [CNTR # TRLS JMP p+2 JMP A29L [TO SECOND CALL XSKi 3 JMP A23E JMP A23H [HAS IT BEEN USED IN THIS BLOCK [-------------------------------- #A27Z SAEi 0 JMP A23E LDAi 1 JMP 0 #A27A  #A27B  #A27C  #A27D  #A27E  #A27F  #A27G  #A27H  #A27I  #A27J  #A27K  #A27L  #A27M  #A27N  #A27O  #A27P  #A27Q  #A26R [HLT,ERRROR [ SECOND CALL TO Q+A [ ------------------ [ # ATR PER CYCLE [ WHICH LINE IS TO BE RANDOMIZED #A29L LMB 3 JMP 252 [Q+A 2 A29V [LOC OF FIRST QUEST BUFFER A29W [LOC OF FIRST ANSWER BUFFR SETi 1 4000+A29W-1 CLR LDHi 1 JMP A29A [TODECBIN1 MOD FOR 3 CHARACTERS 0 [RETURN ERROR COM [NORMAL RETURN POINT FOR DECBIN1 STA A22F [# ATR PER CYCLE FOR CONVERSION TO 12 BIT STC A22E [STORE #ATR PER CYCLE FOR EXECUTION [CALC LINE TO RANDOMIZE LDHi 1 JMP A29A [TO DECBIN 0 [RETYRN ERROR STA [NORMAL RETURN PT FOR DECBIN A21B LDAi A23C-1 ADAi #A21B  STA A22S+1 [ THIRD CALL TO Q+A [ ----------------- [ ATR SEC MSEC [ --- --- ---- LMB 3 JMP 257 [Q+A 3 A29S [LOCATION OF QUESTION BUFFER AS TEXT STRING BEGINS AT 9S A29U [LOCATIONS OF ANSWER BUFFER AS 6 BIT CODE BEGINS AT 9U [FOURTH CALL TO Q+A [------------------ [ TYPE RANDOM VALU IN MSEC LMB 3 JMP 264 A29P [QUEST BUF A29Q[ANS BUF [FIFTH CALL TO Q+A [----------------- LMB 3 JMP 271 A28B [QUEST BUF A28C [ANS BUF [CHANGE LOCCATION 1032 TO LDHi 3 FROM STHi 3 WHEN [EXITING FROM Q+A SO THAT WHENN RETURN TO Q+A OLD DATA [IN DDIISPLAY WILL HAVE BEEN SAVED AND IS RESTORED LMB 3 JMP 765 [IN RANQ+AXX #A29N SNSi 0 JMP A29R [JMP TO FIRST Q+A SNSi 1 JMP A29M [JMP TO MAIN PROGRAM JMP A29N [BEGIN MAIN PROGRAM AT 9M [======================== [======================== [CONVERSION OF Q+A ANSWERS TO 12 BIT OCTAL [----------------------------------------- #A29M SETi 1 4000+A29U-1 SETi 10 [ATR TABLE A23A-1 SETi 5 [SEC TABLE A23B-1 SETi 6 [MSEC TABLE A23C-1 SETi 7 #A22F [COM OF #ATR PER CYCLE #A28A CLR LDHi 1 LDHi 1 ROL 3 STAi 10 LDHi 1 ADM 10 LDHi 1 LDHi 1 ADAi 1 COM STAi 5 LDHi 1 JMP A29A [TO DECBIN1 [MOD FOR 3 CHAR 0[RETURN ERROR COM [NORMAL RETURN PT FOR DECBIN1 STAi 6 XSKi 7 JMP A28A [FRAME 4 Q+A [------------ SETi 1 4000+A29Q-1 [FOURTH ANS BUF RAND VAR IN MSEC SETi 10 A23J-1 [STORE OF MSEC VAL FOR ALL ATRS SETi 7 #A23K [COM OF NO VALS OF VAR #A23L CLR LDHi 1 JMP A29A [INTO DECBIN 0 [ERROR RETURN COM [NORMAL RETURN STAi 10 XSKi 7 JMP A23L [CLR FREQ TABLE [-------------- SETi 17 A23J+17 [FREQ CNT SETi 16 -160 CLR STAi 17 XSKi 16 JMP p-2 [CLR RAW DATA TABLE SETi 17 3177 SETi 16 -200 CLR STAi 17 XSKi 16 JMP p-2 HLT [TEMP [RAISE RESUME TO GO ON SETi 1 4000+A28C-1 SETi 5 A28D-1 CLR LDHi 1 LDHi 1 ROL 3 STAi 5 LDHi 1 ADM 5 ATR HLT [PROGRAM EXECUTION [================== SETi 11 A23D-1 [RAND # TABLE SETi 15 #A22M [-# TRLS #A22P SETi 4 [ATR TABLE A23A-1 SETi 5 [SEC TABLE A23B-1 SETi 6 [MSEC TABLE A23C-1 SETi 7 #A22E [#ATR PER CYCLE SET FROM FRAME 1 ON SCOPE [BEGIN [----- SNS 2 [BEGIN EXP. IF LOWER SNS 2, GET REST. JMP p-1 SXLi 0 [S PRESSES TO START TRL. JMP p-3 [CALC VALUE OF RAND MMEC #A22N LDAi 11 ADAi A23J [BEGIN OF RAND MSEC VAL TABLE STA A22K STC A22G LDA #A22G [COMPUTED ADDR OF MSEC VAL TABLE STORED HERE STAi #A22J  [IS EXT TIMER TIMED OUT SXLi 12 JMP p-1 [NO [IS IT RAND CHAN OR DUR [====================== #A22A SNSi 5 JMP A28H [RAND CHANN JMP A22D [RAND DUR [IS IT IZERO OR 1 #A22D SAEi [RAND DUR -0 JMP p+2 JMP A22Q [TO GIVE BLANK SAEi -1 JMP A22S [IF MORE THAN 1 #A22R LDAi [IF 1 STIM 2 ADM 4 LDAi 2 ADM 5 LDAi 2 ADM 6 LDAi 2 ADM 7 JMP A22S [IF RAND DUR [RAND CHAN [========= #A28H SAEi -0 JMP p+2 JMP A25D #A28U SAEi -1 JMP p+2 JMP A28E SAEi -2 JMP p+2 JMP A25F SAEi -3 JMP p+2 JMP A25G SAEi -4 JMP p+2 JMP A25H SAEi -5 JMP p+2 JMP A25I SAEi -6 JMP p+2 JMP A25J [IF 0, THEN CHAN X,X #A25D JMP A25C JMP A25C JMP A25C JMP A28E+3 [IF 1, THEN CHAN X, 43 #A28E JMP A25C JMP A25B JMP A25B JMP A25C JMP A25C JMP A25C JMP A25C JMP A25E [IF 2, THEN CHAN X, 42 #A25F JMP A25C JMP A25A JMP A25A JMP A28E+3 [IF 3, THEN CHAN 42, 42 #A25G JMP A25C JMP A25A JMP A25C JMP A25C JMP A25C JMP A25A JMP A28E+6 [IF 4, THEN CHAN 43, 43 #A25H JMP A25C JMP A25B JMP A25C JMP A25C JMP A25C JMP A25B JMP A28E+6 [IF 5, THEN CHAN 43, 42 #A25I JMP A25B JMP A25A JMP A25C JMP A25B JMP A25A JMP A28E+5 [IF 6, THEN CHAN42, 43 #A25J JMP A25B JMP A25A JMP A25C JMP A25C JMP A25C JMP A25B JMP A25A JMP A25E #A25A LDAi 44 STAi 4 JMP 0 #A25B LDAi 43 STAi 4 JMP 0 #A25C LDAi 64 STAi 4 JMP 0 [IT IS B #A28W LDAi 7 ADM 4 LDAi 7 ADM 5 LDAi 7 ADM 6 LDAi 7 ADM 7 JMP A22C #A25E SETi 4 A23A-1 SNSi 3 JMP A28W SNSi 4 JMP A28R JMP A22C [IF GREATER THAN 1 #A22S STA A23C+1 #A22C LDAi 5 STC 10 LDAi 4 ATR JMP A22B [JMP INTO TIMING LOOP XSKi 7 [RETURN FROM TIMING LOOP JMP A22C SNSi 3 JMP A28T [ITS B JMP A22Q [ITS 1, GO TO RESPONSE [ITS B #A28T SETi 4 A23A-1 SETi 5 A23B-1 SETi 6 A23C-1 SETi 7 -7 #A28S LDAi 5 STC 10 LDAi 4 ATR JMP A22B [INTO TIMING XSKi 7 JMP A28S JMP A22Q [RESPONSE [SET EXT TIME [------------- #A22Q SXLi 13 JMP A22U [DONT SET TIMER LDAi 76 ATR JMP A22U [RESPONSE [========= [IST PUSH ON SWITCH FOR RESPONSE #A22U SXL 1 JMP A24A [1 SXL 2 JMP A24L SXL 7 JMP A24M JMP A22U [2ND PUSH OF SWITCH #A24L SXL 2 JMP p-1 JMP A24Z [300 MSEC SXL 1 JMP A24B [2 THEN 1 SXL 2 JMP A24H [2 THEN 2 SXL 7 JMP A24N [2 THEN 3 JMP A24L +3 #A24M SXL 7 JMP p-1 JMP A24Z [300 MSEC SXL 1 JMP A24G [3 THEN 1 SXL 2 JMP A24J [3 THEN 2 SXL 7 JMP A24I [3 THHEN 3 JMP A24M+3 [WASTE TIME #A24Z LDA 0 STC A24Y LDAi A21H-1 [1H CONTAINS -454 FOR 300 MSEC STC 6 LDAi 7776 [0 SEC STC 10 JMP A22B [INTO TIMING #A24Y [JMP OUT [RESP 1. CHAN X, X --BLANK #A24A LDAi 0 STC A24O LDAi 20 JMP A22K-1 [RESP 2 THEN 1, CHAN X, 43 #A24B LDAi 1 STC A24O LDAi 40 JMP A22K-1 [RESP 3 THEN 1, CHAM X, 42 #A24G LDAi 2 STC A24O LDAi 60 JMP A22K-1 [RESP 3 THEN 3, CHAN 42, 42 #A24I LDAi 3 STC A24O LDAi 100 JMP A22K-1 [RESP 2 THEN 2, CHAN 43, 43 #A24H LDAi 4 STC A24O LDAi 120 JMP A22K-1 [RESP 2 THEN 3, CHAN 43, 42 #A24N LDAi 5 STC A24O LDAi 140 JMP A22K-1 [RESP 3 THEN 2, CHAN 42, 43 #A24J LDAi 6 STC A24O LDAi 160 ADAi #A22K [AD OF RAND MSEC VAL STC A22L LDAi 1 ADM #A22L [AD OF MEM OF FR DST THAT GETS INCREMENT LDA 11 ADAi 200 STA A22H LDAi #A24O [# OF RESP STA #A22H [RAW DATA RESP XSKi 15 JMP A22P [NXT TRL LDAi 77 ATR HLT [TEMP JMP A24C [TO TYPEOUT [TIMING LOOP [----------- #A22B LDA 0 STC A21M LDAi 6 AZE JMP p+2 JMP A21K STC A21F JMP A21A NOP #A21K LDAi -1747 STC A21F XSKi 10 JMP p+2 JMP A21M SETi 3 -70 XSKi 3 JMP p-1 JMP A21A #A21M [JMP OUT OF LOOP FROM HERE JMP A21K #A21A LDA 0 ADAi 1 STC A21E SETi 3 -171 XSKi 3 JMP p-1 SETi 2 #A21F [#MSEC XSKi 2 JMP A21C #A21E [JMP TO 1K OR 1M+1 #A21C LDA 0 ADAi -2 STC A21D NOP SETi 3 -202 XSKi 3 JMP p-1 #A21D  [CONVERT FREQ DIST TO DECIMAL, [STORE IN PRINT BUFFER, AND [TYPE FREQ DIST [============================ [============================ #A24C JMP A24T [TYPE CRLF JMP A24T #A24K SETi 6 A23J-1 [-1 FROM BEGIN OF RAND MSEC STORE SETi 7 A23J+17 [IST FR DST SETi 10 A23J+37 [2ND FR DST SETi 11 A23J+57 [3RD FR DST SETi 12 A23J+77 [4TH FR DST SETi 13 A23J+117 [5TH FR DST SETi 14 A23J+137 [6TH FR DST SETi 15 A23J+157 [7TH FR DST LDA A23K ADAi -1 STC A21G #A24D SETi 4 #A21G -21 [# ROWS IN FR DST #A24E SETi 1 3700 [BEGIN STORE PRINT BUFFER XSKi 4 JMP A24F [TO LOAD BUFFER HLT [TEMP [TO WRITE OVER RANDOM [FIRST RAISE RESUME ON CONSOLE [---------------------------------------------------- [ ---------------------------------------- UMB 3 WRC 4212 WRC 5213 UMB 2 HLT [FINAL HLT [LOAD PRINT BUFFER [----------------- #A24F SETi 5 -10 LDAi LDAi 6 STC A24P LDAi 6 COM #A24S JMP A28J LDAi 14 STHi 1 STHi 1 XSKi 5 JMP p+2 JMP A24U LDAi 1 ADM A24P #A24P [LDAi... JMP A24S [TYPE FR DST [----------- #A24U SETi 1 3700 SETi 5 -66 LDHi 1 JMP A27T [TECSUB XSKi 5 JMP p-3 JMP A24T JMP A24E [NXT LINE OF FRR DST [FOR WASTE TIME BET RESPONSE SW #A21H -454 [300 MSEC $2700 [STORE OF ANSWERS FROM Q+A CONVERTED TO 12 BIT CODE [-------------------------------------------------- #A23A [STORE OF ATR VALUES 0 0 0 0 0 0 0 0 0 0 0 0 0 #A23B [STORE OF SECOND VALUS 0 0 0 0 0 0 0 0 0 0 0 0 0 #A23C [STORE OF MSEC VALUES 0 0 0 0 0 0 0 0 0 0 0 0 0 $3500 #A23J [STORE OF MSEC VAL TO BE RAND 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [RANDOM # TABLE [============== $3000 #A23D  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [SECOND QUESTION BUFFER [--------------- $2010 #A29V "# OF CALLS TO ATR PER CYCLE " ""3" " LINE # IN NXT FRAME FOR WHICH MSEC IS RANDOM" " "" "3 TYPE ANS. IN DEC. ----------------: " [SECOND ANSWER BUFFER [-------------------- #A29W 0 0 0 0 0 [THIRD QUESTION BUFFER [---------------------- #A29S "ATR SEC MSEC SEC LESS " "1"" "2"" "1"" "3 THAN 10. 2" ""2" ""1" ""3" " MSEC " "3"" "2"" "1"" "3 IN DEC. " "4"" "2"" "1"" "3 5" ""2" ""1" ""3" " " "6"" "2"" "1"" "3 7" ""2" ""1" ""3" " " "8"" "2"" "1"" "3 9" ""2" ""1" ""3" " 1" """ "2"" "1"" "3 11" ""2" ""1" ""3" " 1" "2"" "2"" "1"" "3 13" ""2" ""1" ""3" " 1" "4"" "2"" "1"" "3:" [THIRD ANSWER BUFFER [--------------------- #A29U  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [FOURTH QUEST BUF [---------------- #A29P " 1" ""3" " " "2"" "3 " "3"" "3 4" ""3" " 5" ""3" " " "6"" "3 " "7"" "3 8" ""3" " 9" ""3" " 1" """ "3 1" "1"" "3 12" ""3" " 13" ""3" " 1" "4"" "3 1" "5"" "3 16" ""3" ": " [FOURTH ANS BUF [-------------- #A29Q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [FIFTH QUEST BUFF [--------------- #A28B "LIGHT ON" ""2" ": " [FIFTH ANS BUF [------------ #A28C 0 0 0 #A28D [SAVE FOR FIFTH FROME USE IN CONV 0 [FIRST QUESTION BUFFER [------------------- #A29X "NO TRL" "S"" "3 NO. VALS OF VAR." ""3" " N0. TRLS PER COND" "."" "3 TYPE ANS. IN DEC. ---------------- MAX # TRLS IS 128 DEC MAX # OF VALS PER VAR =16 OCTAL =14 DECIMAL: " [FIRST ANSWER BUFFER [--------------------- #A29Y 0 0 0 0 0 0 0 $1500 [PROG TYPDEC WITH BINDEC LABELS CHANGED FROM [9 TO 8. ALSO ENTRY ELIMINATED [MOD BY L. MATIN [ ****** BINDEC 1 ****** [BINDEC 1 [ DJN 7| 5|68 [SIGNED 12-BIT BINARY TO DECIMAL CONVERSION [ RIGHT JUSTIFIED [ ENTER WITH BINARY NUMBER IN ACCUMULATOR VIA A JMP 9J [ DECIMAL KBD CODES STORED VIA IR 1 [ LEADING ZEROES SUPPRESSED [ NON-INTERRUPTABLE [ ALSO USES IR 2,3 [ USES TAGS 9J-9Q [CHANGED BY L. MATIN [TO TAGS 8J-8Q [ [TIMING- CLASSIC LINC [ 1.4 TO 3.5 MSEC [ #A28J SCRi1 [SIGN TO LINK BIT ROLi1 APOi [MAKE NEGATIVE COM STC A28N [SAVE IT ADD 0 [SAVE RETURN STC A28P LDAi [LOAD POSSIBLE SIGNS #A28K "- " LZE [GET CORRECT SIGNS ROR 6 STHi1 [AND STORE IT SETi2 [SET ADDEND POINTER A28Q-1 JMP A28M [CONVERT A DIGIT AZE [IS IT A LEADING ZERO JMP A28L [NO ADD A28K [YES: MOVE THE SIGN RIGHT ONE PLACE STH 1 [STORE A SPACE OVER THE SIGN LZE [GET THE CORRECT SIGN ROR 6 STHi1 [AND STORE IT JMP p-10 [ THEN CONTINUE CONVERTING #A28L STHi1 [STORE A DIGIT JMP A28M [CONVERT NEXT DIGITI JMP A28L [AND STORE IT [LITTLE SUBROUTINE TO DO THE CONVERSION #A28M LDA [SAVE RETURN 0 STC A28P-2 SETi3 [SET DIGIT COUNTER 1777 XSKi2 [MOVE ADDEND POINTER ADD A28N [LOAD THE VALUE XSKi3 [BUMP COUNTER STAi [SAVE REMAINING PART #A28N ** ADA 2 [TRIAL ADD APO [STILL NEGATIVE JMP p-5 [YES: COUNT AND ADD AGAIN LDA [NO: GET THE COUNTER 3 SROi [LAST DIGIT 3567 JMP ** [NO: BACK TO THE SUBROUTINE STHi1 [YES: STORE IT #A28P JMP ** [ AND RETURN TO CALLING PGM [ADDEND TABLE #A28Q 1750 144 12 1 [END BINDEC 1 [ 7| 5|68 [TECSUB [TELETYPE SUB [FOR DEC INT- [ERFACE---- [TAGS 4T 5T [6T 7T AND [INDEX REG. [16 AND 17 #A27T SET 17 0 [FORM RETURN ROL 4 [CODE TEST APO JMP A26T-1 [TELETYPE CODE ROR 4 [LINC CODE SAE i 12 [EOL TEST JMP p+4 [NOT EOL LDA i 5215 [MAKE CR LF JMP A26T [OUTPUT ADA i -11 [NUMBER TEST APO i JMP p+4 [NOT A NUMBER ADA i [CONVERT NUMBER 271 JMP A26T [OUTPUT ADA i -12 [1ST SPECIAL [CHARACTER TEST APO i JMP p+6 [NOT SPECIAL [CHAR. TYPE 1 ADA i A25T+10 STC 16 [CONVRT SPECIAL [CHARACTERS ADA 16 JMP A26T [OUTPUT ADA i -32 [LETTER TEST APO i JMP A27T+27 [CONVRT SPECIAL [CHAR. TYPE II ADA i [CONVRT LETTER 332 JMP A26T [OUTPUT ROR 4 #A26T APO i [CR LF--HUH JMPp+4 514 LDA i 212 514 [ PRNT CHAR. JMP 17 [RETURN #A24T SET 17 0 LDA i 5215 JMP A26T+2 #A25T 207 [BELL FOR DEL 240 [SPACE 246 [AMPERSAND FOR [ i 247 [APOSTROPHE [FOR p 255 [- 253 [+ 257 [SLASH 243 [ TAG SYMBOL 0 [NO OUTPUT FOR [CASE 275 [= 300 [AT SIGN FOR u 254 [COMMA 256 [PERIOD 244 [DOLLAR SIGN [FOR ORIGN SIGN 333 [COMMENT SYMBOL [DECBIN 1 [ DJN 9|20|68 [ [DECIMAL-TO-SINGLE PRECISION BINARY [ CONVERTS FROM -4095 TO +4095 [ [CALLING SEQUENCE [ JMP 9A [ ERROR RETURN [ NORMAL RETURN [ [IR1 MUST BE SET JUST BEFORE THE FIRST CH [ DECBIN 1 LOOKS AT 5 CHARACTERS [ USES IR1-4 [ TAGS 9A-9G [ INTERRUPTABLE [ [TIMING- CLASSIC LINC [ 0.7 - 2.1 MSEC [ #A29A SET 3 [SAVE RETURN 0 SETi4 [CH COUNTER #A29H -4 [MOD L. MATIN SETi2 [MINUS FLAG 1777 CLR #A29B STC A29C [SAVE RESULT XSKi4 [ENOUGH CHS DONE JMP A29D [NO LDAi3 [YES: INDEX RETURN LDAi [LOAD RESULT #A29C ** XSK 2 [MINUS COM [YES JMP 3 [RETURN #A29D LDHi1 [LOAD NEXT CH SHDi [SPACE " " JMP A29B+1 [ IGNORE SHDi [PLUS "+ " JMP A29B+1 [ IGNORE SHDi [MINUS "- " JMP A29G [ SET FLAG COM [NONE OF THOSE ADD A29F APO [IS IT A LEGAL DIGIT JMP 3 [NO: ERROR RETURN LDH 1 [YES: SAVE IT STC A29E ADD A29C MUL [ X # BASE 4|A29F SCR 1 AZE [OVERFLOW JMP 3 [YES: ERROR RETURN ZTA [NO: RETRIEVE IT ROL 1 ZZZ ADD A29F+1 [+1 LAMi #A29E ** LZE [OVERFLOW JMP 3 [YES: ERROR RETURN JMP A29B [NO: CONTINUE #A29F 12 [NUMBER BASE 1 #A29G XSKi2 [SET MINUS FLAG JMP A29B+1 [END DECBIN 1