Re: A83: TASM divide error


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

Re: A83: TASM divide error



I feel obligated to reply to this email since that routine youre using is one 
I wrote... =P I dont remember much about it though, but I can assure you that 
its not my code that is giving you a "divide error". I copied and pasted your 
source into a text file, and compiled that, and it compiled fine. However, I 
didnt have your data at 'picture' so my compiled version displays crap, but 
you probably have more to the program to make it work right... I have 
attached the source file that I compiled, to this mail, so compile that and 
let me know if it still gives you problems...

Jason_K

In a message dated 5/14/00 2:33:10 PM Central Daylight Time, 
r_r_williams@yahoo.com writes:

> whats a tasm divide error? here is my soucrce code for
>  my program when it gets the error. also, i get no
>  other errors.
>  
>  .nolist
>  #define end .end
>  #define END .end
>  #define equ .equ
>  #define EQU .equ
>  #include "ti83asm.inc"
>  #include "tokens.inc"
>  .list
>  .org 9327h
>  proj_start:
>          call _runIndicOff           ; turn off run
>  indic
>          ld hl,picture               ; load title pic
>          ld de,PLOTSSCREEN 
>          ld bc,768 
>          ldir 
>          call _GRBUFCPY_V            ; copy picture
>          call _clrLCDfull            ; clr screen
>          SET textEraseBelow, (IY+textflags) ;makes
>  rountine look better
>          ld hl, Data_Table_1         ; load data table
>          call Text_Select_Menu       ; call TCPA's
>  routine
>          or a
>          jp z, Exit_Program          ; if clear, exit
>          cp 1
>          jp z, click_start           ; start the game
>          cp 2
>          jp z, about_screen          ; disp about
>  screen
>          cp 3
>          jp z, Exit_Program          ; quit if quit
>  clicked
>  about_screen:
>          call _clrLCDfull            ; nothing here yet
>          call D_I_Waitkey            ; pause for key
>    jp Exit_Program             ; exit :p
>  click_start: 
>          call _clrLCDfull            ; nothing here
>  also
>          call D_I_Waitkey            ; pause for key
>    jp Exit_Program             ; exit
>  Direct_Input:
>          ld a, 0FFh
>          out (1), a
>          ld a, b
>          out (1), a
>          in a, (1)
>          ret
>  D_I_Waitkey:
>          ld a, 254
>  D_I_Loop:
>          ld b, a 
>          ld c, a
>          call Direct_Input
>          cp 255 
>          jr nz, D_I_Key
>          ld a, c 
>          RLCA
>          cp 127 
>          jr z, D_I_Waitkey
>          jr D_I_Loop
>  D_I_Key:
>          EI 
>          ld c, a
>  D_I_Key_Loop:
>          halt 
>          call Direct_Input
>          cp c 
>          jr z, D_I_Key_Loop
>          ld a, b 
>          ret
>  Text_Select_Menu:
>          ld c, (hl) 
>          ld e, c
>  Cont_Text_Select:
>          ld c, e
>          ld b, (hl) 
>          push bc
>          push hl 
>          inc hl
>  Text_Select_Loop:
>          ld a, c
>          cp b 
>          jr nz, Text_Dont_Highlight
>          SET textinverse, (IY+textflags)
>  Text_Dont_Highlight:
>          ld e, (hl) 
>          inc hl
>          ld d, (hl) 
>          inc hl
>          ld (pencol), de
>          push bc 
>          call _vputs 
>          pop bc
>          RES textinverse, (IY+textflags)
>          DJNZ Text_Select_Loop
>          pop hl 
>          pop bc
>          ld d, b 
>          ld e, c 
>  Text_Select_Getkey:
>          call D_I_Waitkey
>          cp 0FEh 
>          jr z, Text_Arrow_Keys
>          cp 0FDh 
>          jr z, Text_Enter_Or_Clear
>          jr Text_Select_Getkey
>  Text_Arrow_Keys:
>          ld a, c
>          cp 254 
>          jr z, Text_Decrease_E
>          cp 253 
>          jr z, Text_Increase_E
>          cp 251 
>          jr z, Text_Decrease_E
>          cp 247 
>          jr z, Text_Increase_E
>          jr Text_Select_Getkey
>  Text_Enter_Or_Clear:
>          ld a, c
>          cp 254 
>          jr z, Text_Selection_Made
>          cp 191 
>          jr nz, Text_Select_Getkey
>          xor a 
>          ret
>  Text_Selection_Made:
>          ld a, d 
>          sub e
>          inc a
>          ld e, a 
>          ret
>  Text_Increase_E:
>          ld a, e 
>          cp d
>          jr z, Text_Select_Getkey
>          inc e 
>          jr Cont_Text_Select
>  Text_Decrease_E:
>          ld a, e 
>          cp 1
>          jr z, Text_Select_Getkey
>          dec e
>          jr Cont_Text_Select
>  Exit_Program:
>          RES textEraseBelow, (IY+textflags) ;reset flag
>          ret
>  Data_Table_1:
>   .db 3
>   .db 15,23
>   .db " Start Game ",0
>   .db 15,30
>   .db " About Game ",0
>   .db 15,37
>   .db " Quit Game ",0
>  picture: (removed)
>   .end
>  END
>  
>  
>  =====
>  --Ranfinity, " the future is yours.."
>  

