Prev: FD03 Up: Map Next: FD56
FD0E: Print String
Prints the BASIC string "s$" at the current print position in a 64-column font. It finds the string with the ROM routine LOOK-VARS, using the name at PrintString_VariableName, and stops with an error if it is missing. Codes below 20 go straight to RST 10; codes from 90 upwards are skipped.
PrintString FD0E XOR A
FD0F LD ($FD97),A
FD12 LD A,$02
FD14 CALL $1601
FD17 LD HL,($5C5D)
FD1A PUSH HL
FD1B LD HL,$FD94
FD1E LD ($5C5D),HL
FD21 CALL $28B2
FD24 EX (SP),HL
FD25 LD ($5C5D),HL
FD28 POP HL
FD29 JR NC,PrintString_0
FD2B RST $08
FD2C DEFB $01 Error code for the RST 08 above.
PrintString_0 FD2D INC HL
FD2E LD C,(HL)
FD2F INC HL
FD30 LD B,(HL)
FD31 LD A,B
FD32 OR C
FD33 JR Z,PrintString_4
PrintString_1 FD35 INC HL
FD36 LD A,(HL)
FD37 CP $90
FD39 JR NC,PrintString_3
FD3B CP $20
FD3D JR NC,PrintString_2
FD3F RST $10
FD40 JR PrintString_3
PrintString_2 FD42 CALL PrintString_Character
PrintString_3 FD45 DEC BC
FD46 LD A,B
FD47 OR C
FD48 JR NZ,PrintString_1
PrintString_4 FD4A LD A,($FD97)
FD4D OR A
FD4E JR Z,PrintString_5
FD50 LD A,$20
FD52 CALL PrintString_Character
PrintString_5 FD55 RET
Prev: FD03 Up: Map Next: FD56