0641 1C5C A2 0A LDX #$0A ; TYPE OUT KIM 0642 1C5E 20 31 1E JSR PRTST 0764 1D2E A2 0C LDX #$0C ; X-OFF KIM .. 0767 1D35 20 31 1E JSR PRTST 0905 1E2F ; PRINT STRING OF ASCII CHAR FROM 0906 1E2F ; TOP+X TO TOP 0907 1E2F ; 0908 1E2F A2 07 CRLF LDX #$07 0909 1E31 BD D5 1F PRTST LDA TOP,X 0910 1E34 20 A0 1E JSR OUTCH 0911 1E37 CA DEX 0912 1E38 10 F7 BPL PRTST ; STOP ON INDEX ZERO 0913 1E3A 60 RTS 1197 1FD5 00 00 00 00 TOP .BYTE $00, $00, $00, $00, $00, $00, $0A, $0D, "MIK" 1197 1FD9 00 00 0A 0D 1197 1FDD 4D 49 4B 1198 1FE0 20 13 52 52 .BYTE ' ',$13, "RRE", ' ', $13 1198 1FE4 45 20 13
What is happening here?
The KIM-1 monitor types out three strings.
X=07 types CRLF
X=0C type KIM CRLF (at startup)
X=11 type ERR KIM CRLF (when papertape loading ends in in error)
all with trailing 6x 00
The subroutine PRTSTR
– fetches a character from the table at offset in X
– prints the character via OUTCH
– decrements X, back one character in the table
– and loops until X = 0 and the string printed