vforth : create grafscr 3696 allot : draw in allot graphic and then copy to 4352

Basic and Machine Language

Moderator: Moderators

Post Reply
funkheld
Vic 20 Devotee
Posts: 241
Joined: Tue Sep 10, 2019 4:23 am

vforth : create grafscr 3696 allot : draw in allot graphic and then copy to 4352

Post by funkheld »

Hi good afternoon.
Draw in create allot and then copy to screen 4352.
wonderful thing in vforth.
at vforth in $a000 I still have about 20kb over for the program.

greeting

Code: Select all

variable l

create grafscr 3696 allot

: getbad
dup  16  /  336  *  swap  15  and  +
swap  8  /  16  *  +  grafscr  +  ;

create bmask
128  c,  64  c,  32  c,  16  c,  8  c,  4  c,  2  c,  1  c,

: plot
over  swap
getbad  swap  7  and  bmask  +  c@ over  c@ or  swap  c!  ;

: unplot
over  swap
getbad  swap  7  and  bmask  +  c@ not over  c@ and  swap  c!  ;

: xplot
over  swap
getbad  swap  7  and  bmask  +  c@ over  c@ xor  swap  c!  ;

: grafikscr
4352 3696 0 fill
151 36867 c! 21 36866 c! 204 36869 c! 14 36864 c!
255 16 do i i 4096 16 - + c! loop
255 16 do 6 i 37888 16 - + c! loop ;

: rechte
50 l c@ + 10 l c@ + do 10 l c@ + i  plot loop 
50 l c@ + 10 l c@ + do i 10 l c@ +  plot loop
50 l c@ + 10 l c@ + do i 50 l c@ +  plot loop
51 l c@ + 10 l c@ + do 50 l c@ + i  plot loop ;

: text
12 36864 c! 22 36866 c! 174 36867 c! 192 36869 c! ;

: clsgraf
grafscr 3696 0 fill ;

: gehe
grafikscr 
5 l c!
clsgraf
10 0 do rechte l c@ 10 + l c!  loop 
grafscr 4352 3696 cmove
key . text ;
Attachments
grafallot.jpg
Post Reply