This is an archived, read-only copy of the United-TI subforum , including posts and topic from May 2003 to April 2012. If you would like to discuss any of the topics in this forum, you can visit Cemetech's z80 & ez80 Assembly subforum. Some of these topics may also be directly-linked to active Cemetech topics. If you are a Cemetech member with a linked United-TI account, you can link United-TI topics here with your current Cemetech topics.

This forum is locked: you cannot post, reply to, or edit topics. Z80 & 68k Assembly => z80 & ez80 Assembly
Author Message
Jeffrey


Member


Joined: 12 Jun 2003
Posts: 212

Posted: 30 Aug 2003 09:40:02 pm    Post subject:

I am a BASIC programmer, but im trying to learn some asm. Right now though I need to know how to do one thing. I have seen asm libraries that BASIC programmers can use, where the programmer might store a value into A and, according to the value, the library will do something. Well, I know how to make images in ASM programs, but having 5 pictures would mean 5 programs. Is there a way for me to call one asm program from BASIC, and by setting A to 1, or 2, etc. display pic 1 or 2?

I am using greyscale pics, so there is more than one layer.

Sample code of line 1 of pic:
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Back to top
NETWizz
Byte by bit


Bandwidth Hog


Joined: 20 May 2003
Posts: 2369

Posted: 31 Aug 2003 02:33:28 am    Post subject:

Yes,

You would have it set pointers to the correct picture data.

e.g.

Get Real A and store it in Register A; I do not remember how, but could figure it out.

cp 1
jp z,loadpic1
...

put:
ld de,plotSScreen
ld bc,768
ldir
bcall(_grfbufcpy)
ret

loadpic1:
ld hl,label_of_pic1_data
jp put

label_of_pic1_data
.db $00,$00...
...

label_of_pic2_data

...

And there you have it A way of storing more than one pic in one program.
Back to top
Jeffrey


Member


Joined: 12 Jun 2003
Posts: 212

Posted: 31 Aug 2003 09:17:18 am    Post subject:

I tried that, but it didnt work. Im an isiot at asm so far, so I guess I should have asked how to display 1 pic, before I asked this qusetion.

How do you display a picture in ASM?
(backtracking)
Back to top
Tyraniek


Member


Joined: 07 Jun 2003
Posts: 133

Posted: 31 Aug 2003 10:54:54 am    Post subject:

There are two ways to do it : would you like to display a pic stored in PIC1, PIC2 etc. or would you prefer displaying a picture stored in asm in your program ?

For the first way, you can do something like :


Code:
   B_CALL(_grbufclr)
   ld   hl, pic
   RST   20h
   RST   10h
   jr   c, finp       ; cannot find PIC
   ld   a, b
   jr   nz, finp   ; PIC archived
   ex   de, hl
   inc   hl
   inc   hl
   ld   de, plotsscreen
   ld   bc, 756
   ldir
   B_CALL(_grbufcpy)
finp:   ret

pic:   .db   PictObj, tVarPict, tpic1, 0; displays PIC1



For the second way, you have to convert a picture in asm with PIC83, so that you've got something like :
.db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,255,255,255,255,255,255
.db 255,255,255,255,254,127,255,255,255,255,255,255,255,255,255,255,254,96,0,0,0,0,0
,0,0,0,0,0,6,96,0
etc.

Then, you just have to copy these 768 bytes to the graph buffer and display it with the ROM call _grfbufcpy or the routine FastIONcopy. Your code will look like this :

Code:
   B_CALL(_grbufclr)
   ld   hl,pub
   ld   de,plotsscreen
   ld   bc,768
   ldir
   B_CALL(_grbufcpy)



I hope I've helped you
Back to top
Jeffrey


Member


Joined: 12 Jun 2003
Posts: 212

Posted: 31 Aug 2003 12:50:16 pm    Post subject:

Ok, I am using Image Studio to create greyscale images. It gives me two layers for my picture. How do I display both layers at the same time?

So far I can display just layer 1 with:

Code:
   bcall(_clrlcdfull)
   ld a,0
   ld (curcol),a
   ld a,0
                ld (currow),a
   ld hl, txt
   bcall(_puts)
   bcall(_getkey)
   bcall(_grbufclr)
   ld hl,Layer1
   ld de,plotsscreen
   ld bc,768
   ldir
   bcall(_grbufcpy)
   bcall(_getkey)            
     bjump(_JForceCmdNoChar)






