Apple II User Manual

Page of 257
1407   E901 A9 0D       OUTLOW LDA #CR
1408   E903 8D 13 A4           STA OUTFLG
1409   E906 60          OUTL1  RTS
1410   E907
1411   E907             ;ON <ESCAPE> STOPS EXECUTION & BACK TO MONITOR
1412   E907             ;ON <SPACE> STOPS EXECUTION & CONTINUE ON ANY OTHER KEY
1413   E907 20 42 E8    RCHEK  JSR TTYTST      ;TTY OR KB ?
1414   E90A F0 1A              BEQ RCHTTY
1415   E90C 20 EF EC           JSR ROONEK      ;CLR MSK & GET A KEY
1416   E90F 88                 DEY
1417   E910 30 13              BMI RCH3        ;RTN ON NO KEY
1418   E912 A2 00              LDX #0
1419   E914 20 82 EC           JSR GETK2       ;GET THE KEY
1420   E917 C9 1B              CMP #ESCAPE
1421   E919 F0 3B              BEQ REA1        ;TO COMMAN & SET I/O TO TERMINAL
1422   E91B C9 20              CMP #' '        ;WAIT KEY
1423   E91D D0 06              BNE RCH3        ;RTN, IGNORE OTHER KEYS
1424   E91F 20 EF EC    RCH2   JSR ROONEK      ;WAIT TILL HE RELEASE IT &
1425   E922 88                 DEY             ;QUIT WAITING ON NEXT KEY
1426   E923 30 FA              BMI RCH2
1427   E925 60          RCH3   RTS
1428   E926 70 13       RCHTTY BVS RCHT1       ;TTI=PB6 ---> V (OVERFL FLG)
1429   E928 2C 00 A8    RCHT2  BIT DRB         ;WAIT TILL HE RELEASE IT
1430   E92B 50 FB              BVC RCHT2
1431   E92D 20 0F EC           JSR DELAY
1432   E930 20 DB EB           JSR GETTTY      ;GET A CHAR
1433   E933 C9 1B              CMP #ESCAPE
1434   E935 F0 1F              BEQ REA1        ;TO COMMAN
1435   E937 C9 20              CMP #' '
1436   E939 D0 ED              BNE RCHT2
1437   E93B 60          RCHT1  RTS             ;QUIT WAITING ON ANY KEY
1438   E93C
1439   E93C             ;READ ONE CHAR FROM KB/TTY & PRESERVE X,Y
1440   E93C 20 9E EB    READ   JSR PHXY        ;PUSH X & Y
1441   E93F 20 42 E8           JSR TTYTST      ;TTY OR KB ?
1442   E942 D0 06              BNE READ1
1443   E944 20 DB EB           JSR GETTTY
1444   E947 4C 4D E9           JMP READ2
1445   E94A 20 40 EC    READ1  JSR GETKEY
1446   E94D 20 AC EB    READ2  JSR PLXY        ;PULL X & Y
1447   E950 29 7F              AND #$7F        ;STRIP PARITY
1448   E952 C9 1B              CMP #ESCAPE
1449   E954 D0 E5              BNE RCHT1       ;RTN
1450   E956 20 3D FF    REA1   JSR PATC18      ;<CR> & CLR BUFFERS
1451   E959 4C A1 E1           JMP COMIN       ;BOTH I/O TO TERMINAL
1452   E95C
1453   E95C             ;READ WITH RUBOUT OR DELETE POSSIBLE
1454   E95C 20 DC E7    RB2    JSR PSLS        ;SLASH OR BACK SPACE
1455   E95F 20 83 FE    RDRUP  JSR CUREAD
1456   E962 C9 08              CMP #RUB        ;RUBOUT
1457   E964 F0 04              BEQ RDR1
1458   E966 C9 7F              CMP #$7F        ;ALSO DELETE
1459   E968 D0 0C              BNE RED2        ;ECHO IF NOT <CR>
1460   E96A             ;RUBOUT TO DELETE CHAR
1461   E96A 88          RDR1   DEY
1462   E96B 10 EF              BPL RB2
1463   E96D C8                 INY
1464   E96E F0 EF              BEQ RDRUP
1465   E970
1466   E970             ;OUTPUT MESSAGE THEN INPUT CHR
1467   E970 20 AF E7    KEPR   JSR KEP
1468   E973