Vianocny darcek

     V ramci rubriky "Programujeme v strojovom kode II." sme pripravili pre vas maly vianocny darcek - jeden malicky program v strojovom kode (dlhy 144 bajtov). Pozor ! Program je urceny specialne pre pocitace ZX Spectrum a vsetky ostatne, ktore su s nim aspon ciastocne kompatibilne (Didaktik, Sam) a pre vsetky emulatory ZX Spektra.
     Program je napisany tak, aby ste ho mohli bez akychkolvek uprav priamo prepisat do lubovolnej verzie vyvojoveho systemu MRS. Nie su v nom pouzite ziadne specialne pseudoinstrukcie ani direktivy, takze pokial pracujete v inom systeme, urcite nebude pre vas problem prepisat ho do tohto systemu.
     Po prepisani programu a jeho prelozeni ho spustite od navestia run. Program je uplne sebestacny, to znamena ze nevyuziva ziadne podprogramy a sluzby operacneho systemu v pameti ROM.
     Verim, ze tento program bude spestrenim vasich vianocnych sviatkov.

 org #8000 
run ld a,#08 
 out (#fe),a 
 ld hl,#5aff 
 ld de,#5afe 
 ld bc,#0300 
 ld (hl),#07 
 lddr  
 ld (hl),c 
 ld b,#18 
 lddr  
vesele xor 
 in a,(#fe) 
 or #e0 
 inc 
 jr nz,vesele 
 ld hl,#4030 
 ld de,pf1994 
 ld bc,#0810 
vanoce ld a,(de) 
 ld (hl),a 
 inc de 
 call rok 
 djnz vanoce 
 ld b,#04 
vam call novy 
 djnz vam 
 ld de,#0808 
praje ld b,e 
 push hl 
 push bc 
busy call novy 
 rlc 
 jr nc,#01 
 dec 
 djnz busy 
 pop bc 
 pop hl 
 push hl 
 push bc 
soft call novy 
 rrc 
 jr nc,#01 
 inc 
 djnz soft 
 pop bc 
 pop hl 
 ld a,d 
 dec 
 cp #01 
 sbc a,a 
 and #10 
 add a,e 
 ld b,a 
hard call novy 
 djnz hard 
 ld a,#02 
 add a,e 
 ld e,a 
 dec 
 jr nz,praje 
 ld (hl),#fe 
 xor 
stastn in a,(#fe) 
 or #e0 
 inc 
 jr z,stastn 
 ret  
novy ld a,c 
 or (hl) 
 ld (hl),a 
rok inc 
 ld a,h 
 and #07 
 ret nz 
 ld a,#20 
 add a,l 
 ld l,a 
 ret 
 ld a,#f8 
 add a,h 
 ld h,a 
 ret  
pf1994 db #28,#10,#ba,#7c 
 db #7c,#ba,#38,#54 

Nazad / back