	.nolist
	#include "ti83plus.inc"
	.list

#define B_CALL(xxxx)	rst 28h \ .dw xxxx
#define B_JUMP(xxxx)	call 50h \ .dw xxxx

genter		=09h
g3		=12h

.org 9D95h

start:
	B_CALL(_runindicoff)
	B_CALL(_clrlcdfull)
	B_CALL(_homeup)

	ld de,1*256+1
	ld	(pencol),de
	ld	hl,prgmnm
	B_CALL(_vputs)

	ld de,11*256+1
	ld	(pencol),de
	ld	hl,txtxt
	B_CALL(_vputs)

	ld de,21*256+1
	ld	(pencol),de
	ld	hl,line2
	B_CALL(_vputs)

	ld de,31*256+1
	ld	(pencol),de
	ld	hl,line3
	B_CALL(_vputs)

	ld de,41*256+1
	ld	(pencol),de
	ld	hl,line4
	B_CALL(_vputs)

	ld de,51*256+1
	ld	(pencol),de
	ld	hl,name
	B_CALL(_vputs)

	ld bc,0*256+14
	ld de,94*256+14
	B_CALL(_darkline)

	ld bc,0*256+24
	ld de,94*256+24
	B_CALL(_darkline)

	ld bc,0*256+34
	ld de,94*256+34
	B_CALL(_darkline)

	ld bc,0*256+44
	ld de,94*256+44
	B_CALL(_darkline)

	ld bc,0*256+54
	ld de,94*256+54
	B_CALL(_darkline)

doy:
	B_CALL(_getkey)
	cp k1
	jr z,lezgo
	cp k2
	jr z,leznotgo
	cp kenter
	jr z,zoom
	jp doy

zoom:
	B_CALL(_clrlcdfull)
	ret

lezgo:
	B_CALL(_clrlcdfull)
	ld    hl,0
	jp loopy
	
loopy:
	inc    hl
	push    hl
	B_CALL(_HomeUp)
	B_CALL(_ DispHL)
	B_CALL(_Getcsc)
	pop    hl
	cp g3
	jr z,pre
	cp    genter
	jr    nz,loopy
	B_CALL(_clrlcdfull)
	ret

leznotgo:
	B_CALL(_clrlcdfull)
	ld hl,65535
	jp down

down:
	dec    hl
	push    hl
	B_CALL(_HomeUp)
	B_CALL(_ DispHL)
	B_CALL(_Getcsc)
	pop    hl
	cp   g3
	jr z,pre
	cp    genter
	jr    nz,down
	B_CALL(_clrlcdfull)
	ret

pre:
	jp start

prgmnm:
	.db	"Assembly Counting Program",0
txtxt:
	.db	"(1) Increment",0
line2:
	.db	"(2) Decrement",0
line3:
	.db	"(3) Return to this screen",0
line4:
	.db	"(Enter) Exit Program",0
name:
	.db	"(C) 2001 DisCat",0


.end
END