.nolist
#define end .end
#define END .end
#define equ .equ
#define EQU .equ
#include "ti83asm.inc"
#include "tokens.inc"
.list
.org 9327h

proj_start:
        call _runIndicOff           ; turn off run indic
        ld hl,picture               ; load title pic
        ld de,PLOTSSCREEN 
        ld bc,768 
        ldir 
        call _GRBUFCPY_V            ; copy picture
        call _clrLCDfull            ; clr screen
        SET textEraseBelow, (IY+textflags) ;makes rountine look better
        ld hl, Data_Table_1         ; load data table
        call Text_Select_Menu       ; call TCPA's routine
        or a
        jp z, Exit_Program          ; if clear, exit
        cp 1
        jp z, click_start           ; start the game
        cp 2
        jp z, about_screen          ; disp about screen
        cp 3
        jp z, Exit_Program          ; quit if quit clicked
about_screen:
        call _clrLCDfull            ; nothing here yet
        call D_I_Waitkey            ; pause for key
	jp Exit_Program             ; exit :p
click_start: 
        call _clrLCDfull            ; nothing here also
        call D_I_Waitkey            ; pause for key
	jp Exit_Program             ; exit
Direct_Input:
        ld a, 0FFh
        out (1), a
        ld a, b
        out (1), a
        in a, (1)
        ret
D_I_Waitkey:
        ld a, 254
D_I_Loop:
        ld b, a 
        ld c, a
        call Direct_Input
        cp 255 
        jr nz, D_I_Key
        ld a, c 
        RLCA
        cp 127 
        jr z, D_I_Waitkey
        jr D_I_Loop
D_I_Key:
        EI 
        ld c, a
D_I_Key_Loop:
        halt 
        call Direct_Input
        cp c 
        jr z, D_I_Key_Loop
        ld a, b 
        ret
Text_Select_Menu:
        ld c, (hl) 
        ld e, c
Cont_Text_Select:
        ld c, e
        ld b, (hl) 
        push bc
        push hl 
        inc hl
Text_Select_Loop:
        ld a, c
        cp b 
        jr nz, Text_Dont_Highlight
        SET textinverse, (IY+textflags)
Text_Dont_Highlight:
        ld e, (hl) 
        inc hl
        ld d, (hl) 
        inc hl
        ld (pencol), de
        push bc 
        call _vputs 
        pop bc
        RES textinverse, (IY+textflags)
        DJNZ Text_Select_Loop
        pop hl 
        pop bc
        ld d, b 
        ld e, c 
Text_Select_Getkey:
        call D_I_Waitkey
        cp 0FEh 
        jr z, Text_Arrow_Keys
        cp 0FDh 
        jr z, Text_Enter_Or_Clear
        jr Text_Select_Getkey
Text_Arrow_Keys:
        ld a, c
        cp 254 
        jr z, Text_Decrease_E
        cp 253 
        jr z, Text_Increase_E
        cp 251 
        jr z, Text_Decrease_E
        cp 247 
        jr z, Text_Increase_E
        jr Text_Select_Getkey
Text_Enter_Or_Clear:
        ld a, c
        cp 254 
        jr z, Text_Selection_Made
        cp 191 
        jr nz, Text_Select_Getkey
        xor a 
        ret
Text_Selection_Made:
        ld a, d 
        sub e
        inc a
        ld e, a 
        ret
Text_Increase_E:
        ld a, e 
        cp d
        jr z, Text_Select_Getkey
        inc e 
        jr Cont_Text_Select
Text_Decrease_E:
        ld a, e 
        cp 1
        jr z, Text_Select_Getkey
        dec e
        jr Cont_Text_Select
Exit_Program:
        RES textEraseBelow, (IY+textflags) ;reset flag
        ret
Data_Table_1:
	.db 3
	.db 15,23
	.db " Start Game ",0
	.db 15,30
	.db " About Game ",0
	.db 15,37
	.db " Quit Game ",0
picture:  ;removed

.end
END