Projektek

Ezen a lapon azokat a "projekteket" gyűjtjük össze, amelyek több programból, hardver bővítésből állnak, és használatuk részletesebb leírást igényel.

Hardver projektek:

  1. Bulldózer irányítása
  2. Feleltető rendszer
  3. Hálózatba kötött gépek
  4. Emulátor mini LCD képernyőn
  5. LPC1114 mikrokontroller alapú LCD kijelzős HT1080Z emulátor
  6. LPC1768 mikrokontroller alapú LCD kijelzős HT1080Z emulátor
  7. HT klón építése
  8. A JETELEC floppy bővítő élesztése
  9. MIST HT1080Z
  10. HT1080Z/PLUS DIY és HT1080Z-FDD
Szoftver projektek:
  1. EDI és assembly források
  2. MICOLOR 01 színes grafikus bővítés és demók
  3. LE18 grafikus bővítés és demók
  4. Galaxy Invasion
  5. Teljes képernyős szövegszerkesztő
  6. A LOGO program javítása
  7. A PI meghatározása

Bulldózer irányítása

Sz. Lukács János készítette azt a relés vezérlőegységet, amit a 8 bites I/O portra lehetett kapcsolni és OUT illetve INP utasításokkal BASIC-ből vezérelni. Az output porton egy-egy tranzisztorral meghajtva 8 relé helyezkedett el, amelyek egy külső tápegység 5V-ra szabályozott feszültségét vagy a földpontot tudták az egység kimeneteire kapcsolni.

Képek a relés vezérlőről (rákattintva nagyíthatók)

Ezzel a relés vezérlőegységgel lehetett egy távirányítható játék bulldózert vezérelni. Ehhez a (vezetékes) távirányító helyett a relés vezérlő kimeneteit kellett a belső motorok pólusaira kapcsolni. Az illesztés csatlakozója az alábbi harmadik képen látszik.

Képek a bulldózerről (rákattintva nagyíthatók)

A bulldózeren 6 féle mozgás vezérelhető: Mozgás előre-hátra, rakodólapát felemelés-leengedés, rakodólapát döntés előre-hátra. Ehhez a vezérlőből 6 relét kellett felhasználni a 3 motorhoz (forgásirány váltás a motor pólusainak cseréjével történik). A kormányzás a számítógépről sajnos nem volt megoldható, mert azt az eredeti távirányító sem motor vezérlésével, hanem egy kormány tekerése során drót mozgatásával végezte.

Kép az összeállított rendszerről
(rákattintva nagyítható)


bulli2.cas
A bulldózer vezérlő programja.
A demo során a bulldózer egy három szakaszból álló összetett mozgássorozatot hajt végre. Eredetileg egy játék építőelemet rakodott a bulldózer.


Feleltető rendszer

Sz. Lukács János fejlesztése a feleltető (pontosabban tudásfelmérő) rendszer, amely képes több tanuló tesztkérdésekre adott válaszait begyűjteni és kiértékelni.

A rendszer a HT 8 bites I/O portjára valamint a magnó interfészre kapcsolódik. A magnó interfészről vezérelt távirányítható diavetítő segítségével kivetíti a teszt kérdéseket. A helyes választ a tanulók többállású kapcsolók segítésével jelölik meg. Ezek állását az I/O porton keresztül begyűjti a HT, majd kiértékeli a válaszokat, azaz összesíti tanulónként a jó eredményeket.

Képek a tudásfelmérő rendszerről (rákattintva nagyíthatók)

Az első képen a csatlakozók láthatók, balról jobbra sorban a diavetítő vezérlője, a kapcsoló relé, a HT magnó interfész kimenet, egy választó kapcsoló majd a HT I/O port csatlakozója (ehhez 5 kapcsoló csatlakozott). A második képen 3 választó kapcsoló látható. A válaszokat a B, D, P, T, V betűk jelölték, hogy a súgók dolgát nehezítsék.


feleltet.cas

A tudásfelmérő rendszer programja.
A program sorban kivetíti a kérdéseket. A tanár a jó válasz sorszámának beadásával léptetheti a következő kérdést. Közben a tanulóknak be kell állítaniuk a kapcsolókat, amiket a program beolvas, majd összesíti a jó válaszokat. (A képen csupa 0 eredmény látható, mert az emulátoron futtatva a kapcsolók állása nem olvasható be.)