Layer1:

 .db $7F,$FF,$FF,$FF,$FF,$FF,$FF,$F7,$FF,$F6,$C7,$06
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FF,$EF,$FF,$0E,$C6,$10
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FF,$EF,$E0,$0E,$C4,$60
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FF,$C8,$00,$06,$CF,$82
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FF,$50,$07,$F7,$67,$90
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FF,$88,$FF,$FD,$4D,$0C
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FE,$07,$C0,$00,$AD,$0C
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FF,$0E,$00,$0A,$C1,$D6
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FF,$00,$3F,$F0,$6F,$92
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FF,$07,$DF,$F0,$07,$EE
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FF,$41,$FF,$F2,$37,$24
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FF,$69,$FE,$03,$BE,$D8
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FE,$18,$1F,$FC,$DD,$80
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FF,$08,$FF,$7C,$AA,$10
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FC,$33,$FC,$09,$66,$02
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FE,$5F,$00,$FE,$02,$44
 .db $7F,$FF,$FF,$FF,$FF,$FF,$F8,$2D,$BF,$F8,$18,$80
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FC,$30,$F7,$F5,$69,$08
 .db $7F,$FF,$FF,$FF,$FF,$FF,$F1,$30,$FF,$F9,$66,$08
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FD,$1D,$F7,$00,$07,$E8
 .db $7F,$FF,$FF,$FF,$FF,$FF,$E9,$21,$0E,$20,$C7,$E8
 .db $7F,$FF,$FF,$FF,$FF,$FF,$E0,$25,$FE,$01,$1F,$60
 .db $7F,$FF,$FF,$FF,$FF,$FF,$F6,$84,$E4,$41,$1F,$60
 .db $7F,$FF,$FF,$FF,$FF,$FF,$C1,$C8,$00,$42,$BF,$D0
 .db $7F,$FF,$FF,$FF,$FF,$FF,$F2,$C0,$90,$28,$3F,$80
 .db $7F,$CF,$FF,$FF,$FF,$FF,$BC,$D0,$80,$01,$DF,$20
 .db $7F,$CC,$FE,$73,$5F,$FF,$9C,$75,$00,$58,$FE,$60
 .db $7F,$CC,$7C,$21,$0F,$FF,$C2,$5E,$60,$41,$FE,$F0
 .db $7F,$BE,$7F,$F9,$4F,$FF,$C1,$84,$CC,$8A,$5F,$78
 .db $7F,$BD,$7F,$39,$CF,$FF,$80,$43,$85,$56,$DF,$C8
 .db $7F,$B8,$2C,$63,$CF,$FF,$C0,$05,$83,$4A,$1E,$6C
 .db $7F,$FF,$FF,$FF,$FF,$FF,$C0,$74,$83,$50,$33,$CC
 .db $7F,$FF,$FF,$FF,$FF,$FF,$80,$F9,$06,$60,$00,$EE
 .db $7F,$FF,$FF,$FF,$FF,$FF,$C0,$7B,$3E,$E0,$FF,$1C
 .db $7F,$FF,$FF,$FF,$FF,$FF,$C0,$B5,$3C,$C1,$FF,$C4
 .db $7F,$FF,$EF,$FF,$FF,$FF,$80,$9F,$6A,$83,$E1,$20
 .db $7F,$FF,$F2,$FF,$FF,$FF,$C0,$DD,$01,$C7,$B0,$18
 .db $7F,$FF,$F3,$FF,$FF,$FF,$E0,$B0,$07,$FF,$C0,$CE
 .db $7F,$FF,$EF,$FF,$FF,$FF,$C0,$00,$C4,$5F,$70,$96
 .db $7F,$FF,$EF,$FF,$FF,$FF,$C0,$1A,$06,$5C,$CC,$32
 .db $7F,$FF,$F3,$FF,$FF,$FF,$C0,$00,$40,$15,$BC,$20
 .db $7F,$FF,$FF,$FF,$FF,$FF,$E0,$0D,$83,$63,$FF,$7C
 .db $7F,$FF,$FF,$FF,$FF,$FF,$F0,$1D,$17,$59,$FF,$DA
 .db $7F,$FF,$FF,$FF,$FF,$FF,$E8,$63,$03,$7B,$FF,$E2
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FD,$52,$00,$54,$7F,$FC
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FE,$5A,$4F,$C8,$FF,$FC
 .db $7F,$FF,$FF,$FF,$FF,$FF,$F3,$0D,$06,$FF,$FF,$FE
 .db $7F,$FF,$FF,$FF,$FF,$FF,$EF,$05,$06,$FF,$83,$FE
 .db $7F,$FF,$FF,$FF,$FF,$FF,$E9,$0E,$01,$FF,$87,$FE
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FB,$BC,$1F,$FF,$C0,$FE
 .db $7F,$FF,$FF,$FF,$FF,$FF,$C3,$FC,$1F,$FF,$E0,$7A
 .db $7F,$FF,$FF,$FF,$FF,$FF,$F1,$F9,$6F,$FF,$F9,$FA
 .db $7F,$FF,$FF,$FF,$FF,$FF,$E0,$FA,$FF,$FF,$FF,$F2
 .db $7F,$FF,$FF,$FF,$FF,$FF,$F5,$7B,$5F,$FF,$FE,$FA
 .db $7F,$FF,$FF,$FF,$FF,$FF,$BD,$73,$7F,$FF,$FF,$F2
 .db $7F,$FF,$FF,$FF,$FF,$FF,$A4,$21,$FF,$FF,$FF,$F2
 .db $7F,$FF,$FF,$FF,$FF,$FF,$85,$B3,$FF,$FF,$FF,$B6
 .db $7F,$FF,$FF,$FF,$FF,$FF,$A6,$8B,$FF,$FF,$FF,$F6
 .db $7F,$FF,$FF,$FF,$FF,$FF,$8E,$32,$FF,$E7,$FF,$F6
 .db $7F,$FF,$FF,$FF,$FF,$FF,$4E,$A2,$BF,$86,$0F,$E0
 .db $7F,$FF,$FF,$FF,$FF,$F8,$08,$40,$85,$3A,$00,$00
 .db $7F,$FF,$FF,$FF,$FF,$FF,$F9,$FF,$ED,$DF,$80,$00
 .db $7F,$FF,$FF,$FF,$FF,$FF,$F9,$6F,$F6,$DF,$80,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00

Layer2:

 .db $7F,$FF,$FF,$FF,$FF,$FF,$FF,$F8,$00,$0F,$00,$18
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FF,$E0,$00,$07,$00,$00
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FF,$C0,$00,$07,$00,$00
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FF,$F0,$00,$0F,$00,$60
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FF,$B8,$00,$0E,$80,$60
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FF,$00,$00,$06,$00,$F0
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FF,$00,$00,$06,$00,$F2
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FE,$00,$00,$04,$07,$E2
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FE,$00,$00,$0C,$07,$E0
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FE,$00,$20,$0C,$0F,$90
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FE,$06,$00,$0C,$0F,$DE
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FE,$16,$01,$FC,$0F,$2E
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FE,$07,$E0,$00,$0E,$7E
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FE,$07,$00,$00,$5D,$FE
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FF,$CE,$00,$06,$99,$FC
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FC,$3E,$80,$01,$FD,$FA
 .db $7F,$FF,$FF,$FF,$FF,$FF,$FC,$1E,$00,$01,$E7,$FE
 .db $7F,$FF,$FF,$FF,$FF,$FF,$F8,$0F,$00,$03,$97,$F6
 .db $7F,$FF,$FF,$FF,$FF,$FF,$F8,$FF,$00,$07,$9B,$F6
 .db $7F,$FF,$FF,$FF,$FF,$FF,$F3,$FE,$00,$1F,$FF,$F6
 .db $7F,$FF,$FF,$FF,$FF,$FF,$F6,$1E,$00,$1F,$3F,$F6
 .db $7F,$FF,$FF,$FF,$FF,$FF,$F0,$1A,$00,$3E,$FF,$FE
 .db $7F,$FF,$FF,$FF,$FF,$FF,$E0,$7B,$18,$3E,$FF,$FE
 .db $7F,$FF,$FF,$FF,$FF,$FF,$E0,$37,$F8,$3D,$7F,$EE
 .db $7F,$FF,$FF,$FF,$FF,$FF,$CC,$3F,$E0,$77,$FF,$FE
 .db $7F,$FF,$EF,$FF,$FF,$FF,$C3,$2F,$00,$7E,$FF,$DE
 .db $7F,$9F,$EF,$FF,$FF,$FF,$E3,$8E,$00,$27,$FF,$9E
 .db $7F,$9F,$EF,$FF,$7F,$FF,$E1,$E4,$00,$3F,$FF,$0E
 .db $7F,$DC,$ED,$EF,$7F,$FF,$C0,$FE,$00,$77,$BF,$86
 .db $7F,$DA,$ED,$EF,$7F,$FF,$C0,$FC,$00,$EF,$3F,$F4
 .db $7F,$DD,$F6,$F7,$7F,$FF,$80,$78,$00,$FF,$FF,$F0
 .db $7F,$FF,$FF,$FF,$FF,$FF,$80,$3B,$00,$FF,$CC,$30
 .db $7F,$FF,$FF,$FF,$FF,$FF,$80,$3E,$01,$FF,$FF,$10
 .db $7F,$FF,$FF,$FF,$FF,$FF,$80,$3C,$01,$FF,$FF,$E0
 .db $7F,$FF,$FF,$FF,$FF,$FF,$80,$78,$03,$FF,$FF,$F8
 .db $7F,$FF,$F6,$FF,$FF,$FF,$C0,$60,$05,$FF,$FE,$FC
 .db $7F,$FF,$E7,$FF,$FF,$FF,$C0,$00,$07,$FF,$C0,$3E
 .db $7F,$FF,$E6,$FF,$FF,$FF,$C0,$00,$02,$7F,$FF,$1E
 .db $7F,$FF,$F6,$FF,$FF,$FF,$E0,$00,$02,$3C,$FF,$EE
 .db $7F,$FF,$F6,$FF,$FF,$FF,$E0,$00,$C0,$38,$33,$FE
 .db $7F,$FF,$FE,$FF,$FF,$FF,$E0,$00,$88,$60,$D8,$1E
 .db $7F,$FF,$FF,$FF,$FF,$FF,$E0,$00,$18,$C1,$FF,$82
 .db $7F,$FF,$FF,$FF,$FF,$FF,$E0,$00,$00,$C3,$FF,$E0
 .db $7F,$FF,$FF,$FF,$FF,$FF,$F0,$1C,$00,$C7,$FF,$FC
 .db $7F,$FF,$FF,$FF,$FF,$FF,$F0,$BC,$00,$EF,$FF,$FE
 .db $7F,$FF,$FF,$FF,$FF,$FF,$F1,$BC,$00,$FF,$FF,$FE
 .db $7F,$FF,$FF,$FF,$FF,$FF,$F8,$FE,$01,$FF,$FF,$FE
 .db $7F,$FF,$FF,$FF,$FF,$FF,$F0,$FE,$01,$FF,$FF,$FE
 .db $7F,$FF,$FF,$FF,$FF,$FF,$F3,$FC,$1F,$FF,$FF,$FE
 .db $7F,$FF,$FF,$FF,$FF,$FF,$E1,$FC,$07,$FF,$FF,$FE
 .db $7F,$FF,$FF,$FF,$FF,$FF,$E9,$FC,$0F,$FF,$FF,$FE
 .db $7F,$FF,$FF,$FF,$FF,$FF,$C9,$FC,$9F,$FF,$FF,$FE
 .db $7F,$FF,$FF,$FF,$FF,$FF,$C9,$FD,$1F,$FF,$FF,$FE
 .db $7F,$FF,$FF,$FF,$FF,$FF,$C8,$FC,$3F,$FF,$FF,$FE
 .db $7F,$FF,$FF,$FF,$FF,$FF,$C0,$FE,$3F,$FF,$FF,$FE
 .db $7F,$FF,$FF,$FF,$FF,$FF,$C0,$72,$7F,$FF,$FF,$FE
 .db $7F,$FF,$FF,$FF,$FF,$FF,$E0,$00,$7F,$FF,$FF,$FE
 .db $7F,$FF,$FF,$FF,$FF,$FF,$C1,$00,$FF,$FF,$FF,$FE
 .db $7F,$FF,$FF,$FF,$FF,$FF,$C1,$01,$FF,$FF,$FF,$FE
 .db $7F,$FF,$FF,$FF,$FF,$FF,$81,$01,$FF,$FF,$FF,$FE
 .db $7F,$FF,$FF,$FF,$FF,$F8,$00,$00,$00,$00,$00,$00
 .db $7F,$FF,$FF,$FF,$FF,$F8,$00,$00,$00,$30,$00,$00
 .db $7F,$FF,$FF,$FF,$FF,$F8,$00,$80,$09,$30,$00,$00
 .db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00

txt:
   .db "Pic loading", 0


Last edited by Guest on 31 Aug 2003 02:29:29 pm; edited 1 time in total
Back to top
sgm


Calc Guru


Joined: 04 Sep 2003
Posts: 1265

Posted: 29 Sep 2003 02:01:12 pm    Post subject:

That depends of whether you have a 73-83 Plus (get Duck's routine) or an 85-V200* (Find out how to swap the RAM section the LCD looks at).



*@Moderator: please delete any post that references the Voyage 400 Smile
Back to top
tr1p1ea


Elite


Joined: 03 Aug 2003
Posts: 870

Posted: 29 Sep 2003 02:06:51 pm    Post subject:

Yes Duck's GrayScale Package is the greatest!

I am using it to make a game....
Back to top
Display posts from previous:   
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
    »
» View previous topic :: View next topic  
Page 1 of 1 » All times are UTC - 5 Hours

 

Advertisement