[A83] CREATEPICT


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

[A83] CREATEPICT



I am trying to make a program that takes the screen and saves it to Pic1.  
With my code, it IS creating Pic1, but it is just a glitchery image, and not 
the sprite I wanted to save.  The source follows.  What am I doing wrong?

        .nolist

        #include "ion.inc"      ;tells TASM--the compiler--what file to read 
from to define rom call memory addresses and such
        .list
_CreatePict = 4333h
PICOBJ = 07h
lcdinstport = 10h
lcddataport = 11h
tPic1 = 00h         
tVarPict = 60h

#ifdef TI83P            ;a check for TASM to see whether it is making an 83 
program--if so, do the next two commands
        .org    progstart-2
        .db     $BB,$6D
#else               ;if it isn't an 83 program, then do something 
[#]else--the next line
        .org    progstart
#endif              ;simply ends the #ifdef command
        ret             

        jr      nc,begin        ;Jumps to the beginning of the program (this 
line and the below three will be 
        .db     "Create A Pic",0        ;The title displayed by ION--anything 
you want
begin:              ;defines where label begin is, program code follows this 
label
    ld b,8                  ;the sprite is 8 high
    ld a,0                  ;make register equal zero (0)
    ld l,a                  ;now make register l equal (0)
    ld ix,sprite                ;load the sprite into register ix
    call ionPutSprite           ;call the library
    call IonFastCopy            ;copy the graph buffer to the 
screen--displays the sprite!

    bcall(_zeroop1)   ; load var name
    ld hl,picname     
    ld de,op1         
    ld bc,3          
    ldir              
    bcall(_chkfindsym)  ; look it up
    jp nc,load_data   ; skip to loaddata if exists.
    bcall(_createpict)  ; else create pic
load_data:
    inc de            ; skip 1st length byte
    inc de            ; skip 2nd length byte
    ld hl,picdata     ; pic data
    ld bc,756         ; pic size
    ldir              ; copy data
    ret
picname:
; Recall our tokens class...?
    .db picobj,tvarpict,tpic1
picdata:
    ld a,(gbuf)
    ret
       ;  I HAVE ALSO TRIED THIS, BUT IT DIDNT WORK:
    ;   out (lcdinstport),a
    ;   bcall(_lcdbusy)
    ;   in a,(lcddataport)
    ;   bcall(_lcdbusy)
    ;ret        
sprite:                     ;defines the sprite! Its a shiny ball where: 
1=pixel on and 0=pixel off
    .db %00111100
    .db %01000010
    .db %10001001
    .db %10000101
    .db %10000001
    .db %10000001
    .db %01000010
    .db %00111100
.end
END