Hálózatba kötött gépek

1987-től a miskolci Kandó Kálmán Híradástechnikai és Műszeripari Szakközépiskolában (jelenleg ld. http://server.kando-misk.sulinet.hu/) hálózatba kötött HT gépekből számítástechnikai szaktantermet alakítottak ki. Ahogy az iskola jubileumi évkönyve írja:
"Az első számítógépek 1984-ben jelentek meg az iskolánkban. A fejlődésre jellemző, hogy 1985-ben már annyi HT 1080Z és C64-es gépekkel rendelkeztünk, hogy beindult a külön erre a célra kialakított speciális szakteremben a szakköri képzés. ... Többéves tervező és kivitelező munka után 1987 tavaszán elkészült az országban elsők között egy 32 gépes rendszerben működő számítástechnikai szaktanterem. A kiépítés az iskola saját erejéből történt Debnár László, Haás László és Parlagh Béla tervei és irányítása alapján."
A gépek összekötését a hiradástechnikusi, vagy elektronikai osztály végezte, és a 3 tanár írta meg a programot, ami kezelte a hálózatot (1 tanári gép és tanulói gépek). A hálózatba (azaz a De-Ha-Pa rendszerbe) a gép bekapcsolása után kellett belépni.

(Tóth Gábor információi alapján)


Emulátor mini LCD képernyőn

Kollár Zoltán, a Real-80 PRO emulátor szerzője egy olyan modult illesztett az emulátorba, ami a PC párhuzamos portján keresztül képes az emulált HT 1080Z képernyőjét egy mini LCD kijelzőre juttatni. Az alábbi képeken látható a Galaxy Invasion futása.

A kijelző fizikailag 320x240-es felbontású. A kísérletben 512x384-re van állítva, és automatikusan 320x240-re konvertálja a memória tartalmát. Sajnos elég lassú a printerport, 0,5 FPS-nél többet nem lehet így kihozni, de érdekes látni az emulátor képernyőjét.
A chip típusa: EW32FA0FLW 06101*B1. 32kB video RAM van a kijelzőn, 4 lapot lehet mixelni, ebből kettő legalább grafikus, de van text módja is, AND, OR, XOR kapcsolat lehet a lapok között, tehát igen sok lehetőség van.

Zoltán további terveiben az szerepel, hogy készít egy Z80 + Atmel mikrokontrolleres "kvázi HT-t", ami azt jelentené, hogy Boot EPROM nélkül a mikrokontroller indítaná a Z80-at, majd soros porton lehetne letölteni rá programokat.



LPC1114 mikrokontroller alapú LCD kijelzős HT1080Z emulátor

Kollár Zoltán készített egy mikrokontroller alapú, LCD kijelős HT1080Z emulátort.

Az építés első fázisáról így számolt be:

"Majdnem teljesen elkészült egy LCD kijelzős HT1080Z emulátor. A végeredményről feltettem egy videót, ami sajnos nem épp a legjobb minőségű, de nincs jobb felvevő eszközöm.

https://www.youtube.com/watch?v=xM8foSfZkb0

HT1080Z Emulátor NXP LPC1114/302 Cortex-M0 mikrokontrollerrel

A hardver:

A mikrokontroller egy NXP gyártmányú LPC1114/302-es uC, 48MHz-es órajelről járatva.
Ehhez kiegészítésként került egy AS6C4008-55PCN 512kB-os SRAM memória, bár csak 64kB van használva belőle. Az áramkörhöz tartozik még egy AT45DB321 4MB-os DataFlash memória, jelenleg ehhez az emulátorhoz még nincs használva, de tervezem ebbe feltölteni a (játék)programokat.
Az áramkörön található még egy FT232RL típusú USB-UART átalakító, és egy 3.3V-os kapcsolóüzemű tápegység.

A szükséges alkatrészeket az eBay-ről szereztem be, mert a nyákgyártás még mindig horror áron van Magyarországon. Egyébként a mikrokontroller ~400Ft + áfába kerül, az FT232RL pedig ~1200Ft, a memória szintén ennyi.

ZERO 0 Z111xP ARM Cortex-M0 Core Module LPC1114 Development Board

New 5.0" 800*480 TFT LCD Module Display Touch Panel + SSD1963 For 51/AVR/STM32

Az emulátor programja C-ben íródott, némi assembler kiegészítéssel, ahol a sebesség miatt szükség volt rá. A méréseim szerint ~1.77MHz-es Z80 sebességet sikerült elérnem vele, ami pont a HT1080Z sebessége.

Természetesen billentyűzetet is kezel az emulátor, PS/2-es kell hozzá.
Az ESC lett a BREAK, az F1 pedig a CLEAR gomb.
Az F9 az NMI és az F12 a RESET.

Jelenleg a programok betöltése egy terminál programon keresztül történik.
Az F5 gomb megnyomása után betölti a terminálon keresztül a .cas fájlt a memóriába, ezután úgy viselkedik, mintha kazettáról olvasná az adatokat. Nincs a programban semmi patch, az eredeti ROM-okkal működik, az eredeti olvasási sebességgel.

Ami még nincs kész: a hang (hangszóró hiány lépett fel nálam), és a dataflash-ba történő programmentés.

Ha érdekel valakit az utángyártása, vagy valaki szán egy kis pénzt nyákgyártásra, akkor szívesen közzéteszem a kapcsolási rajzát, és megtervezem, legyártatom a nyákot, össze is rakom őket, csak nekem jelenleg nincs rá keretem.

Nem ide tartozik, de el kell mondanom, hogy előbb egy CP/M emulátort készítettem ezzel az áramkörrel, ami már teljesen készen van és kifogástalanul működik. A 4MB-os DataFlash is emiatt került fel az áramkörre, azaz 4db 1MB-os floppy lett belőle."

Az építés befejezéséről:

"Teljesen elkészült az emulátor és csináltam egy újabb videót a működéséről.

Ami változott az előzőhöz képest:

Csupán a sebesség miatt nincs teljesen kitöltve a képernyő, de ki fogom próbálni még nagyobb karakterekkel is."

https://www.youtube.com/watch?v=oPiKS6HT8dI

HT1080Z Emulátor NXP LPC1114/302 Cortex-M0 mikrokontrollerrel - v2

Képek a projektről (rákattintva nagyíthatók):



LPC1768 mikrokontroller alapú LCD kijelzős HT1080Z emulátor

Kollár Zoltán LPC1768-as mikrokontrollerrel is készített egy HT1080Z emulátort. LCD kimenet és analóg videokimenet is található rajta, mindez egyetlen IC-vel megvalósítva. (Az áramkör egyébként tud ZX Spectrum emulátor is lenni.)

Működéséről egy video itt található:

https://www.youtube.com/watch?v=_bnNYb7OJXY

HT1080Z Emulátor LPC1768 mikrokontrollerrel

Hajdú Zoltán jóvoltából az LPC1768-as emulátor kint volt a Csokonai Művelődési Központban 2015. március 28-án rendezett Retro video- és kvarcjáték kiállításon:

Kollár Zoltán a következőket írta a projektről:

"Nos, hogy miben is különbözik az előző emulátortól?

Egyetlen chip csinál mindent, nincs más külső IC, ami az emulátorhoz kellene. Nincs külső RAM, nincs külső latch a hanghoz, van bőven láb, amit lehet használni. A hang D/A konverterrel megy egy 3W-os(!) erősítőre. Ugyanazt az LCD modult használtam, mint az előző változatban. Itt az SD kártyán vannak a ROM-ok, azaz tetszés szerint cserélhetők.

Kapott egy analóg TV kimenetet is (köszönet Hajdú Zoltánnak az ötletért). A TV kimenet teljesen szoftveres, az IC egyik Timer-e csinálja a szinkronjel és az egyéb időzítéseket, az SSP interfész pedig 6 bites módban, TI formátumban a videójelet. Az SSP DMA-val olvassa az adatot, így minimális erőforrást igényel a CPU-tól. Képes egyszerre is működni az LCD kijelzővel, de a TV kimenet így villoghat, amikor az emulátor az LCD tartalmat frissíti, ezért inkább tettem rá egy jumpert, amivel le lehet tiltani az LCD kijelző frissítését.

Működik LCD kijelző nélkül is, csak a TV kimenetet használva, ebben az esetben kell hozzá egy SD kártya illesztő, amit az áramkör megfelelő csatlakozójába kell dugni.

A PS/2 billentyűzet maradt, pedig ez a chip már elméletileg képes az USB-s billentyűzetek fogadására is, de nekem eddig még nem sikerült ezt a részét működésre bírni. Ha valakinek már sikerült, szívesen venném a tanácsait.

Az FT232RL USB-RS232 átalakító IC csak a chip programozásához kell, különösebb szerepe nincs. A kapcsolóüzemű tápegység a bevált MC33063-as IC-vel készült."

Képek a projektről (rákattintva nagyíthatók):



HT klón építése

Gy. Gergely készített egy egykártyás HT1080Z klónt Z80 processzor, statikus memória, EPROM és programozható logikai áramkörök felhasználásával. A kártya mérete 13x7x3 cm, dobozolva kb. 20x10x6 cm. A kártya kompozit videojelet ad és PC billentyűzetet lehet hozzá csatlakoztatni. Az F1-F7 funkcióbillentyűk a következő, EPROM-ba égetett játékprogramokat indítják el:

  • F1 - BASIC
  • F2 - Galaxy
  • F3 - Eliminator 1981
  • F4 - Defend 1981
  • F5 - Headon
  • F6 - Otello
  • F7 - Sargon2 1979

A kártyán lévő programozható eszközök tartalma: htklon.zip

Az alábbi képek rákattintva nagyíthatók.

A kártya
A doboz
A Galaxy Invasion a képernyőn
Kapcsolási rajz 1
Kapcsolási rajz 2
Kapcsolási rajz 3


A JETELEC floppy bővítő élesztése

Ifj. Petri András leveleiből tudhatjuk meg, hogyan élesztette fel és alakította át a Vaterán vásárolt "JETELEC" floppy bővítőt, ami eredetileg VideoGenie géphez házilag készült, és nyomtató illesztőt is tartalmazott.



MIST HT1080Z

A Joco által fejlesztett, MiST alapú HT1080Z klónról részletes információk, képek és letölthető anyagok találhatók a MiST HT1080Z oldalon.

Néhány részlet kedvcsinálónak:

A HT boot képernyője és a MiST OSD
Karaktergenerátor teszt, 64 oszlopos mód

 


HT1080Z/PLUS DIY és HT1080Z-FDD

A https://retroemu.hu/ oldalon két, a HT1080Z szempontjából érdekes új fejlesztés is található:


A floppy drive emulátor működés közben (Youtube videó):

HT-1080Z School Computer (1983) floppy drive emulátorral


EDI és assembly források

Az EDI assembler volt a középiskolákban legszélesebb körben használt Z80 assembler a HT-1080Z gépen. Az alábbiakban megtalálható maga az EDI program, egy rövid használati útmutató valamint példaprogramok CAS formátumban.

edi.cas
Az EDI assembler.
Az emulátorba (illetve a gépbe) a SYSTEM parancs kiadásával, majd a kérdőjelre válaszként az EDI megadásával tölthető be.
Indítás a / jel begépelésével.
edi.pdf
Leírás az EDI használatáról.
PDF formában olvasható és nyomtatható korabeli anyag.
A Z80 processzor rövid leírásával kiegészítve megtalálható itt.
A Z80 assembler HT-1080Z számítógépes példákkal könyv alakban is elérhető, ebben ugyancsak található ismertető.
Bitvadászat
Egy bithiba története.
Érdekességek az EDI szalagról CAS formátumba történő konvertálásáról.
elok.cas
netudd.cas
probak.cas
Assembly forrásprogramok az EDI-hez.
Ezek olyan CAS állományok, amelyek az EDI-be közvetlenül betölthetők. További kézírásos és nyomtatott programlisták is találhatók. (Márkus Csaba programjai.)
autozas2.cas
autozas2-doc.txt
autozas2.asm
autozas2_lista.asm
Autózás: Egy EDI-vel készült mintaprogram.
Egy új játékprogram, annak leírása és forrásai. (Márkus Csaba programja.)

auto1.asm
auto1.cmd

Autózás: Továbbfejlesztés.
Az előző mintaprogram kissé továbbfejlesztve (nem villog a felső sor), mind a cross-assemblerrel feldolgozható forrásban, mind pedig az emulátorokba tölthető CMD formátumban. (Kollár Zoltán kiegészítése.)


MICOLOR 01 színes grafikus bővítés

A MICOLOR 01 névre hallgató berendezés a HT bővítőbuszára csatlakozott és egyrészt memóriabővítést, másrészt pedig nagyfelbontású (256x256 képpontos) villogásmentes színes grafikát tett lehetővé a következők szerint: 16 szín használata esetén a teljes beépített 32kB memóriát a grafikához használta, 4 színű üzemmód esetén pedig 16kB memóriabővítés is maradt. A színeket (számuktól függetlenül) 256 árnyalat közül lehetett kiválasztani.

  • A bővítés első változatában a színes grafika assemblyben volt programozható egy rutinkönyvtár alkalmazásával, ami két képernyősík használatát, képernyősík eltolást, valamint BASIC-ből a PUT (képernyő törlés), GET (pont rajzolás), OPEN (egyenes rajzolás), FIELD (kör rajzolás) parancsok használatát tette lehetővé. A paramétereket POKE parancsokkal kellett a memóriában elhelyezni.

  • A továbbfejlesztett változat az eredeti és a grafikus kép váltását egyszerűsítette (mechanikus átkapcsoló helyett programból, illetve a két Shift billentyű együttes lenyomásával), valamint egy új grafikus programcsomagot tartalmazott (változtatható karaktergenerátor, szöveg dőlésszög és nagyítás változtatás, területfeltöltés, pont, kör, egyenes rajzolás). Ez a programcsomag található meg az alábbiakban.

Jelenleg a Real-80 emulátor biztosítja a Micolor 01 továbbfejlesztett változatának emulációját.

micolor.pdf
Leírás a Micolor bővítésről.
PDF formátumban olvasható rövid cikk a Micolor tulajdonságairól, a Szuper Bitletből.
(Az itt olvasható példaprogram az első változathoz tartozik.)
micolor.txt
Információk a Micolor bővítésről.
Text formátumban összeállított adatok a Micolor programozásáról.
(Kollár Zoltán által visszafejtett információk.)
gpack2.cas
Meghajtó (driver) program a Micolorhoz.
Azoknak a parancsoknak a használatát teszi lehetővé, amelyeket a következő demo programok is használnak (pont, egyenes, kör rajzolása, területfeltöltés, karaktergenerátor, különféle dőlésszögű szövegek, nagyítás). Ez már a továbbfejlesztett programcsomag.
SYSTEM programként tölthető be GPACK2 néven, indítás a / jellel.
gpack2-demo.cas
Demo program a Micolorhoz.
Ez a BASIC program a fenti GPACK2 meghajtó betöltése után tölthető be és futtatható.
gpack2-demo2.cas
Logo program a Micolorhoz.
Egy másik demo program, ami egy Logo implementáció. A fenti GPACK2 meghajtó betöltése után tölthető be és futtatható BASIC program.
kisgp-gpack2.cas
A GPACK2 meghajtó program módosított változata.
Egyelőre nem tudjuk, miért és hatásában miben különbözik a fenti GPACK2 meghajtótól.
SYSTEM programként tölthető be KISGP néven, indítás a / jellel.
micdemo.cas
Demo program a Micolorhoz.
Ez a BASIC program a Real-80 Micolor emulációjához készült egyik teszt. A GPACK2 meghajtó után tölthető be és futtatható.
(Kollár Zoltán programja.)
cross.cmd
crossfire_source_v1.1b.zip
real80pro_cross.zip
Crossfire játék.
Színes, hangos játék a HT-1080Z-re! A Real-80 emulátorral futtatható vadonatúj játék Kollár Zoltán munkája.
Egy képernyőkép a főoldalon és itt található!
Letölthető a játék forrása is!


LE18 grafikus bővítés

A Lowe Electronics cég által 1981-től gyártott LE18 nagyfelbontású grafikus bővítés a HT-1080Z eredetijének (Video Genie I) német és angol változatához készült, de az interfészek azonossága alapján a HT-hez is használható volt. A HT bővítőportjára lehetett csatlakoztatni (valamint néhány kiegészítő kábelt is be kellett forrasztani). Magyarországi elterjedéséről nincsenek pontos információink.

A bővítés 384x192 pontos, de nem színes, nagyfelbontású grafikát tett lehetővé. A meghajtó program által biztosított parancsok a HREN és HROFF (nagyfelbontású grafikus képernyő engedélyezése és tiltása), a CLR (képtörlés), a REV (invertálás), a PLOT (pontrajzolás), a VECT (vonalrajzolás), a FILL (területkitöltés), a HOLD és DISP (6x12-es karakter eltárolás és megjelenítés) valamint a VIEW (pont vizsgálat).

Mind a Real-80 emulátor, mind a HT1080Z emulátor támogatja az LE18 bővítést.

Video Genie HIRES
Leírások az LE18 bővítésről (külső web lap).
PDF és text formátumban olvasható a használati utasítás és az összeszerelési utasítás, valamint érdekes ábrák is láthatók.
hires.cas
Meghajtó (driver) program az LE18-hoz.
Azoknak a parancsoknak a használatát teszi lehetővé, amelyeket a következő demo program is használ.
SYSTEM programként tölthető be HIRES néven, indítás a / jellel.
sphere.cas
Demo program az LE18-hoz.
Ez a BASIC program a fenti HIRES meghajtó betöltése után tölthető be és futtatható.


Galaxy Invasion

Az első HT-1080Z gépeken legnépszerűbb játék a Galaxy volt, amit több iskolában "üldöztek" is, mivel értékes gépidőt vett el a programozni vágyók elől. Maga a játék TRS-80 Model I-re készült. Sokak szerint példaértékű a játszhatósága - a pályák, a pontozás, az irányítás nagyon jól van megoldva.

 

galaxy.cas
A Galaxy program CAS formátumban.
Az irányításhoz a nyilak valamint a szóköz használható.
ht_galaxy.zip
A Galaxy és a HT1080Z emulátor egybecsomagolva.
Kicsomagolás után a HT1080Z Galaxy.cas paranccsal indítható. A játék kezdéséhez szükséges <Clear> billentyűnek PC-n a <Home> felel meg.
Big Five Software
A Galaxy programozóinak web lapja (külső web lap).
Megtekinthetők az eredeti plakátok, és több érdekesség is olvasható.
galaxy_perfect.avi
Galaxy első pálya.
Egy rövid video a Galaxy első pályájának tökéletes végigjátszásáról: Egy ellenséges hajó sem menekül. (Márkus Csaba felvétele.)

Képernyő 1.
Képernyő 2.

Galaxy pontszámok.
Kintli Lajos a FastZ80 emulátorral elérte az 1.000.000 pontot (azaz "átfordult" a pontok számlálója. Ezt mutatják az alábbi képek (rákattintva nagyíthatók).




Teljes képernyős szövegszerkesztő

Bányai Antal és kollégái, Csontos Lajos és Horváth Sándor készítettek 1985-ben egy teljes képernyős szövegszerkesztőt HT 1080Z-hez. Ezt sikerült a korabeli szalagról (kézi javítással) kinyerni. A konvertálás és javítás "melléktermékeként" elkészült a SAVEHJ program átalakítása, ami tetszőleges memóriatartományt szalagra tud menteni.

A szerkesztő menüje
A szerkesztő képernyő

szvsz.cas
Az SZVSZ teljes képernyős szövegszerkesztő CAS formátumban.
A futtatáshoz (az emulátorban is) 16kB-os, második változatú HT 1080Z szükséges.
szvsz.txt
A teljes képernyős szövegszerkesztő leírása.
A dokumentum részletezi a menü használatát.
savehjf0.cas
Memóriatartomány szalagra mentését támogató SAVEHJF0 program CAS formátumban.
A program az F000H címre töltődik és tetszőleges memóriatartományt tud adott indítócímmel és névvel szalagra menteni.
savehjf0.txt
A SAVEHJF0 program leírása.
A dokumentumban megtalálható a parancsok leírása.
savehj.z8r
Az eredeti SAVEHJ program forrása.
Az assembly lista a DZ80 programmal készült.


A LOGO program javítása

A HT honlapra eredetileg felkerült LOGO program hibásnak bizonyult, indítása után kitörölte saját programsorainak jelentős részét. Grósz Attila derítette ki, hogy a program "önmegsemmisítő" részeket tartalmaz: a 2170. és 2190. programsorokban visszalépés karakterekkel eltakart DELETE utasítások vannak. Ami sima programlistázással látszik ezekből a sorokból, az a következő:

(A 2170. sor eleje egyébként azt ellenőrzi, hogy a programot kiterjesztett üzemmódban indították-e - ezért az "a" karakter kódjának visszaolvasása -, tehát SYSTEM /12288 után kell indítani a programot.) Ezeket a programsorokat az EDIT paranccsal karakterenként végignézve (vagy LLIST paranccsal kinyomtatva) a következő látszik:

A vastaggal szedett részeken vannak tehát az eltakart feltételvizsgálatok és az "önmegsemmisítő" kódrészletek! De mit is ellenőriznek a feltételvizsgálatok? A 2170. sorban a "Z" betű kódját várja a memória 17348-as címén, a 2190. sorban pedig az "S" betű kódját a 17365-ös címen.

A megfejtés a következő: A program készítőjének neve "Z A T O N Y I   S A N D O R" alakban benne van a program 30. REM sorában; a feltételvizsgálat ennek Z és S betűire kérdez rá (hogy a betöltés után a megfelelő helyen vannak-e a memóriában, pl. nem törölte-e ki, vagy írta-e át valaki a készítő nevét ebben a sorban). A honlapon lévő eredeti programváltozatba valaki beírta ráadásként az 5. REM sort; ennek hatására a fent keresett betűk 128 bájttal nagyobb címre kerültek, így a 2170. és 2190. sorokban lévő vizsgálatok nem találták ezeket a betűket, tehát törölték a program nagy részét. A "jó" LOGO programhoz nem is kellett módosítani a 2170 és 2190 sorokat, csak az utólag bekerült 5. REM sort kellett törölni. Így a védelem jó helyen találja a keresett betűket, nem történik meg a programsorok törlése, és a program elindul!

logo_eredeti.cas Az eredeti, "önmegsemmisítő" program.
logo_javitott.cas A javított program, kitörölve a felesleges első sort.
logo-1.jpg A program használatának leírása a BIT-LET-ből (1. oldal)
logo-2.jpg A program használatának leírása a BIT-LET-ből (2. oldal)


A PI meghatározása

Kintli Lajos még 1986-ban, a gimnáziumi számítástechnika szakkörben írt egy olyan HT 1080Z gépi kódú programot, ami sok tizedesjegyre képes kiszámolni a PI értékét (azaz a kör kerületének és átmérőjének arányát). Erről a programról annak idején még cikk is készült, ez "A Matematika Tanítása" folyóirat 1986. augusztusi számában jelent meg.

Sajnos az eredeti program elveszett, de az algoritmust felidézve sok év után sikerült újraírni. Ennek során kiderült, hogy az akkor használt algoritmus hibátlan ugyan, de nem optimális, mert a futásidő még jelentősen csökkenthető. Az akkori programmal 40 órát vett igénybe 1000 jegy számítása, miközben kicsit optimalizálva a futási idő közel 7 percre csökken!

Ennek megfelelően Lajos a cikk mellett a programot 3 változatban adja közre. A programok futtatására az általa írt FastZ80 emulátor legújabb verzióját javasolja.

pi.pdf "A Matematika Tanítása" folyóirat 1986. augusztusi számában megjelent cikk anyaga (PDF).
readme.txt A programokhoz készült README fájl.

pi_cikk.asm
pi_cikk.cas
pi_cikk.cmd
pi_cikk.hex

A cikkben hivatkozott pi/4=arctg(1/2)+arctg(1/3) formulát használó újraírt program (meglehetősen lassú). Nem teljesen egyezik meg az eredeti programmal.
pi_2_3.asm
pi_2_3.cas
pi_2_3.cmd
pi_2_3.hex
Optimalizáltabb, szintén a pi/4=arctg(1/2)+arctg(1/3) formulát használó program. Két - egy 7 bites valamint egy 16 bites számmal való - osztó algoritmust tartalmaz (kb. 19600 számjegy számításáig használható).
pi.asm
pi.cas
pi.cmd
pi.hex
A leggyorsabb futású, széles körben elterjedt, Machin nevéhez kötődő Pi/4=4*arctg(1/5)-arctg(1/239) formulát használó program. Az osztó algoritmus dinamikusan az osztó nagysága alapján 7, 8, 15 vagy 16 bitesre ágazik el.


(Bányai Antal, Gy. Gergely, Kintli Lajos, Kollár Zoltán, Majzik István, Márkus Csaba, Sz. Lukács János, Tóth Gábor)