The TTY user interface is quite simple, with a limited number of commands.
Once you get connected (see the page on baud rate detection, GETCH and OUTCH
you are greeted with
KIM 0000
and you can enter one of the single character commands and type insert hex bytes and words.
0636 1C4F START JSR INIT1 0636 1C4F 20 8C 1E 0637 1C52 A9 01 LDA #$01 0638 1C54 2C 40 17 BIT SAD 0639 1C57 D0 1E BNE TTYKB 0640 1C59 20 2F 1E JSR CRLF ; PRT CR LF 0641 1C5C A2 0A LDX #$0A ; TYPE OUT KIM 0642 1C5E 20 31 1E JSR PRTST 0643 1C61 4C AF 1D JMP SHOW1 0828 1DA9 20 CC 1F SPACE JSR OPEN ; OPEN NEW CELL 1 0829 1DAC 20 2F 1E SHOW JSR CRLF ; PRINT CR LF 0830 1DAF 20 1E 1E SHOW1 JSR PRTPNT 0831 1DB2 20 9E 1E JSR OUTSP ; PRT SPACE 0832 1DB5 A0 00 LDY #$00 ; PRINT DATA SPECIFIED 0833 1DB7 B1 FA LDA (POINTL),Y ; BY POINT AD = LDA EXT 0834 1DB9 20 3B 1E JSR PRTBYT 0835 1DBC 20 9E 1E JSR OUTSP ; PRT SPACE 0836 1DBF 4C 64 1C JMP CLEAR 0837 1DC2 ; 0838 1DC2 20 63 1F RTRN JSR INCPT ; OPEN NEXT CELL 0839 1DC5 4C AC 1D JMP SHOW 0645 1C64 A9 00 CLEAR LDA #$00 0646 1C66 85 F8 STA INL ; CLEAR INPUT BUFFER 0647 1C68 85 F9 STA INH 0648 1C6A 20 5A 1E READ JSR GETCH ; GET CHAR 0649 1C6D C9 01 CMP #$01 0650 1C6F F0 06 BEQ TTYKB 0651 1C71 20 AC 1F JSR PACK 0652 1C74 4C DB 1D JMP SCAN 1161 1FAC ; SHIFT CHAR IN A INTO 1162 1FAC ; INL AND INH 1163 1FAC ; 1164 1FAC C9 30 PACK CMP #$30 ; CHECK FOR HEX 1165 1FAE 30 1B BMI UPDAT2 1166 1FB0 C9 47 CMP #$47 ; NOT HEX EXIT 1167 1FB2 10 17 BPL UPDAT2 1168 1FB4 C9 40 CMP #$40 ; CONVERT TO HEX 1169 1FB6 30 03 BMI UPDATE 1170 1FB8 18 CLC 1171 1FB9 69 09 ADC #$09 1172 1FBB 2A UPDATE ROL A 1173 1FBC 2A ROL A 1174 1FBD 2A ROL A 1175 1FBE 2A ROL A 1176 1FBF A0 04 LDY #$04 ; SHIFT INTO I/O BUFFER 1177 1FC1 2A UPDAT1 ROL A 1178 1FC2 26 F8 ROL INL 1179 1FC4 26 F9 ROL INH 1180 1FC6 88 DEY 1181 1FC7 D0 F8 BNE UPDAT1 1182 1FC9 A9 00 LDA #$00 ; A=0 IF HEX NUM 1183 1FCB 60 UPDAT2 RTS 0854 1DDB C9 20 SCAN CMP #$20 ; OPEN CELL 0855 1DDD F0 CA BEQ SPACE 0856 1DDF C9 7F CMP #$7F ; RUB OUT (KIM) 0857 1DE1 F0 1B BEQ STV 0858 1DE3 C9 0D CMP #$0D ; NEXT CELL 0859 1DE5 F0 DB BEQ RTRN 0860 1DE7 C9 0A CMP #$0A ; PREV CELL 0861 1DE9 F0 1C BEQ FEED 0862 1DEB C9 2E CMP #'.' ; MODIFY CELL 0863 1DED F0 26 BEQ MODIFY 0864 1DEF C9 47 CMP #'G' ; GO EXEC 0865 1DF1 F0 D5 BEQ GOEXEC 0866 1DF3 C9 51 CMP #'Q' ; DUMP FROM OPEN CELL TO HI LIMIT 0867 1DF5 F0 0A BEQ DUMPV 0868 1DF7 C9 4C CMP #'L' ; LOAD TAPE 0869 1DF9 F0 09 BEQ LOADV 0870 1DFB 4C 6A 1C JMP READ ; IGNORE ILLEGAL CHAR 0876 1E07 38 FEED SEC 0877 1E08 A5 FA LDA POINTL ; DEC DOUBLE BYTE 0878 1E0A E9 01 SBC #$01 ; AT POINTL AND POINTH 0879 1E0C 85 FA STA POINTL 0880 1E0E B0 02 BCS FEED1 0881 1E10 C6 FB DEC POINTH 0882 1E12 4C AC 1D FEED1 JMP SHOW 0883 1E15 ; 0884 1E15 A0 00 MODIFY LDY #$00 ; GET CONTENTS OF INPUT BUFF 0885 1E17 A5 F8 LDA INL ; INL AND STORE IN LOC 0886 1E19 91 FA STA (POINTL),Y ; SPECIFIED BY POINT 0887 1E1B 4C C2 1D JMP RTRN 0895 1E1E ; SUB TP PRINT POINTL,POINTH 0896 1E1E ; 0897 1E1E A5 FB PRTPNT LDA POINTH ; PRINT POINTL, POINTH 0898 1E20 20 3B 1E JSR PRTBYT 0899 1E23 20 91 1F JSR CHK 0900 1E26 A5 FA LDA POINTL 0901 1E28 20 3B 1E JSR PRTBYT 0902 1E2B 20 91 1F JSR CHK 0903 1E2E 60 RTS 0915 1E3B ; PRINT 1 HEX BYTE AS 2 ASCII CHAR'S 0916 1E3B ; 0917 1E3B 85 FC PRTBYT STA TEMP 0918 1E3D 4A LSR A ; SHIFT CHAR RIGHT 4 BITS 0919 1E3E 4A LSR A 0920 1E3F 4A LSR A 0921 1E40 4A LSR A 0922 1E41 20 4C 1E JSR HEXTA ; CONVERT TO HEX AND PRINT 0923 1E44 A5 FC LDA TEMP ; GET OTHER HALF 0924 1E46 20 4C 1E JSR HEXTA ; CONVERT TO HEX AND PRINT 0925 1E49 A5 FC LDA TEMP ; RESTORE BYTE IN A AND RETURN 0926 1E4B 60 RTS 0927 1E4C ; 0928 1E4C 29 0F HEXTA AND #$0F ; MASK HI 4 BITS 0929 1E4E C9 0A CMP #$0A 0930 1E50 18 CLC 0931 1E51 30 02 BMI HEXTA1 0932 1E53 69 07 ADC #$07 ; ALPHA HEX 0933 1E55 69 30 HEXTA1 ADC #$30 ; DEC HEX 0934 1E57 4C A0 1E JMP OUTCH ; PRINT CHAR
What is happening here?
KIM KIM 0000 00 12345678 5678 00 0000 00 1234. 0001 00 123456. 0002 00 0001 56 ggggg 0000 34 kkkkk 0000 34 123l 0123 00