Fejtörő (2016-2017)
Fejtörő (2016-2017)
Mindenkit elfogott már a "Deja vu" érzés. Mintha már megtörtént volna. Szépen lassan odaballangunk a vitrinhez és elővesszük öreg barátunkat, kedvenc gumibillentyűs ZX Spectrum számítógépünket. Meghatottan csatlakoztatjuk hozzá az antennakábelt és a tápegységet, míg végül a bekapcsolás után behangolva a tévét, megjelenik a szívünkbe örökre beégett felirat:
(c) 1982 Sinclair Research Ltd
Töprengünk, mit is csináljunk, miközben kibontunk egy dobozos kólát és odanyúlunk a következő pizzaszeletért. Halk zizegés közben figyeljük a tévé képernyőjét ... egy röpke pillanatra valami átfut körülöttünk, mintha csak a szemünk remegett volna meg, de látszólag semmi nem változott meg ... begépelünk pár sort rutinosan.
10 PRINT "BUEK 2017"
20 GO TO 10
RUN
Hát ilyet már láttunk. Kis szerkesztgetés után alakul a programunk.
5 BORDER 1
10 PRINT PAPER 6; INK 2;" BUEK 2017 "
15 BEEP .05,25
20 GO TO 10
Nem rossz, de volna rajta mit szépíteni. Jó lenne, ha a kis BUEK címkék változatos színnel, össze-vissza jelennének meg a képernyőn, miközben a hang is vidáman ugrál hangról-hangra.
Belekezdünk a szerkesztésbe, de a fránya T betűnk nem csinál semmit. Töprengünk. Valamit lehetne PEEK-el játszani, de nincs kedvünk keresgélni a rendszerváltozók között. Lenyomjuk az "A" betűt, megjelenik a NEW utasítás, kezünk az ENTER felé közelít, de nem! Mégis megírjuk röpke 2-3 perc alatt és hátradőlve székünkben mosolyogva nézzük, ahogy a szépen telik a képernyő. Hiába, egy jó spectrumos nem felejt.
(c) 1982 Sinclair Research Ltd
Töprengünk, mit is csináljunk, miközben kibontunk egy dobozos kólát és odanyúlunk a következő pizzaszeletért. Halk zizegés közben figyeljük a tévé képernyőjét ... egy röpke pillanatra valami átfut körülöttünk, mintha csak a szemünk remegett volna meg, de látszólag semmi nem változott meg ... begépelünk pár sort rutinosan.
10 PRINT "BUEK 2017"
20 GO TO 10
RUN
Hát ilyet már láttunk. Kis szerkesztgetés után alakul a programunk.
5 BORDER 1
10 PRINT PAPER 6; INK 2;" BUEK 2017 "
15 BEEP .05,25
20 GO TO 10
Nem rossz, de volna rajta mit szépíteni. Jó lenne, ha a kis BUEK címkék változatos színnel, össze-vissza jelennének meg a képernyőn, miközben a hang is vidáman ugrál hangról-hangra.
Belekezdünk a szerkesztésbe, de a fránya T betűnk nem csinál semmit. Töprengünk. Valamit lehetne PEEK-el játszani, de nincs kedvünk keresgélni a rendszerváltozók között. Lenyomjuk az "A" betűt, megjelenik a NEW utasítás, kezünk az ENTER felé közelít, de nem! Mégis megírjuk röpke 2-3 perc alatt és hátradőlve székünkben mosolyogva nézzük, ahogy a szépen telik a képernyő. Hiába, egy jó spectrumos nem felejt.
-
- Alapító tag
- Hozzászólások: 353
- Csatlakozott: 2012.01.09. 18:18
- Rádióamatőr hívójel: HG5BMU
- Tartózkodási hely: Surány
- Kapcsolat:
Re: Fejtörő (2016-2017)
Igaz van benne PEEK, de nem keresgéltem a rendszerváltozók között
-
- Alapító tag
- Hozzászólások: 353
- Csatlakozott: 2012.01.09. 18:18
- Rádióamatőr hívójel: HG5BMU
- Tartózkodási hely: Surány
- Kapcsolat:
Re: Fejtörő (2016-2017)
próbáltam véletlenszámgenerátort is írni, de ami "normálisabb" az nem néhány perc
- csege
- Alapító tag
- Hozzászólások: 220
- Csatlakozott: 2012.01.06. 14:15
- Tartózkodási hely: Föld.Naprendszer.Tejút
Re: Fejtörő (2016-2017)
íIgen, ez tényleg látványos.
de mindig ugyanazt a mintát adja
tegyél az elejére egy "Press Enikö to Start'" üzenetet,
és egy ciklust, amiben a 'z' (a peek indulási címe) pörög.
gombnyomásra kilép, és indul a program többi része az aktuális z-től.
nagyon-nagyon valószínűtlen, hogy ugyanannál a z-nél kezdődjék mindig a mese
de mindig ugyanazt a mintát adja
tegyél az elejére egy "Press Enikö to Start'" üzenetet,
és egy ciklust, amiben a 'z' (a peek indulási címe) pörög.
gombnyomásra kilép, és indul a program többi része az aktuális z-től.
nagyon-nagyon valószínűtlen, hogy ugyanannál a z-nél kezdődjék mindig a mese

