Re: Help


[Prev][Next][Index][Thread]

Re: Help



To run an assembly program, you first have to assemble it. It's not very
complicated, but you need a little knowledge of asm.
Therefore you should download the assembled program (from ti-philes of
ti-calc) and send it to you cal.

I gues you haven't tried asm before. You need a shell on the calc, which
hacks the system, and allows you to run the program. You should download
the shell your program is written for, and send it to your calc fist
(instructions is included in the zip).

Stefan Sommer
By most known as Stefan The Greatest (Almost) Sommer

----------
> Fra: Avery Bunker <ZABUNKER@MILLS.K12.AR.US>
> Til: CALC-TI@LISTS.PPP.TI.COM
> Emne: Help
> Dato: 26. november 1997 08:47
>
> Do you just type the assembly program as you would basic programs or
> do you need a program to type this program in.
>
>
> > ----- HILO.ASM -----
> > ;* * *  Small-C/Plus  Version 1.00  * * *
> > ;       Cain, Van Zandt, Hendrix, Yorston
> > ;       25th February 1988
> > ;
> > ; Modified by Edward Thompson for TI-85
> > ; Send Comments to edt@infinet.com
> > #include "ti.h"
> >
> > .org 0
> >
> > .db "hilo",0
> >         CALL_(InitEmXX)
> >         JUMP_(qmain)
> >         .export qclearLCD
> > qclearLCD:
> >    ROM_CALL(CLEARLCD)
> >    ld hl,0
> >    ld ($800C),hl ; reset XY position to top of screen
> >         RET
> >
> >
> >         .export qwaitExit
> > qwaitExit:
> > WaitKey:
> >    ld a,0
> >    call GET_KEY
> >    cp K_EXIT
> >    jr nz,WaitKey
> >         RET
> >
> >
> > qwaitKey:
> >         LD A,0
> >         CALL GET_KEY
> >         CP 0
> >         JR Z,qwaitKey
> >         LD H,0
> >         LD L,A
> >         RET
> > qchkEnter:
> >         CALL GET_KEY
> >         CP   K_ENTER
> >         JR   NZ,qchEn2
> >         LD   HL,1
> >         RET
> > qchEn2:
> >         LD   HL,0
> >         RET
> > qchkExit:
> >         CALL GET_KEY
> >         CP   K_EXIT
> >         JR   NZ,qchkE2
> >         LD   HL,1
> >         RET
> > qchkE2:
> >         LD   HL,0
> >         RET
> > qbusyOn:
> >         ROM_CALL(BUSY_ON)
> >         RET
> > qbusyOff:
> >         ROM_CALL(BUSY_OFF)
> >         RET
> > qputw:
> >         LD HL,2
> >         ADD HL,SP
> >         LD      A,(HL)
> >         INC     HL
> >         LD      H,(HL)
> >         LD      L,A
> >         ROM_CALL(D_HL_DECI)
> >         RET
> > ; void putPixel(int x, int y)
> > qputPixel:
> >         LD  HL,4           ; first arg == x coordinate (just beyond
> > ret adr)
> >         ADD HL,SP
> >         LD  B,(HL)
> >         LD  HL,2           ; second arg = y coordinate
> >         ADD HL,SP
> >         LD  C,(HL)
> >         LD  A,63
> >         SUB C
> >         LD  C,A            ; Pixel  now in B,C in preperation for
> > FindPixel
> >         LD  A,4
> >         OUT (5),A          ; select ROM page
> >         ROM_CALL(FIND_PIXEL)
> >         LD  DE,$FC00
> >         ADD HL,DE          ; HL holds the offset to the byte of
> memory
> >         XOR (HL)           ; A  holds the pixel bit set.
> >         LD  (HL),A
> >         RET
> > qputs:
> >         LD HL,2
> >         ADD HL,SP
> >         LD      A,(HL)
> >         INC     HL
> >         LD      H,(HL)
> >         LD      L,A
> >         ROM_CALL(D_ZT_STR)
> >         RET
> > ;
> > ;Test if DE >= HL (unsigned)
> > CCUGE:
> >         CALL_(CCUCMP)
> >         RET     NC
> >         DEC     HL
> >         RET
> > ;
> > ;Test if DE < HL (unsigned)
> > CCULT:
> >         CALL_(CCUCMP)
> >         RET     C
> >         DEC     HL
> >         RET
> > ;
> > ;Test if DE > HL (unsigned)
> > CCUGT:
> >         EX      DE,HL
> >         CALL_(CCUCMP)
> >         RET     C
> >         DEC     HL
> >         RET
> > ;
> > ;Test if DE <= HL (unsigned)
> > CCULE:
> >         CALL_(CCUCMP)
> >         RET     Z
> >         RET     C
> >         DEC     HL
> >         RET
> > ;
> > ;Common routine to perform unsigned compare
> > ;carry set if DE < HL
> > ;zero/nonzero set accordingly
> > CCUCMP: LD      A,D
> >         CP      H
> >         JR      NZ,CUCMP1
> >         LD      A,E
> >         CP      L
> > CUCMP1: LD      HL,1
> >         RET
> > ;
> > ;Shift DE arithmetically right by HL and return in HL
> > CCASR:  EX      DE,HL
> >         DEC     E
> >         RET     M            ;                  7/2/82  jrvz
> >         LD      A,H
> >         RLA
> >         LD      A,H
> >         RRA
> >         LD      H,A
> >         LD      A,L
> >         RRA
> >         LD      L,A
> >         JR      CCASR+1
> > ;Shift DE arithmetically left by HL and return in HL
> > CCASL:  EX      DE,HL
> > CCASL4: DEC     E
> >         RET     M            ;          jrvz 7/2/82
> >         ADD     HL,HL
> >         JR      CCASL4
> > ;Subtract HL from DE and return in HL
> > CCSUB:
> >         EX DE,HL
> >         OR A
> >         SBC HL,DE
> >         RET
> > ;return absolute value of argument on stack (under return address)
> > QABS:
> >         POP BC
> >         POP HL
> >         PUSH HL
> >         PUSH BC
> >         LD A,H
> >         AND A
> >         RET P
> > ;Form the two's complement of HL
> > CCNEG:  CALL_(CCCOM)
> >         INC     HL
> >         RET
> > ;Form the one's complement of HL
> > CCCOM:  LD      A,H
> >         CPL
> >         LD      H,A
> >         LD      A,L
> >         CPL
> >         LD      L,A
> >         RET
> > ;Multiply DE by HL and return in HL
> > CCMULT:
> >         LD      B,H
> >         LD      C,L
> >         LD      HL,0
> > CCMLT1: LD      A,C
> >         RRCA
> >         JR      NC,CMLT2
> >         ADD     HL,DE
> > CMLT2:  XOR     A
> >         LD      A,B
> >         RRA
> >         LD      B,A
> >         LD      A,C
> >         RRA
> >         LD      C,A
> >         OR      B
> >         RET     Z
> >         XOR     A
> >         LD      A,E
> >         RLA
> >         LD      E,A
> >         LD      A,D
> >         RLA
> >         LD      D,A
> >         OR      E
> >         RET     Z
> >         JR      CCMLT1
> > ;Divide DE by HL and return quotient in HL, remainder in DE
> > CCDIV:  LD      B,H
> >         LD      C,L
> >         LD      A,D
> >         XOR     B
> >         PUSH    AF
> >         LD      A,D
> >         OR      A
> >         BIT     7,A
> >         CALL_NZ(CCDENEG)
> >         LD      A,B
> >         OR      A
> >         BIT     7,A
> >         CALL_NZ(CCBCNEG)
> >         LD      A,16
> >         PUSH    AF
> >         EX      DE,HL
> >         LD      DE,0
> > CCDIV1: ADD     HL,HL
> >         LD      A,E
> >         RLA
> >         LD      E,A
> >         LD      A,D
> >         RLA
> >         LD      D,A
> >         OR      E
> >         JR      Z,CCDIV2
> >         CALL_(CCPBCDE)
> >         BIT     7,A
> >         JUMP_NZ(CCDIV2)
> >         LD      A,L
> >         OR      1
> >         LD      L,A
> >         LD      A,E
> >         SUB     C
> >         LD      E,A
> >         LD      A,D
> >         SBC     A,B
> >         LD      D,A
> > CCDIV2: POP     AF
> >         DEC     A
> >         JR      Z,CCDIV3
> >         PUSH    AF
> >         JR      CCDIV1
> > CCDIV3: POP     AF
> >         RET     P
> >         CALL_(CCDENEG)
> >         EX      DE,HL
> >         CALL_(CCDENEG)
> >         EX      DE,HL
> >         RET
> > CCDENEG: LD     A,D
> >         CPL
> >         LD      D,A
> >         LD      A,E
> >         CPL
> >         LD      E,A
> >         INC     DE
> >         RET
> > CCBCNEG: LD     A,B
> >         CPL
> >         LD      B,A
> >         LD      A,C
> >         CPL
> >         LD      C,A
> >         INC     BC
> >         RET
> > CCRDEL: LD      A,E
> >         RLA
> >         LD      E,A
> >         LD      A,D
> >         RLA
> >         LD      D,A
> >         OR      E
> >         RET
> > CCPBCDE: LD     A,E
> >         SUB     C
> >         LD      A,D
> >         SBC     A,B
> >         RET
> > ;logical negation
> > CCLNEG:
> >         LD A,H
> >         OR L
> >         JR NZ,$+5
> >         LD L,1
> >         RET
> >         LD HL,0
> >         RET
> > ;
> > ; EXECUTE SWITCH STATEMENT
> > ;
> > ; HL  =  SWITCH VALUE
> > ;(SP) -> SWITCH TABLE
> > ;        DW ADDR1, VALUE1
> > ;        DW ADDR2, VALUE2
> > ;        ...
> > ;        DW 0
> > ;       [JMP DEFAULT]
> > ;
> > CCSWITCH:
> >         EX DE,HL                ;DE = SWITCH VALUE
> >         POP HL                  ;HL -> SWITCH TABLE
> > SWLOOP:
> >         LD C,(HL)
> >         INC HL
> >         LD B,(HL)               ;BC -> CASE ADDR, ELSE 0
> >         INC HL
> >         LD A,B
> >         OR C
> >         JR Z,SWEND              ;DEFAULT OR CONTINUATION CODE
> >         LD A,(HL)
> >         INC HL
> >         CP E
> >         LD A,(HL)
> >         INC HL
> >         JR NZ,SWLOOP
> >         CP D
> >         JR NZ,SWLOOP
> >         LD H,B                  ;CASES MATCHED
> >         LD L,C
> > SWEND:
> >         LD DE,(PROGRAM_ADDR)
> >         ADD HL,DE
> >         JP (HL)
> > ;
> > ;Fetch a single byte from the address in HL and
> > ; sign extend into HL
> > CCGCHAR: LD     A,(HL)
> > Q_ARGCNT:
> > CCSXT:  LD      L,A
> >         RLCA
> >         SBC     A,A
> >         LD      H,A
> >         RET
> > ;Fetch integer from (HL+2)
> > CCCDR:  INC     HL
> >         INC     HL
> > ;Fetch a full 16-bit integer from the address in HL
> > CCCAR:
> > CCGINT: LD      A,(HL)
> >         INC     HL
> >         LD      H,(HL)
> >         LD      L,A
> >         RET
> > ;Store a 16-bit integer in HL at the address in TOS
> > CCPINT: POP     BC
> >         POP     DE
> >         PUSH    BC
> >         LD      A,L
> >         LD      (DE),A
> >         INC     DE
> >         LD      A,H
> >         LD      (DE),A
> >         RET
> > ;Inclusive "or" HL and DE into HL
> > CCOR:
> >         LD      A,L
> >         OR      E
> >         LD      L,A
> >         LD      A,H
> >         OR      D
> >         LD      H,A
> >         RET
> > ;Exclusive "or" HL and DE into HL
> > CCXOR:
> >         LD      A,L
> >         XOR     E
> >         LD      L,A
> >         LD      A,H
> >         XOR     D
> >         LD      H,A
> >         RET
> > ;"And" HL and DE into HL
> > CCAND:
> >         LD      A,L
> >         AND     E
> >         LD      L,A
> >         LD      A,H
> >         AND     D
> >         LD      H,A
> >         RET
> > ;Test if HL = DE and set HL = 1 if true else 0
> > CCEQ:
> >         CALL_(CCCMP)
> >         RET     Z
> >         DEC     HL
> >         RET
> > ;Test if DE ~= HL
> > CCNE:
> >         CALL_(CCCMP)
> >         RET     NZ
> >         DEC     HL
> >         RET
> > ;Test if DE > HL (signed)
> > CCGT:
> >         EX      DE,HL
> >         CALL_(CCCMP)
> >         RET     C
> >         DEC     HL
> >         RET
> > ;Test if DE <= HL (signed)
> > CCLE:
> >         CALL_(CCCMP)
> >         RET     Z
> >         RET     C
> >         DEC     HL
> >         RET
> > ;Test if DE >= HL (signed)
> > CCGE:
> >         CALL_(CCCMP)
> >         RET     NC
> >         DEC     HL
> >         RET
> > ;Test if DE < HL (signed)
> > CCLT:
> >         CALL_(CCCMP)
> >         RET     C
> >         DEC     HL
> >         RET
> > ;Common routine to perform a signed compare
> > ; of DE and HL
> > ;This routine performs DE - HL and sets the conditions:
> > ;       Carry reflects sign of difference (set means DE < HL)
> > ;       Zero/non-zero set according to equality.
> > CCCMP:  LD      A,E
> >         SUB     L
> >         LD      E,A
> >         LD      A,D
> >         SBC     A,H
> >         LD      HL,1         ;preset true condition
> >         BIT     7,A
> >         JUMP_NZ(CCCMP1)      ; If bit is set, then we have minus
> > ; or together E (low result) and A (high result) to detect 0
> >         OR      E            ;"OR" resets carry and detects 0
> >         RET
> > CCCMP1: OR      E
> >         SCF                  ;set carry to signal minus
> >         RET
> > ;*******
> > ;*******
> > ;*******
> > ;******* End of Zshell include
> > ;*******
> > ;*******
> > ;*******
> > qlastRand:      .EQU $80FD
> > litaa:  .byte 2
> >         .export qlastRand
> > qnumToGue:      .EQU $80FF
> > litab:  .byte 2
> >         .export qnumToGue
> > qkeys:  .EQU $8101
> > litac:  .word 33,34,26,18,35,27,19,36,28,20
> >         .export qkeys
> >         .export qrand
> > qrand:
> >         .export qabs
> >         LD HL,(qlastRand)
> >         PUSH HL
> >         LD HL,16388
> >         POP DE
> >         CALL_(ccmult)
> >         INC HL
> >         PUSH HL
> >         LD HL,16387
> >         POP DE
> >         CALL_(ccdiv)
> >         EX DE,HL
> >         PUSH HL
> >         CALL_(qabs)
> >         POP BC
> >         LD (qlastRand),HL
> >         LD HL,(qlastRand)
> >         RET
> >
> >
> >         .export qgetDigit
> > qgetDigit:
> >         LD HL,-10
> >         ADD HL,SP
> >         LD SP,HL
> >         LD HL,8
> >         ADD HL,SP
> >         PUSH HL
> >         LD HL,10
> >         CALL_(ccpint)
> > cc6:
> >         LD HL,8
> >         ADD HL,SP
> >         CALL_(ccgint)
> >         PUSH HL
> >         LD HL,10
> >         POP DE
> >         CALL_(cceq)
> >         LD A,H
> >         OR L
> >         JUMP_Z(cc7)
> >         LD HL,6
> >         ADD HL,SP
> >         PUSH HL
> >         .export qwaitKey
> >         CALL_(qwaitKey)
> >         CALL_(ccpint)
> >         LD HL,4
> >         ADD HL,SP
> >         PUSH HL
> >         LD HL,0
> >         CALL_(ccpint)
> > cc10:
> >         LD HL,4
> >         ADD HL,SP
> >         CALL_(ccgint)
> >         PUSH HL
> >         LD HL,10
> >         POP DE
> >         CALL_(cclt)
> >         LD A,H
> >         OR L
> >         JUMP_Z(cc9)
> >         JUMP_(cc11)
> > cc8:
> >         LD HL,4
> >         ADD HL,SP
> >         PUSH HL
> >         CALL_(ccgint)
> >         INC HL
> >         CALL_(ccpint)
> >         DEC HL
> >         JUMP_(cc10)
> > cc11:
> >         LD HL,qkeys
> >         PUSH HL
> >         LD HL,6
> >         ADD HL,SP
> >         CALL_(ccgint)
> >         ADD HL,HL
> >         POP DE
> >         ADD HL,DE
> >         CALL_(ccgint)
> >         PUSH HL
> >         LD HL,8
> >         ADD HL,SP
> >         CALL_(ccgint)
> >         POP DE
> >         CALL_(cceq)
> >         LD A,H
> >         OR L
> >         JUMP_Z(cc12)
> >         LD HL,8
> >         ADD HL,SP
> >         PUSH HL
> >         LD HL,6
> >         ADD HL,SP
> >         CALL_(ccgint)
> >         CALL_(ccpint)
> > cc12:
> >         JUMP_(cc8)
> > cc9:
> >         JUMP_(cc6)
> > cc7:
> >         LD HL,cc5+0
> >         POP DE
> >         POP BC
> >         PUSH HL
> >         PUSH DE
> >         LD HL,0
> >         ADD HL,SP
> >         PUSH HL
> >         LD HL,4
> >         ADD HL,SP
> >         CALL_(ccgint)
> >         PUSH HL
> >         LD HL,12
> >         ADD HL,SP
> >         CALL_(ccgint)
> >         POP DE
> >         ADD HL,DE
> >         CALL_(ccgchar)
> >         POP DE
> >         LD A,L
> >         LD (DE),A
> >         LD HL,1
> >         ADD HL,SP
> >         PUSH HL
> >         LD HL,0
> >         POP DE
> >         LD A,L
> >         LD (DE),A
> >         .export qputs
> >         LD HL,0
> >         ADD HL,SP
> >         PUSH HL
> >         CALL_(qputs)
> >         POP BC
> >         LD HL,8
> >         ADD HL,SP
> >         CALL_(ccgint)
> >         EX DE,HL
> >         LD HL,10
> >         ADD HL,SP
> >         LD SP,HL
> >         EX DE,HL
> >         RET
> >
> >
> > cc5:    .EQU $8115
> > litad:  .byte 48,49,50,51,52,53,54,55,56,57
> >         .byte 42,0
> >         .export qgetNum
> > qgetNum:
> >         CALL_(qgetDigit)
> >         PUSH HL
> >         LD HL,10
> >         POP DE
> >         CALL_(ccmult)
> >         PUSH HL
> >         CALL_(qgetDigit)
> >         POP DE
> >         ADD HL,DE
> >         RET
> >
> >
> >         .export qmain
> > qmain:
> >         PUSH BC
> >         PUSH BC
> >         PUSH BC
> >         CALL_(qclearLCD)
> >         LD HL,cc14+0
> >         PUSH HL
> >         CALL_(qputs)
> >         POP BC
> >         LD HL,cc14+22
> >         PUSH HL
> >         CALL_(qputs)
> >         POP BC
> >         LD HL,cc14+44
> >         PUSH HL
> >         CALL_(qputs)
> >         POP BC
> >         LD HL,cc14+66
> >         PUSH HL
> >         CALL_(qputs)
> >         POP BC
> >         LD HL,cc14+88
> >         PUSH HL
> >         CALL_(qputs)
> >         POP BC
> >         LD HL,cc14+110
> >         PUSH HL
> >         CALL_(qputs)
> >         POP BC
> > cc15:
> >         .export qchkEnter
> >         CALL_(qchkEnter)
> >         CALL_(cclneg)
> >         LD A,H
> >         OR L
> >         JUMP_Z(cc16)
> >         LD HL,999
> >         LD (qnumToGue),HL
> > cc17:
> >         LD HL,(qnumToGue)
> >         PUSH HL
> >         LD HL,100
> >         POP DE
> >         CALL_(ccgt)
> >         LD A,H
> >         OR L
> >         JUMP_Z(cc18)
> >         CALL_(qrand)
> >         PUSH HL
> >         LD HL,100
> >         POP DE
> >         CALL_(ccdiv)
> >         LD (qnumToGue),HL
> >         JUMP_(cc17)
> > cc18:
> >         JUMP_(cc15)
> > cc16:
> >         LD HL,1000
> >         POP DE
> >         POP BC
> >         PUSH HL
> >         PUSH DE
> >         LD HL,0
> >         POP BC
> >         PUSH HL
> > cc19:
> >         LD HL,2
> >         ADD HL,SP
> >         CALL_(ccgint)
> >         PUSH HL
> >         LD HL,(qnumToGue)
> >         POP DE
> >         CALL_(ccne)
> >         LD A,H
> >         OR L
> >         JUMP_Z(cc20)
> >         LD HL,cc14+132
> >         PUSH HL
> >         CALL_(qputs)
> >         POP BC
> >         CALL_(qgetNum)
> >         POP DE
> >         POP BC
> >         PUSH HL
> >         PUSH DE
> >         LD HL,0
> >         ADD HL,SP
> >         PUSH HL
> >         CALL_(ccgint)
> >         INC HL
> >         CALL_(ccpint)
> >         DEC HL
> >         LD HL,2
> >         ADD HL,SP
> >         CALL_(ccgint)
> >         PUSH HL
> >         LD HL,(qnumToGue)
> >         POP DE
> >         CALL_(cceq)
> >         LD A,H
> >         OR L
> >         JUMP_Z(cc21)
> >         LD HL,cc14+152
> >         PUSH HL
> >         CALL_(qputs)
> >         POP BC
> >         LD HL,cc14+174
> >         PUSH HL
> >         CALL_(qputs)
> >         POP BC
> >         .export qputw
> >         LD HL,0
> >         ADD HL,SP
> >         CALL_(ccgint)
> >         PUSH HL
> >         CALL_(qputw)
> >         POP BC
> >         LD HL,cc14+187
> >         PUSH HL
> >         CALL_(qputs)
> >         POP BC
> > cc21:
> >         LD HL,2
> >         ADD HL,SP
> >         CALL_(ccgint)
> >         PUSH HL
> >         LD HL,(qnumToGue)
> >         POP DE
> >         CALL_(cclt)
> >         LD A,H
> >         OR L
> >         JUMP_Z(cc22)
> >         LD HL,cc14+195
> >         PUSH HL
> >         CALL_(qputs)
> >         POP BC
> > cc22:
> >         LD HL,2
> >         ADD HL,SP
> >         CALL_(ccgint)
> >         PUSH HL
> >         LD HL,(qnumToGue)
> >         POP DE
> >         CALL_(ccgt)
> >         LD A,H
> >         OR L
> >         JUMP_Z(cc23)
> >         LD HL,cc14+217
> >         PUSH HL
> >         CALL_(qputs)
> >         POP BC
> > cc23:
> >         JUMP_(cc19)
> > cc20:
> >         LD HL,cc14+239
> >         PUSH HL
> >         CALL_(qputs)
> >         POP BC
> >         CALL_(qwaitExit)
> >         POP BC
> >         POP BC
> >         POP BC
> >         RET
> >
> >
> > cc14:   .EQU $8641
> > litae:  .byte 84,104,101,32,72,105,103,104,32,45
> >         .byte 32,76,111,119,32,71,97,109,101,32
> >         .byte 32,0,61,61,61,61,61,61,61,61
> >         .byte 61,61,61,61,61,61,61,61,61,61
> >         .byte 61,61,61,0,73,39,109,32,116,104
> >         .byte 105,110,107,105,110,103,32,111,102,32
> >         .byte 97,32,32,32,32,0,110,117,109,98
> >         .byte 101,114,32,98,101,116,119,101,101,110
> >         .byte 32,49,32,97,110,100,32,0,49,48
> >         .byte 48,46,32,80,114,101,115,115,32,101
> >         .byte 110,116,101,114,32,119,104,101,110,0
> >         .byte 114,101,97,100,121,46,46,46,46,46
> >         .byte 46,46,46,46,46,46,46,46,46,46
> >         .byte 46,0,87,104,97,116,39,115,32,121
> >         .byte 111,117,114,32,103,117,101,115,115,63
> >         .byte 32,0,32,89,111,117,32,87,105,110
> >         .byte 33,33,33,33,32,32,32,32,32,32
> >         .byte 32,32,32,0,73,116,32,111,110,108
> >         .byte 121,32,116,111,111,107,0,32,116,114
> >         .byte 105,101,115,46,0,32,84,111,111,32
> >         .byte 76,111,119,46,46,46,32,32,32,32
> >         .byte 32,32,32,32,32,32,0,32,84,111
> >         .byte 111,32,72,105,103,104,32,46,46,46
> >         .byte 32,32,32,32,32,32,32,32,0,80
> >         .byte 114,101,115,115,32,69,120,105,116,32
> >         .byte 32,32,32,32,32,32,32,32,0
> >
> > InitEmXX:
> >         LD DE,litaa
> >         LD HL,(PROGRAM_ADDR)
> >         ADD HL,DE
> >         LD DE,$80FD
> >         LD BC,2
> >         LDIR
> >         LD DE,litab
> >         LD HL,(PROGRAM_ADDR)
> >         ADD HL,DE
> >         LD DE,$80FF
> >         LD BC,2
> >         LDIR
> >         LD DE,litac
> >         LD HL,(PROGRAM_ADDR)
> >         ADD HL,DE
> >         LD DE,$8101
> >         LD BC,20
> >         LDIR
> >         LD DE,litad
> >         LD HL,(PROGRAM_ADDR)
> >         ADD HL,DE
> >         LD DE,$8115
> >         LD BC,12
> >         LDIR
> >         LD DE,litae
> >         LD HL,(PROGRAM_ADDR)
> >         ADD HL,DE
> >         LD DE,$8641
> >         LD BC,259
> >         LDIR
> >         RET
> >
> > ; --- End of Compilation ---
> >         .end
> >
> >
> > Not a very efficient implementation of the HILO game, but it works.
> >


Follow-Ups: