Text

One of the easiest ways to communicate with the user is through text. The OS offers a slew of routines, but here are a few more to add to your list of routines:

Table of Contents

PutSI

Standing for "Put String Immediate," a routine like this can really add up to be a wonderful way to save memory, especially for programs relying heavily on text. What you do is call thiws routine with your text data directly following the call. For example:

     call PutSI
     .db 3,3,"String",0

Here is the code:
PutSI:
     pop hl
     ld c,(hl)
     inc hl
     ld b,(hl)
     inc hl
     ld (curRow),bc
     bcall(_PutS)
     jp (hl)

To give an idea of how much memory it saves, you save 1 byte after using this routine twice (it makes up for the size of the routine) and saves an additional 7 bytes each time it is used.

VPutSI

Along the same lines as PutSI:

VPutSI:
     pop hl
     ld c,(hl)
     inc hl
     ld b,(hl)
     inc hl
     ld (penCol),bc
     bcall(_VPutS)
     jp (hl)

PutS_App

To use bcall(_PutS), the string must be in RAM. In Apps, this means you need to copy the string to RAM before displaying it. Or, you could make a routine like this:

PutS_App:
;Inputs:
;     HL points to the zero-terminated string
     ld a,(hl)
     or a
     ret z
     inc hl
     bcall(_PutC)
     jr PutS_App
Unless otherwise stated, the content of this page is licensed under GNU Free Documentation License.