Re: Fejtörő (2016-2017)
Üdv,
Helyes-helyes, alakuljon csak a megoldás. A PEEK nélküliség jó út, a 2. megoldás már tetszik, csak tényleg nem pár perces ... örülök, hogy van, akinek felkeltette a kíváncsiságát! Az igazi megoldás furmányos, de minden út járható!
Pgyuri
Helyes-helyes, alakuljon csak a megoldás. A PEEK nélküliség jó út, a 2. megoldás már tetszik, csak tényleg nem pár perces ... örülök, hogy van, akinek felkeltette a kíváncsiságát! Az igazi megoldás furmányos, de minden út járható!
Pgyuri
- csege
- Alapító tag
- Hozzászólások: 220
- Csatlakozott: 2012.01.06. 14:15
- Tartózkodási hely: Föld.Naprendszer.Tejút
Re: Fejtörő (2016-2017)
Az ötlet jó, hogy a bevitt PI karaktert cseréljük ki RND karakterre
Basic "tokenek"
RND = A5H = 165
PI = A7H = 167
De nekem elvi kérdéseim volnának:
ez rendszerváltozó
23552 to 23559 KSTATE reading the keyboard
szerintem nem a KSTATE értékét kellene lecserélni,
hiszen a gépeléskor nem fut a program
hanem a basic program memoriában tárolt példányában az első futáskor
a ramban a basic program kezdetét a PROG (23635/6) mutatja
(szerintem ez konfigurációnként állandó, így kikerültk Pgyuri rendszerVÁLTOZÓra vonatkozó tiltását
)
tehát a program először végigsöpör a basic programon,
kicseréli a PI-t RND-re
majd csinálja a dolgát.
Amire oda kell figyelni szerintem:
- a második futástól már nincsenek Pi tokenek a ramban
- nem ismerjük a program hosszát a ramban
Basic "tokenek"
RND = A5H = 165
PI = A7H = 167
De nekem elvi kérdéseim volnának:
ez rendszerváltozó
23552 to 23559 KSTATE reading the keyboard
szerintem nem a KSTATE értékét kellene lecserélni,
hiszen a gépeléskor nem fut a program
hanem a basic program memoriában tárolt példányában az első futáskor
a ramban a basic program kezdetét a PROG (23635/6) mutatja
(szerintem ez konfigurációnként állandó, így kikerültk Pgyuri rendszerVÁLTOZÓra vonatkozó tiltását

tehát a program először végigsöpör a basic programon,
kicseréli a PI-t RND-re
majd csinálja a dolgát.
Amire oda kell figyelni szerintem:
- a második futástól már nincsenek Pi tokenek a ramban
- nem ismerjük a program hosszát a ramban
Re: Fejtörő (2016-2017)
"a ramban a basic program kezdetét a PROG (23635/6) mutatja
(szerintem ez konfigurációnként állandó, így kikerültk Pgyuri rendszerVÁLTOZÓra vonatkozó tiltását
"
"Valamit lehetne PEEK-el játszani, de nincs kedvünk keresgélni a rendszerváltozók között."
a PROG (23635/6) rendszerváltozó
(szerintem ez konfigurációnként állandó, így kikerültk Pgyuri rendszerVÁLTOZÓra vonatkozó tiltását

"Valamit lehetne PEEK-el játszani, de nincs kedvünk keresgélni a rendszerváltozók között."
a PROG (23635/6) rendszerváltozó

Re: Fejtörő (2016-2017)
Legyen az első sor
9000 LET x=PI
Köztudott
, hogy a BASIC terület 23755 memóriacímnél kezdődik (ha nincs Interface 1 csatlakoztatva).
Parancssorból
FOR n=23755 to 24000: PRINT n, PEEK n:NEXT n
után látható, hogy 23762 címen van PI kódja, 167.
Ezt átírva 165-re lesz egy
9000 LET x=RND sorunk
9010 RETURN-t mögé írva lesz egy szubrutinunk, amelyet annyiszor hívunk a programból, ahányszor akarunk, csak elé kell írni a programot.
9000 LET x=PI
Köztudott

Parancssorból
FOR n=23755 to 24000: PRINT n, PEEK n:NEXT n
után látható, hogy 23762 címen van PI kódja, 167.
Ezt átírva 165-re lesz egy
9000 LET x=RND sorunk
9010 RETURN-t mögé írva lesz egy szubrutinunk, amelyet annyiszor hívunk a programból, ahányszor akarunk, csak elé kell írni a programot.
-
- Alapító tag
- Hozzászólások: 353
- Csatlakozott: 2012.01.09. 18:18
- Rádióamatőr hívójel: HG5BMU
- Tartózkodási hely: Surány
- Kapcsolat:
Re: Fejtörő (2016-2017)
A fentebb mellékelt programom "inteligens".
A 100-as sortól kezdve kicseréli az 5db PI-t RND-re.
Ha másodszor futtatjuk akkor csak megtalálja és megszámolja a már lecserélt RND-ket.
Rendszerváltozót nem kell hozzá ismerni, a KSTATE említése csak félrevezető egybeesés.
Valójában a 23552 a következőképp jött ki pár dolog ismeretéből ami nem rendszerváltozó:
képernyő indul:16384-től
képernyő hossz:6912 byte
plussz 256byte printer puffer
=23552 innen indul a keresés, a biztonság kedvéért a PI és az utána levő csillag feltételével.
Így nincsenek abszolút címek, program írás közben lehet bátran szerkeszteni, változtatni, a cseréket minidig a helyén kezeli a rutin.
A 100-as sortól kezdve kicseréli az 5db PI-t RND-re.
Ha másodszor futtatjuk akkor csak megtalálja és megszámolja a már lecserélt RND-ket.
Rendszerváltozót nem kell hozzá ismerni, a KSTATE említése csak félrevezető egybeesés.
Valójában a 23552 a következőképp jött ki pár dolog ismeretéből ami nem rendszerváltozó:
képernyő indul:16384-től
képernyő hossz:6912 byte
plussz 256byte printer puffer
=23552 innen indul a keresés, a biztonság kedvéért a PI és az utána levő csillag feltételével.
Így nincsenek abszolút címek, program írás közben lehet bátran szerkeszteni, változtatni, a cseréket minidig a helyén kezeli a rutin.