XX-BASIC DEMO 2 X$*********************************$* *$* Extended BASIC demo-program *$* *$* 25.11.1988 by MiKrSoft *$* *$********************************* 6 B-O-A-0J P P Pmod 800 : 200*32022%5>6,3(()86&+291()2%5>+$&.(),&7,>2%5$=zaplneni obr_sipek a obr_hacku.5(6/,>5$0(&(~'tucny tisk2  $Extended BASIC compiler demo-program$   25.11.1988 by MiKrSoft-  Start po stisku SPACE nebo FIRE*cislo joysticku (* !'posun na dalsi joystick" 'dany joystick je aktivni)* *d 3,6>6,3.vykresleni sipky)d ' cekani na uvolneni firehlavni smycka32+<%>6,3.'4),5fire aktivni osetreni aktivace fire:------------------------),5 ,sipka v kreslicim poli%$59kresleni/mazani!K"!bod na hrot sipky--0,L4%$59*sipka v okne KRESLI*-N0,|4%$59*sipka v okne MAZ)-~0,4=$3,sipka v okne ZAPIS,-0,435(&7sipka v okne PRECTI)-0,9460$sipka v okne SMAZ smazani obrazovky:-------------------60$&;* <*uschovani pozice sipky".5(6/,>5$0(&(obnoveni ramecku)*; *< 3,6>6,3.obnoveni sipky)d ' cekani na uvolneni fire  pohyb sipky podle joysticku: -----------------------------32+<%>6,3. 60(*'%60(nektery ze smeru je aktivni!;* <*nova pozice=stara;60(911''rozdeleni podle smeru+&(.(->%/$1cekani na zatemnovaci impuls95$7>2%smazani sipky"*; *<pozice=nova pozice3,6>6,3.vykresleni sipky,84;*!vpravo,4<*!nahoru- 4;*"vlevo-4<*"dolu1 nahoru vpravo1 nahoru vlevo' dolu vlevo' dolu vpravo vykresleni ramecku:--------------------.5(6/,>5$0(&(&}E'inverzni,tucny tisk , & kresli | maz | zapis | precti | smaz *$*h 3,6>+$&(hacky nad pismeny* 3,6>+$&(* 3,6>+$&(*( 3,6>+$&(L58 L58 L5 L5%$59*mod KRESLI% inicializace promennych s obrazy:%---------------------------------- &7,>2%5$=  6,3. *5osm radku sipky!2%5>6,3(()cteni radku/ *5dalsich sedm posunuti tohoto radku72%5>6,3(()*2%5>6,3((")'posun vlevo    +$&( *5osm radku hacku2%5>+$&.() 1 uschovani pole 8*16 bodu do promene uschovna:1---------------------------------------------- 6&+29>2%0mod cteni VRAM%32=,&*!$"(#adresa VRAM<8/2=(1*86&+291()'adresa zacatku promenne uschovna">[8/2=(1ld de,(ulozeni)>*32=,&ld hl,(pozice)&7,>&5cteni obrazovky/ vraceni uschovaneho pole zpet na obrazovku:/-------------------------------------------- 95$7>2%0mod zapisu VRAM<8/2=(1*86&+291()'adresa zacatku promenne uschovna 3,6>2%%32=,&*!$"(#adresa VRAM">[8/2=(1ld de,(ulozeni)>*32=,&ld hl,(pozice)3,6>&5zapsani na obrazovku! vykresli na pozici x,y sipku:!------------------------------ 3,6>6,3.)6&+29>2%uschovani obrazku pod sipkou#0mod zapisu VRAM - barva 1D8/2=(1*2%5>6,3(( ')'adresa 1.radku jedne z 8 sipek!3,6>2%jeji preneseni do VRAM! vykresli na pozici x,y hacek:!------------------------------ 3,6>+$&(#0mod zapisu VRAM - barva 018/2=(1*2%5>+$&.()'adresa 1,radku hacku!3,6>2%jeho preneseni do VRAM obraz sipky:-------------6,3.9`  obraz hacku:-------------+$&(x0#6 B-zde je bezpodminecne nutne# cekani na vertikalni zatemneni:#--------------------------------&(.(->%/$1>in a,(0CEh)>@and 40h>(jr z,$-6>in a,(0CEh)>@and 40$> jr nz,$-6" podprogramy ve strojovem kodu:"-------------------------------5 tato cast musi pri prekladu do pameti i na kazetu7 bezpodminecne lezet uvnitr oblasti 2000H az 7FFFh !# proto nasleduji vyplnovaci data$  $   zapis obrazovky na mgf:------------------------=$3,'95$7>2%obnoveni obrazku pod sipkou0mod cteni VRAM"52osetreni Break pri zapise2&+<%$>0*>pripojeni VRAM)# screen zapis VRAM.21(&>0* precteni obrazovky z mgf:-------------------------- 35(&7'95$7>2%obnoveni obrazku pod sipkou0mod zapisu VRAM!52osetreni Break pri cteni2&+<%$>0*>pripojeni VRAM" *screencteni VRAM .21(&>0*>odpojeni VRAM7B5ceka na uvolneni breaku,protoze pri stisku skace, na chyba_mgf a odtamtud zpet na konec_mgf55223,6>6,3.vykresleni sipky &+<%$>0*3.21(&>0*0 prenos obrazce 8*16 bodu z DE do VRAM na HL:0--------------------------------------------- 3,6>&5 >di>ld b,8>ld a,(de) >Old c,a>in a,(0E0h)>qld (hl),c>in a,(0E1h) >inc de >#inc hl>ld a,(de) >Old c,a>in a,(0E0h)>qld (hl),c>in a,(0E1h) >inc de >#inc hl >}ld a,l>&add a,26h >old l,a>0jr nc,$+1 >$inc h>djnz $-11 >ei- prenos obrazce 8*16 bodu z VRAM HL na DE:------------------------------------------- &7,>&5 >di>ld b,8>in a,(0E0h)>Nld c,(hl)>in a,(0E1h) >yld a,c>ld (de),a >inc de >#inc hl>in a,(0E0h)>Nld c,(hl)>in a,(0E1h) >yld a,c>ld (de),a >inc de >#inc hl >}ld a,l>&add a,26h >old l,a>0jr nc,$+1 >$inc h>djnz $-11 >ei