[elektro-etc] a kiirt versenyrol
Erdos Zoltan
silverst at t-online.hu
Sun Oct 10 22:28:32 CEST 2010
Hali!
par napja irtam, hogy versenyt ajanlok a legkisebb mukodteto program
megirasara Z 80 alapon.
sajnos a kiirasra egyetlen megoldas sem erkezet..
a hatarido most lejart.
en megcsinaltam gyorsan. egybol el is kuldtem az erintettnek..
kb 2 ora alatt ugy, hogy a z80 assembly-t mar reg elfelejtettem.
amire emlekeztem az a specialis rutinhivo (RST) utasitas (amivel lehet
byte-okat sporolni)
tehat egy vazlatos megoldas:
;
; Z80 minimal sys
;
; reset (3)
rst0: rst 1 ; beolvas egy 4 jegyu cimet a billentyuzetrol a (hl)
regiszterbe
jp (hl) ; programvegrehajtas a HL altal meghatarozott helyrol
;
; input 4 digit to hl
; (5)
rst1: rst 2 ; beolvas egy 2 jegyu erteket a billentyuzetrol az A
regiszterbe
mov h,a ; elpakolja a H regiszterbe
rst 2 ; beolvas egy 2 jegyu erteket a billentyuzetrol az A
regiszterbe
mov l,a ; elpakolja az L regiszterbe
ret ; es visszamegy a hivo helyre
;
; input 2 char to A
; (7)
rst2: rst 3 ; beolvas egy 4 bites erteket az A regiszterbe
rld a ; 4 bittel feltolja a beolvasottat a byte felso felebe
mov b,a ; es felremasolja B-be
rst 3 ; beolvas egy 4 bites erteket az A regiszterbe
or a,b ; es osszefesuli B-vel
ret ; es vissza
;
; input digit to A low side
; (10)
rst3: in a,port ; hexa billentyuzet beolvasas
and a,#80 ; a legfelso bit a lenyomas indikator
jz rst3 ; ha nincs semmi nyomva, varakozik (ujra olvasgat)
in a,port ; ervenyes lenyomas beolvasasa
and a,#0F ; ertek kivagasa (szam csak az also felen lehet)
ret
;
;
;
; display memory location, and modify
; (input 4 digit, display, increment or input data and write
; (27)
memo: rst 1 ; beolvas 4 karakteres cimet a hl regiszterbe
memo2: mov a,(hl) ; beolvassa a memoriabol a cim tartalmat az akkuba
out port,a ; es kiirja a ledekre
;
memo3: in a,port ; beolvassa a billentyu allapotot
and a,#80 ; a legfelso bit a lenyomas indikator
jz memo3 ; megvarjuk, mig elengedik (ujra olvasgat)
in a,port ; beolvassa a billentyu allapotot
and a,#20 ; a b6-on van a cimnovelo gomb
jnz nexta ; ha az van lenyomva, kovetkezo cim
rst 2 ; ha nem leptetes, akkor beolvas erteket
mov (hl),a ; es tarol,
; majd lep a kovetkezo cimre
;
nexta: inc hl ; noveljuk a cimet
next1: in a,port ; hexa billentyuzet beolvasas
and a,#80 ; a legfelso bit a lenyomas indikator
jnz next1 ; megvarjuk, mig elengedik (ujra olvasgat)
jr memo2 ; es ujra kijelezzuk
;
;
More information about the Elektro-etc
mailing list