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:
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 |
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.
|
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.
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.)
|
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)
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
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):
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:
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.
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
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.)
|
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.)
|
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.
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! |
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ó.
|
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.)
|
Galaxy pontszámok. |
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 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) |
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. |
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)