I have been working on my first big assembly program. But it appears I have made and error somewhere.
Code:
When ran the value for china's health is 65****, but when i remove
Code:
It works perfectly. What is the error here? Shouldn't it just set the value to 100?
I tried to make a variable by
Code:
and etc. But Tasm cant compile it.
So what have I done wrong here?
Code:
.NOLIST
#define EQU .equ
#define equ .equ
#define END .end
#define end .end
#include "ti83plus.inc"
.LIST
.org 9D93h
.db $BB,$6D
ld DE,100 ; Set the variables
ld (CHH),DE
ld DE,100
ld (RHH),DE
ld DE,100
ld (EHH),DE
ld DE,100
ld (GHH),DE
ld DE,100
ld (UH),DE
bcall(_RunIndicOff)
call title
COMPARE: ;Just a point to jump to
call MENU
GET: ; This reads the key press and jumps to correct option
bcall(_GetKey)
cp 143
jr z,ONO
cp 144
jr z,ONT
cp 145
jr z,ONTHR
cp 146
jp z,ONF
cp 9
jp z,EXIT
cp 5
jr z,GET
jr nz,GET
ret
ONO: ; Option 1
ld DE,$00
ld DE,(CHH)
dec DE
ld (CHH),DE
ld a,25
ld (penRow),a
ld a,15
ld (penCol),a
ld hl,CHT
bcall(_VPutS)
bcall(_GetKey)
bcall(_ClrLCDFull)
jp ENEMYH
ONT: ; Option 2
ld a,(EHH)
dec a
ld (EHH),a
ONTHR: ; Option 3
ONF: ; Option 4
MENU: ; The main menu
bcall(_ClrLCDFull)
ld a,40
ld (penRow),a
ld a,0
ld (penCol),a
ld hl,LINE
bcall(_VPutS)
ld a,2
ld (penRow),a
ld a,8
ld (penCol),a
ld hl,TAR
bcall(_VPutS)
ld a,45
ld (penRow),a
ld a,2
ld (penCol),a
ld hl,CHIN
bcall(_VPutS)
ld a,55
ld (penRow),a
ld a,2
ld (penCol),a
ld hl,EGYP
bcall(_VPutS)
ld a,45
ld (penRow),a
ld a,55
ld (pencol),a
ld hl,RUSS
bcall(_VPutS)
ld a,55
ld (penRow),a
ld a,55
ld (penCol),a
ld hl,GREC
bcall(_VPutS)
ret
Title: ; Title Page, nothing important here
bcall(_ClrLCDFull)
ld hl,$00
ld (CurRow),hl
ld hl,WEL
bcall(_PutS)
bcall(_NewLine)
ld hl,THER
bcall(_PutS)
bcall(_NewLine)
ld hl,WAR
bcall(_PutS)
bcall(_NewLine)
ld a,50
ld (penRow),a
ld a,15
ld (penCol),a
ld hl,CRED
bcall(_VPutS)
bcall(_GetKey)
ret
ENEMYH: ; Page that displays the enemys health
ld a,5
ld (penRow),a
ld a,0
ld (penCol),a
ld hl,CHTT
bcall(_VPutS)
ld hl,1
ld (curRow),hl
ld hl,8
ld (curCol),hl
ld HL,(CHH)
bcall(_DispHL)
bcall(_GetKEy)
jp compare
WEL:
.db " WELCOME TO",0
THER:
.db " THERMONUCLEAR",0
WAR:
.db " WAR",0
CRED:
.db "CREATED BY OPRED",0
LINE:
.db "-----------------------",0
TAR:
.db "WHO IS OUR TARGET, SIR?",0
CHIN:
.db "1.China",0
RUSS:
.db "3.Russia",0
EGYP:
.db "2.Egypt",0
GREC:
.db "4.Greece",0
CHT:
.db "YOU HIT CHINA",0
CHTT:
.db "Chinas Health:",0
RUT:
.db "YOU HIT RUSSIA",0
RUTT:
.db "RUSSIAS HEALTH:",0
EQT:
.db "YOU HIT EGYPT",0
EHH:
.db $0A
RHH:
.db $14
GHH:
.db $1E
UH:
.db $32
CHH:
.db 28
EXIT:
bcall(_ClrLCDFull)
ret
.end
end
When ran the value for china's health is 65****, but when i remove
Code:
ld DE,100
ld (RHH),DE
ld DE,100
ld (EHH),DE
ld DE,100
ld (GHH),DE
ld DE,100
ld (UH),DE
It works perfectly. What is the error here? Shouldn't it just set the value to 100?
I tried to make a variable by
Code:
CHH .equ AppBackUpScreen
EHH .equ AppBackUpScreen+9
and etc. But Tasm cant compile it.
So what have I done wrong here?