A86: _getkey
[Prev][Next][Index][Thread]
A86: _getkey
Hello. I am new to this list, and to Z80 assembly programming. My
programming experience is limited to TRS-80 Model III BASIC from 1982(!), so
please bear with me. I have gone through the various tutorials and have
gotten somewhat of a grasp on assembly language programming, but I have a
ways to go yet.
I have written a program using one of Trent Lillehaugen's examples
(http://www.calpoly.edu/~tllilleh/a86/examples.html the KEY INPUT example).
The example on the page is obviously incomplete and even incorrect in a
couple of places. I filled in some of the holes where the labels are and
even added a function to initialize the screen to print the text. Here is my
code:
#include "asm86.h"
#include "ti86asm.inc"
.org _asm_exec_ram
call _clrLCD ;clear the LCD
ASK_FOR_KEY:
call _getkey ;waits for key
cp K_ENTER ;is it ENTER?
jp Z,ENTER ;if so, jump to ENTER
cp K_2ND ;is it the SECOND key?
jp Z,SECOND ;if so, jump to SECOND
cp K_EXIT ;is it exit?
jp Z,EXIT ;if so, jump to EXIT
jp ASK_FOR_KEY ;if it's none get another key
ENTER:
call INIT_SCRN ;initialize the screen
ld hl,entertext ;point hl to entertext
call _puts ;put entertext on screen
ret
SECOND:
call INIT_SCRN ;initialize the screen
ld hl,scndtext ;point hl to scndtext
call _puts ;put scndtext on screen
ret
EXIT:
call INIT_SCRN ;initialize the screen
ld hl,exittext ;point hl to exittext
call _puts ;put exittext on screen
ret
INIT_SCRN:
ld hl,$0000
ld (_curRow),hl ;set cursor to 0,0
ret
entertext:
.db "You pressed ENTER",0
scndtext:
.db "You pressed SECOND",0
exittext:
.db "You pressed EXIT",0
.end
When I assemble this, this is the error list I get:
key.asm line 0008: Label not found: (K_ENTER)
key.asm line 0008: Unused data in MS byte of argument. (200)
key.asm line 0010: Label not found: (K_2ND)
key.asm line 0010: Unused data in MS byte of argument. (200)
key.asm line 0012: Label not found: (K_EXIT)
key.asm line 0012: Unused data in MS byte of argument. (200)
tasm: pass 2 complete.
tasm: Number of errors = 6
This tells me that _getkey does not return anything using these labels. Does
_getkey return any values that I can use as a comparison, or do I need to
learn interrupts first?
Sorry for the length of this post. If this is too long, please enlighten me
on how to post code examples.
Thanks,
Brian Deuel
Brian's Coinop History Archive
http://coinop.vintagegaming.com
Follow-Ups: