[A83] Ion Problems


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

[A83] Ion Problems



I think I'm doing something wrong in my program. It worked fine as a program, but not as an application. I am using "dwedit's app development kit". Could that be a problem?
-Calc Freak

#DEFINE APPNAME "TI WinXP"
#DEFINE APPPAGES 1

#INCLUDE "DWEDIT.INC"

StartApp:

Boot:
 B_Call _ClrLCDFull

StartBar:
 ld b,62
 ld c,12
 ld a,0
 ld l,a
 ld ix,StartBar_
 jp ionLargeSprite
; call ionLargeSprite
 jp grbufcpy
; B_Call _grbufcpy
 B_Call _getkey

StartMenu:
 ld b,62
 ld c,12
 ld a,0
 ld l,a
 ld ix,StartMenu_
 jp ionLargeSprite
; call ionLargeSprite
 jp grbufcpy
; B_Call _grbufcpy
NoPrgm:
 B_Call _getkey
 cp kRight
 jp z,NoPrgm
PrgmMenu:
 ld b,62
 ld c,12
 ld a,0
 ld l,a
 ld ix,PrgmMenu_
 jp ionLargeSprite
; call ionLargeSprite
 jp grbufcpy
; B_Call _grbufcpy
 B_Call _getkey
 ret

:TI-OS
  BJump(_JForceCmdNoChar)

StartBar_:
; .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $7F,$FF,$FD,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FC
 .db $80,$00,$02,$00,$00,$00,$00,$00,$00,$00,$00,$02
 .db $9B,$93,$3A,$00,$00,$00,$00,$00,$00,$00,$00,$02
 .db $A1,$2A,$92,$00,$00,$00,$00,$00,$00,$00,$00,$02
 .db $91,$3B,$12,$00,$00,$00,$00,$00,$00,$00,$00,$02
 .db $89,$2A,$92,$00,$00,$00,$00,$00,$00,$00,$00,$02
 .db $B1,$2A,$92,$00,$00,$00,$00,$00,$00,$00,$00,$02
 .db $80,$00,$02,$00,$00,$00,$00,$00,$00,$00,$00,$02
 .db $7F,$FF,$FD,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FC
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00

StartMenu_:
; .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $7F,$FF,$FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$00
 .db $80,$00,$00,$00,$00,$80,$00,$00,$00,$00,$00,$00
 .db $9B,$BB,$BB,$19,$80,$80,$00,$00,$00,$00,$00,$00
 .db $A2,$11,$12,$A2,$00,$80,$00,$00,$00,$00,$00,$00
 .db $93,$11,$12,$A9,$00,$80,$00,$00,$00,$00,$00,$00
 .db $8A,$11,$12,$A8,$80,$80,$00,$00,$00,$00,$00,$00
 .db $B3,$91,$3A,$9B,$2A,$80,$00,$00,$00,$00,$00,$00
 .db $80,$00,$00,$00,$00,$80,$00,$00,$00,$00,$00,$00
 .db $B3,$39,$B1,$29,$90,$80,$00,$00,$00,$00,$00,$00
 .db $AA,$AA,$2A,$BA,$18,$80,$00,$00,$00,$00,$00,$00
 .db $B3,$2A,$B3,$B9,$1C,$80,$00,$00,$00,$00,$00,$00
 .db $A2,$AA,$AA,$A8,$98,$80,$00,$00,$00,$00,$00,$00
 .db $A2,$B9,$AA,$AB,$10,$80,$00,$00,$00,$00,$00,$00
 .db $80,$00,$00,$00,$00,$80,$00,$00,$00,$00,$00,$00
 .db $9A,$AB,$99,$D5,$80,$80,$00,$00,$00,$00,$00,$00
 .db $A2,$A9,$15,$55,$40,$80,$00,$00,$00,$00,$00,$00
 .db $93,$A9,$15,$55,$40,$80,$00,$00,$00,$00,$00,$00
 .db $8A,$A9,$15,$5D,$40,$80,$00,$00,$00,$00,$00,$00
 .db $B2,$B9,$19,$D5,$40,$80,$00,$00,$00,$00,$00,$00
 .db $80,$00,$00,$00,$00,$80,$00,$00,$00,$00,$00,$00
 .db $7F,$FF,$FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00

PrgmMenu_:
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$3F,$FF,$FF,$FF,$E0,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $7F,$FF,$FF,$FF,$FF,$40,$00,$00,$00,$10,$00,$00
 .db $7F,$FF,$FF,$FF,$FF,$40,$00,$00,$00,$10,$00,$00
 .db $7F,$FF,$FF,$FF,$FF,$40,$00,$00,$00,$10,$00,$00
 .db $7F,$FF,$FF,$FF,$FF,$40,$00,$00,$00,$10,$00,$00
 .db $7F,$FF,$FF,$FF,$FF,$40,$00,$00,$00,$10,$00,$00
 .db $7F,$FF,$FF,$FF,$FF,$40,$00,$00,$00,$10,$00,$00
 .db $7F,$FF,$FF,$FF,$FF,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$40,$00,$00,$00,$10,$00,$00
 .db $00,$00,$00,$00,$00,$3F,$FF,$FF,$FF,$E0,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00

ionLargeSprite:
;#include "LSprite.h"
;-----> Draw a picture
;Input: ix->sprite
; a=x
; l=y
; b=height (in pixels)
; c=width  (in bytes, e.g. 2 would be 16)
;Output: nothing
; All registers are destroyed except bc', de', hl'
largeSprite:
 di
 ex af,af'
 ld a,c
 push af
 ex af,af'
 ld e,l
 ld h,$00
 ld d,h
 add hl,de
 add hl,de
 add hl,hl
 add hl,hl
 ld e,a
 and $07
 ld c,a
 srl e
 srl e
 srl e
 add hl,de
 ld de,gbuf
 add hl,de
largeSpriteLoop1:
 push hl
largeSpriteLoop2:
 ld d,(ix)
 ld e,$00
 ld a,c
 or a
 jr z,largeSpriteSkip1
largeSpriteLoop3:
 srl d
 rr e
 dec a
 jr nz,largeSpriteLoop3
largeSpriteSkip1:
 ld a,(hl)
 xor d
 ld (hl),a
 inc hl
 ld a,(hl)
 xor e
 ld (hl),a
 inc ix
 ex af,af'
 dec a
 push af
 ex af,af'
 pop af
 jr nz,largeSpriteLoop2
 pop hl
 pop af
 push af
 ex af,af'
 ld de,$0C
 add hl,de
 djnz largeSpriteLoop1
 pop af
 ret

grbufcpy:
;#include "FastCopy.h"
;-----> Copy the gbuf to the screen (fast)
;Input: nothing
;Output:graph buffer is copied to the screen
fastCopy:
 di
 ld a,$80    ; 7
 nop
 out ($10),a    ; 11
 ld hl,gbuf-12-(-(12*64)+1)  ; 10
 ld a,$20    ; 7
 ld c,a    ; 4
 inc hl    ; 6 waste
 dec hl    ; 6 waste
fastCopyAgain:
 ld b,64    ; 7
 inc c    ; 4
 ld de,-(12*64)+1   ; 10
 nop
 out ($10),a    ; 11
 add hl,de    ; 11
 ld de,10    ; 10
fastCopyLoop:
 add hl,de    ; 11
 inc hl    ; 6 waste
 inc hl    ; 6 waste
 inc de    ; 6
 ld a,(hl)    ; 7
 nop
 out ($11),a    ; 11
 dec de    ; 6
 djnz fastCopyLoop   ; 13/8
 ld a,c    ; 4
 cp $2B+1    ; 7
 jr nz,fastCopyAgain  ; 10/1
 ret     ; 10
; Critical timings:
; command->command: 65
; command->value  : 68
; value  ->value  : 66
; value  ->command: 67

;.end
;END




Follow-Ups: