2015. augusztus 11.

Helikopter felújítás

Röptében, fél kézzel
Ez a kis helikopter már évek óta szolgál. Ugyan nem veszem elő minden nap, de vannak időszakok, amikor megfelelő sűrűséggel, kellemes szórakozást biztosít. Alapvetően a TY901 egy olcsó, 3 csatornás játékhelikopter. Annyira olcsó, hogy annó egyből kettőt is vettem, arra az esetre, hogyha pótalkatrészre volna szükségem. Hogy mit jelent a 3 csatorna? Hát nem igazi helikopter funkcionalitást, csak valami olyasmit: Fel-le + jobbra-ballra forgás + előre-hátra haladás. Ezt úgy éri el, hogy a két, ellentétesen forgó szárnyát (koaxiális rotor), változtatható sebességgel forgatja. Ha együtt változik, emelkedni vagy súlyedni kezd. Ha különböző módon, forog jobbra vagy balra a tengelye körül. Hogyha a farkán lévő, felfelé néző propeller bekapcsol, egyik vagy másik irányba, akkor előre vagy hátra billenti a gépet, és ezáltal haladásra készteti.

Robbantott ábra
Ez a változat még elektronikus giroszkóp nélküli, vagyis hogy egyenesen lebegjen, vagy haladjon, azért is küzdeni kell, és nem oldja meg egy egyszerű, de okos elektronika, hogy helyettünk egyenesben tartja a gépet.

Az elektronika, és a cserélendő
A felső rotor lapátok állásszöge tud változni, de csak a passzívan hozzákapcsolt, fizikai girószkóp elven működő röppsúlyok által, amik folyamatosan a gép dőlése ellen dolgoznak, így adva némi stabilitást a járgánynak. Ennek persze vannak érdekes mellékhatásai. Ugyanis: a felpörgetéskori forgási síkot veszi fel a giroszkóp, és utána ehhez akar kompenzálni, emiatt mindig vízszintes állásból kell indítani. Hogyha nem, irgalmatlan sebességgel képes a normálvektor vízszintes komponensének irányába, egyre csak gyorsulva kilőni. Ezzel nagyobb területen játszani is lehet, a talpát végighúzva a földön óriási tempókat lehet elérni. Csak legyen hozzá elég hely. :) Egy másik probléma vele: nagyobb dőlés esetén hirtelen fordulatnál hajlamos öngerjesző módon belibegni, amivel egy gyönyörű, kivédhetetlen orsó szerű zuhanást lehet előadni.

Készül
Unalmas perceimben, két éve már egy-két átalakítást eszközöltem rajta, mint például:
  • 140 mAh-ás aksit 240 mAh-ásra cseréltem, így vagy 9-10 percig is a levegőben lehet egy töltéssel
  • Az aksira csatlakozót raktam, hogy cserélhető legyen (ehhez csak előre kell hajtani a kabint, és kibányászni)
  • Átkötöttem a motoron is, és a távirányító nyákján is a hátsó motor pólusait: az irányítás ugyanaz maradt, de most előre felé megy gyorsabban, és hátrafelé lassabban. Magyarázat: oszcilloszkópos mérésekkel visszafejtettem az infra ledes kommunikációját, és azt találtam, hogy a hátsó motor fokozatait 7 biten ábrázolja, amiből 4 biten a hátra parancsot (16 fokozat), és 3 biten az előrét (8 fokozat) adja. Viszont a vezérlő mindkét 8-adik fokozatnál ugyanannyi feszkót ad a motorra, a fölött meg többet.
  • Leszedtem az oldalán lévő LED sort, így csökketve a súlyát és a fogyasztást
  • A farok motor alá, lefelé néző piros-zölden villogó LED-et építettem, több okból is: ellensúlyozza a nagyobb aksi miatt orrnehézzé vált gépet, segíti a térbeli elhelyezkedés észlelését, és jól néz ki, na... :)
  • A távirányitóra szereltem egy külső tápcsatlakozót, amit kikapcsolt állapotban használ (töltéshez, mivel a kicsikét a távirányítóról lehet tölteni)
Már majdnem ismét heli formája van
Az évek alatt sokszor zuhantam le vele, csaptam neki a falnak, szekrényeknek, daráltam le vele szobanövényeket (ezt nem úsztam meg szó nélkül), de a gép kisebb-nagyobb sérülésektől eltekintve bírta a strapát. Egyszer a röppsúly egyik tengelye eltört, ezért azt már cserélni kellett (egy kicsi műanyag pöcök). A fő motorok is kezdték maguk körül a műanyag vázat kikönyökölni, amitől előfordulhatott olyan, hogy egy zuhanás után a motor tengelyén lévő kis fogaskerék nem érte el a nagyot. Ezt is még kis reszelgetésekkel, kitámasztással ki lehetett védeni. Mostanra viszont a főtengely csapágyai kotyogóra koptak, ütődtek. Ráadásul a főtengely sem volt 100% egyenes, amitől finoman rázkódott már a masina repülés közben.

Kész! Töltsük fel! A pót aksit is...
Így tegnap este elhatároztam, hogy fődarabot cserélek (motor tartó, csapágyak, külső főtengely, külső főáttétel fogaskerék). Ahha, de ehhez ripityára kellett szedni az egész gépet (meg a másikat is), és utána újra összerakni. És mivel a vezetékek itt-ott át vannak bújtatva különböző szerkezeti lyukakon, még a vezérlő nyákról is le kellett őket forrasztani, majd az újakat vissza. Ami egy rövid, 1 órás kicsi kikapcsoló szerelésnek indult, az egy 4 órás kőkemény lazulás lett. Miután szétszedtem a donort, már láttam, hogy egyszerűbb volna simán egy-két dolgot arra átszerelni, de mindegy!

Nem, nem Concorde! Csak aksi csere
A két felső rotor lapát is megérett a cserére, lévén a belépőélén néhány 1-2 mm-es bevágás volt már itt-ott, amolyan harci sérülések. Az alsók viszont egy 1000-es csiszolópapiros kezelés után egészen használhatóvá váltak (a kicsi horpadások, anyag kidudorodások eltűntek annak a belépőéléről).

Összeszerelésnél már voltak érdekességek: az új motorok egyikéről a kicsi fogaskerék rendszeresen katapultált 2 mp használat után. Azt egy kicsit szűkebb nyílású régire kicseréltem, és már jó is lett. Utána feltöltöttem mind2 aksit, és lehet játszani. Szinte mintha új lenne! Könnyű irányítani, szépen lebeg, gyorsan közlekedik! Csodálatos játék! 2x10 perc... 4 óra szerelés, és 1.5 óra töltés után! :))


2015. május 11.

Ágy a Honda Insightban

Hogy miért nem tudtam az utóbbi időben rendesen aludni otthon, az most lényegtelen. De nem tudtam, és a folyamatos álmosság belőtt állapotában megfogant a gondolat bennem, hogy a mindennapi használt autómba kellene egy ágy!

Az öteletet, tett követte. Elhatároztam, hogy nem tervezgetek hosszasan, hanem csak úgy a fejemben összeállt elképzelést némi méricskéléssel, fúrás-faragással megvalósítom. Így ez lett az első asztalos projektem. Vettem 5db 2m-es, 7.5x2.2cm lécet, 5mm vastag furnér lemezt, néhány önbehajtó csavart, vastag polyfoamot és uccu!

A nehézséget az jelenti, hogy az autóm, egy 2000-es évjáratú Honda Insight, ami két személyes. A csomagtartója magasabban van mint a padlószint, az ülésit csak csavarozva lehet kikapni, a fejtámla egybe van építve a háttámlával, és nem lehet teljesen ledönteni, vagy hátradönteni.

Így a megoldás az lett, hogy a fejtámlák között (40 cm) elvezetett fekvő felület a kocsi közepén van, a csomagtartó magasságában, amihez elöl egy kétlábú ágyrész (80 cm, főleg az utasoldal fölött), míg hátul egy 60cm-es lábrész készült. Ezek szétszedve, speciálisan forgatva a csomagtartóban szépen elférnek, összeszerelve pedig kvázi-átlósan fekve 200-220 cm, sík fekvőfelületet biztosítanak.

Nettó, mintegy 10 óra munkával össze is lehetett rakni, méregetéssel, csavarozással, csiszolással, plyfoam ragasztással, mindenestül.

A képeken nem látszik, csak a lenti, vicces videón, a rétegelt lemezekre 2cm vastag polyfoamot ragasztottam, kétoldalas szőnyegpadló ragasztószalaggal. Nem tűnik túl tartós megoldásnak, mivel terheletlenül már most kezd itt-ott elereszteni, ezen még majd valószínűleg dolgozni kell.

Tapasztalatok: a bemászás igen körülményes, és hogyha az ember egyszer elhelyezkedett, nem szívesen mászik ki, mivel az ugyanilyen körülményes. A gyújtáskapcsolót, meg rádiót simán el lehet érni, a vezetőoldali ablakemelő kapcsolókat is, szükség esetén. Az ajtót is be lehet csukni, ha már majdnem elhelyezkedett az ember, hogyha a vezető oldali ülésre támaszkodik. Az ágy alatt, az anyós ülésen rengeteg hely van, pl a csomagtartó tartalmának egy részét ide át lehet szervezni, alváshoz. Maga a forgolódás az ágyon szintén körülményes, de nem lehetetlen. Viszont, az oldalon fekvést el lehet felejteni, marad a hanyatt, és hason fekvés.

2015. február 16.

Amiga 500+ ébresztése kómából, 2.

Régi és új foglalat, a lábkiosztással
Miután a gyanú a FAT AGNUS chip foglalatára terelődött, beszereztem egy ugyanolyan 84 érintkezős THT PLCC fogalaltot. Az ugyan olyan, azért fenntartásokkal kezelendő, mivel más a szine... de csak ilyen volt.

Amint megvolt a kiváltó alkatrész, elkezdtem szépen körbenyalni a lábakat ónszívó zsinórral. Sajnos rá kellett eszmélnem, hogy ha a lábak is a lyukakban vannak, annyira sohasem fogja az ónt felitatni az a drót, hogy a foglalatot csak simán ki tudjam emelni.
Felnégyelt régi foglalat
Miután ez egy olyan fogalalt, hogy a lábai a négyzet mindegyik oldalán, két sorban állnak, esélyem sem volt használni a remek, új szerzemény, csipesz IC kiforrasztópákámat, lévén az egyszerre két sor lábat tud melegíteni. Mindemellett, közben a forrasztóállomásomhoz tartozó páka, kerámia fűtőhegye is beadta a kulcsot. Ebből rendeltem újat, de az egy hét míg megérkezik, ígyhát elővettem egy régi, kicsit viseltes weller stílusú pákát, és azzal folytattam a küszködést.

Foglalat eltávolítva, az lap sértetlen
Sajnos nem sikerült megfelelően egyszerre mind a négy oldal, két-két lábsorát felmelegíteni, hogy a foglalatot eltávolíthassam, így úgy döntöttem, redukálom a problémát dupla lábsorokra. Hogy hogyan? Elővettem a miniatűr fúrógépem, és befogtam egy miniatűr flex lapot a fúróhegy helyére, és a foglalatot a nyákon felnégyeltem óvatosan, ügyelve rá, nehogy alatta az áramkörökbe belevágjak. Így már a csipesz pákával két-két sort egyszerre melegítve sikerült a toktól megszabadulni, majd megtisztítani a helyét a régi, hagyományos pákámmal, ónszívót használva.

Foglalat és chip a helyén, tisztán
Az új foglalat a tisztítás után pikk-pakk a helyére került. Sajnos látszik rajta, a színe miatt is, hogy pótolt darab, viszont ez legalább tökéletesen fog érintkezni. A FAT AGNUS chip lábait pedig 1000-es finomságú csiszolópapírral megdörzsölgettem, biztos ami biztos, ha van rajta korrózió az lejöjjön.

2.04-es Kickstart boot képernyő
Összeszereltem a gépet (mínusz csavarok), bedugtam az A520-as TV modulátort, összekötöttem a kompozit kimenetét a számítógéppel, azon belőttem a TV kártyát Composit PAL-B bemenet megjelenítésére, és az Amiga 500 plus hölgy kinyitotta szemét Georgina napján: "kérem a boot lemezt!" kiáltotta fel, hosszú kóma után, először. Most már "csak" egy Workbench 2.04, 2.05 vagy 2.1 lemez szettet kell szereznem, meg valami játékot/demót, hogy megbizonyosodjak a gép többi részének működéséről. Alkalom adtán, az aksit is pótolni kell, de ezúttal NiMH fajtából, és az alaplaptól messze elvezetve. Isten hozott Gigi az életben, ismét!

2015. február 12.

Amiga 500+ ébresztése kómából, 1.

Amint ébredezni kezdett, először megpróbált felállni, de a power LED villogását követően folyton visszazuhant. Néhány kísérlettel a sötétszürke, világosszürke, fehér képernyőig jutott, de itt mindig megtorpant. Aztán egyszercsak megszólalt: "Doktor úr! Nem emlékszem!" - tette mindezt egy zöld képernyővel, és a power LED villogtatásával. Majd ismét, és ismét. Néha majdnem sikerült neki, akkor sárga képernyővel roskadt magába, elveszítve egyensúlyát, majd ismét jöttek a zöld képernyők! De most már legalább beszél hozzám! Ez nem mindig volt így!

Ez a szegény, hajléktalan Amiga 500 plus hölgyemény, egy kedd esti időpontban toppant be hozzám. Csapzott volt, koszos, poros. Látszott rajta, hogy valaki már régóta a pince legalján dugdossa. A tápegysége folyton be volt kapcsolva, a gomb állására fittyet hányva, a floppy meghajtóból önteni lehetett a homokot. Az első mozdulattal ment a mosásba... csak amolyan immel-ámmal, vegyszerek nélkül, hogy egyáltalán a betegosztályra fel lehessen venni. Eztán jött a vizsgálódás: tápegység kis igazítás után rendben (összeértek a kapcsoló kábelei belül), megfelelőnél kicsit ugyan magasabb feszültségeket ad, de terheléssel határértékeken belüli.

Miután ez egy Amiga 500 plus, egy vele született rendellenességget is azonnal orvosolni kell, mielőtt az általa okozott fekély megeszi a belső szerveit: ezeket a gépeket, a hagyományos 500-assal ellentétben, beépített, akkumulátoros órával gyártották. És ez az akkumulátor vajon miből van? Hát persze hogy NiCd! Ez a hosszú, kisütött állásban elkezd szétfolyni, és mindent szétmar magakörül. Ezt azonnal egy csípőfogóval ki is operáltam. Szemrevételezéssel körbevizslattam, a felszíni korrózión kívül nem tűnt nagyon elnyűttnek.

74LS244-ek kivágva, korrózió hatása
Bekapcsolva csak a nagy, fekete, üres tekintettel találkoztam. Az A520 TV modulátoron sem jött ki semmi, de a gépbe épített fekete-fehér kompozit csatlakozón sem (amire az van írva, hogy "Mono", mint monochrome, csak hogy megtévessze az embereket). De a power LED a félhomályról teljes erősségűre kapcsolt, és a billyentyűzet is jó, mert a caps-lock nem villog (magától), persze ha kapcsolgatom, akkor igen. Diagnózis: a páciens nem halott, hanem kómában van. Mivel ez egy csöves (érsd: ajándékba kaptam, és amúgy is nagyon olcsó volt), elhatároztam hogy a rendes diagnózis helyett, Dr House-t játszom.

Ennyi "szemét" keletkezett
Akcióterv: kicserélem a korrodált IC-ket, a NiCd akkuhoz legközelebb eső (GARY) IC foglalatát, meg azt a néhány ellenállást, és kondenzátort, amit megviselt még a sav. Leellenőrzöm a nyomtatott áramkör vezetékeit, és kicserélem az összes elektrolit kondenzátort. Ez utóbbi olyan kondenzátor, ami folyadékot tartalmaz, ezek szintén szeretnek az évek alatt tönkremenni, főleg hogyha eleve olcsók voltak, mint amivel a Commodore cég próbálta a költségeket csökkenteni. Így is lett. Megrendeltem az alkatrészeket. Csak: 48 lábú IC foglalatból csak precíziós volt, olyan, amilyen az alaplapon csak 24 lábú (abból is rendeltem párat, elvégre egymás mellé rakva kettőt, pont 48 lábúnak felel meg), illetve tengely irányú MLC kondenzátorokat már nem gyártanak, így azok majd jobban ki fognak állni a lapból.

Alaplap lepucolva
Alkatrészek egy pénteki napon meg is érkeztek, én meg nekiálltam kiszedegetni a berozsdált elemeket a NYÁK lapról. Az IC-k lábait egyszerűen levágtam egy sniccerrel, egyesével, majd egyesével is forrasztottam ki őket. A 48 lábú IC foglalat esetében is az volt a célravezető, hogy az érintkezőket a foglalatban elhajlítottam, majd alulról az ónt megolvasztva, felülről egy csipesszel az érintkezőt kihúzva egyesével végigmentem az összesen. Ez a mutatvány fél órámba sem telt összesen. A végén maradt egy teljesen ép 48 lábú IC foglalatom, érintkezők nélkül (ez majd később lesz érdekes). Az elektrolit kondenzátorokkal rendszerint megkínlódtam, ugyanis a forrasztó pákám nem tudta megfelelő ütemben felmelegíteni a ónt azokon a lábakon, amik valami nagyobb felületű rézvonalhoz csatlakoztak, amilyen jellemzően a földelés a kondiknál. Aztán ráeszméltem magamtól, hogy a vékony hegy hőkapacitása és hővezető képessége nem megfelelő a feladatra, és helyette a sokkal durvább hegyet kell használni. Azzal már ment minden a maga útján.

Régi IC foglalat felújítva
Amikor minden kikerült az alaplapról, ecettel passziváltam a maradék savat és korrodált felületeket. Az ecet és forrasztó gyanta maradékot pedig alkohollal szépen le lehetett mosni. Így már kontakt felületeket találtam, amin a méréseket is el tudtam végezni (a korrodált felületek nem vezetnek, azokat mindig kapargatni kell, hogy az ember szakadást vizsgálhasson). Itt azért jól jött a kispolski felújításból megismert egy-két trükk. Ami újdonságot tanultam, az az ónszívó szalag használata: hogy jól működjön, érdemes megmártogatni pákával felolvasztott folyasztó / forrasztó gyantában, utána csak rá kell nyomni a páka hegyével az ónnal teli furatra, és az szépen, magától felvándorol a szalagra. A mérések során, meglelepetésemre, az összes vezeték ép maradt, így egy átkötést sem kellett csinálnom.

Új kondik, ellenállások, felújított IC foglalat
Következett a beültetés: az első körben a 17 elektrolit kondenzátort tettem a helyére. Utána a két kivagdosott és forrasztott 74LS244-es IC-t. 3-4 óra szenvedés után, éppen elbűvölten nézegettem a művemet, amikor ráeszméltem, hogy az egyik IC-t fordítva forrasztottam be. Lehetett kiszedni, kitisztítani a furatokat megint, és beültetni egy másikat (kb 27 Ft volt, emlékeim szerint, jó ügynök volt, kár érte). Aztán a 48 lábú IC tok. Itt elgondolkodtam, ugyanis három lehetőségem volt: a 48 lábú precíziós tokot használom (teljesen máshogy néz ki, mint az eredeti), 2db 24 lábút egymás mögé ültetek be (azért látszódni fog hogy nem egy darabból van), vagy 2db 24 lábúból kiszedem a tüskéket, és berakom az egyébként teljesen ép IC tok műanyagba, amit kiforrasztottam. Végül ez utolsó megoldást választottam, és meg kell hogy mondjam, az a 10 perc, ami alatt elkészültem vele (ide értve a műanyag ecetes, majd vizes mosását és szárítását is), megérte. Teljesen újnak néz ki, és az eredeti környezetébe remekül passzol emiatt. Csak egy jó (kicsi) fogo, meg csipesz kellett hozzá.

Miután mindent szépen beültettem, a megfelelő ellenállásokat is a megfelelő helyekre, jöhetett a teszt...  ....Néha majdnem sikerült neki, akkor sárga képernyővel roskadt magába, elveszítve egyensúlyát, majd ismét jöttek a zöld képernyők! A zöld képernyő jelentése: valami gond van a memóriával (vagy az oda vezető úton). Mivel a processzortól, a FAT AGNUS-on keresztül vezet az út, hát vetettem rá egy pillantást. A képen is látszik, hogy miután kiszedtem a PLCC csippet a tokból, a tok lábai össze-vissza állnak. A korrózió ezt a tokot is elérte, és néhol meggörbítette/gyengítette az érintkezőket (lásd kép)

Köszönöm Hölgyem, hogy beszél hozzám! Most már tudom mi a következő teendőm.

2015. január 30.

1571 cleaning, and power supply repaires

I have bought already ages ago the new capacitors for the power supply of my 1571 drive, and Commodore 128. Those electrolyte capacitors tend to spill, and fail over time, that's why I decided to prevent damage, and exchange those early. Other than that, my C=128 power supply unit was buzzing loud, and wanted also to investigate that problem too.

Opening up the C128 PS, I found the small bracers on the lower case supporting the transformer broken, so the screws holding it couldn't hold on to anything. This way, the 50Hz freq made the plate on top of it to vibrate, making the annoying sound. First, I experimented with super glue, without success. The glue itself stuck to everything, besides the broke off parts of the stands. I even made the situation worse, by ripping off some of the still somewhat attached parts. However, my second choice, what all the times worked for me so far, worked: the two component epoxy plasticine.
After the curing time, I just needed to carve it to it's final shape, and ready to drive in the screws. On the picture, the two tall, black capacitors are the new ones. Measuring the old ones, I have found them capacitance wide above rating, however the new ones have lower ESR values. After putting all the things together again, and cleaning the wires as well, I have got a reasonable looking, and fully functional C128 PS.

On the 1571, last time I opened it up, I have discovered a suspicious capacitor (the blue one, having sign of excess heat exposure). It was high time to swap it for a new one. Unfortunately, these days the inline version of capacitors are not in fashion anymore, so I could get parallel legged ones with the same ratings. This made me facing a new problem: how will I plant in those new caps., with drilled holes so much stretched apart of each other? Well, fortunately, the PCB traces are wide, and runs next to the other hole as well. Only needed to do is to drill a new hole on the track, next to the other, and plant in the capacitor, lying down. I also exchanged those small ones, which 1uF 63V, and 47uF 16V, with new, surprisingly smaller ones, without problems. Assembling the PSU together again, I have noticed, that before, the mains input was plugged into the 220V line of the transformer. Since in Hungary we have 230V, I have decided to use 240V instead. Also retrofitted those two three legged regulator ICs screwed against the aluminum case, with thermo paste, to help prolong their lifetime.

Turning the PSU on, measured the voltages across different components. 5V output pin: 4.96V, perfect! 12V output pin: 11.98V, perfect! Voltage on the biggest capacitor: 32V. Since it is the puffer capacitor before the 12V regulator, and it is rated 40V, it is considered OK. The new, exchanged capacitor experienced 17.4V! Not good! Since it is rated 16V as it was before the case, with the older, blue cap. Switching the mains input to 220V (as it was the configuration before), made the story even worse, measuring 19.2V on the very same capacitor. This explains, why it showed excess heat wear. I will need to get a higher rated one, any time soon.

Since my 1571 was apart, I took the opportunity to clear the casing thoroughly. It became less yellowish, and gained back a nice grey-brown color. The only surprise I faced: the front label stating "Commodore 1571 Disk Drive" faded as well and didn't stop until it became fully white. I will need to replace it. Other than that, its almost perfect now.

2015. január 28.

How I sped up CP/M display

As I have mentioned on my earlier post, I wasn't satisfied with the speed of character display speeds in Commodore 128 CP/M. So, I have investigated the source codes on me, related to Z80 ROM, and CP/M BIOS. In the meantime, I have learned the 8080 derived Z80 mnemonic syntax (bleh, ouch, very inconsistent compared to the Z80 syntax), and begin to code... well, not really, first I needed to establish a development environment.

VICE 2.4 C=128 emulator proved to be buggy on emulating C128+1571 drive in CP/M mode, making all write attempts to disk a failure. So, I also installed VICE 2.3. I have tried to use MyZ80 as was advised for speed reasons, but failed to get a CP/M 3 version of it, so I decided to compile and test also on VICE, C128 emulator, and write the source on my laptop in Windows 8.1. To transfer single files to D71, D64 images, a DOS tool-set can be used: ctools. So, I also needed to install DosBox 0.74 to make that happen.

In VICE, running C128 I configured 3 disk drives: 8: 1571 as boot, 9: 1571 as temp/transfer, 10: 1581 to have more space for the sources and compile. The workflow was as following:
- Modify source in Notepad++
- Use ctools to copy modified source to temp.D71, under DosBox
- Boot up VICE C128, copy sources from temp.D71 to development.d81
- Compile in VICE
- Update CPM+.SYS on boot
- Reboot and test, and restore the boot.d71 on failure

But getting down to business, and modifications a made to the BIOS. Making a long story short: I have implemented a buffered, and burst output to directly to the VDC chip, leaving out the built-in ROM when needed.

Why did this speed up the display process at all? And how could I convert a char-by-char display to a buffered one? It's not that obvious as it sounds for the first time, if someone doesn't know the inner workings of the BIOS, so let's have a look at that first.

The BIOS provides only a single "chout" procedure for the BDOS, to make a single char displayed on the next cursor position. Sounds simple? Ehh, not. Since this BIOS call is redirectable, depending on the active device (a disk, printer, console, etc...), and the handling of the special chars on the console (screen), like "go to top left corner" expressed with a single car, or "go to X column and Y row", expressed by 4 chars after each other, using the proper escape sequence. The original BIOS handles those special char sequences by storing callback, continue addresses pointing to further char checks on next BIOS call. Also, the BIOS checks every time the active devices, where most of the times only the screen is active as char out device.

Making those shortcut on device checks were already introduced in '93, with the speed bios verison 6.2. I have just added a buffer, to store chars on BIOS call, and only flush to display when it is full. The "flush" procedure has the trick. It reads up all the chars stored in the buffer one after the other, and if they are normal characters meant to be displayed ordinary, it uses the feature of the VDC chip, to auto increment memory addresses where the next character is to be stored. Since most of the time the buffer contains only normal chars, it has the following consequences: 2*char-num-in-a-row+14 output instructions, compared to the contant 16 output instructions per char in the original implementation, using the BIOS. Since IO is potentially slow to communicate with the VDC chip, it is a big gain, having 92 outs for 40 char string, instead of the 640 outs in the old implementation.

Also, this way, there is no need to store multi-char-decoding continue addresses, since the algorithm simply can fetch the next byte as needed. Except if it reaches the end of the buffer, when it simply copies the 1-3 unprocessed chars to the front, and finishes running, and the system waits for an other buffer flush.

The only drawback of this approach is that, you won't see anything while you are typing, since the buffer is not full yet (most probably). However, most of the programs are spending their time waiting user input, by calling "chin" procedure in the BIOS. If no key is pressed, so the input buffer is empty, the BIOS is waiting in a loop for a new char. This loop can be used to flush the buffer, at any filled up state. This was almost good, so far, however the clever programs used instead the "chstat" procedure call, to check if there are chars waiting to input, so, no flush again... until I have added a countdown to that procedure as well, which when reached 0, called the flush. OK! Now you see "instantly" what you are typing. But the fe in compile time, when the programs do some work, and don't expect any input, never checks the input line, so even if they update the screen with information on their status, since no flush occurs, you will not see it. Or, even worse, you will see some half rows, ended in the middle of a word. That's why the disk status indicator proc also got the countdown, to be able to flush the buffer.

The results? VDO (which is a memory only text editor), displays screens, and pages of text noticeable faster! What about games? I guess action games will not work... Contact me, if you are interested in testing.

2015. január 25.

Commodore 64 tisztítás

Ez a C64-es annyira olcsón kellette magát, hogy nem tudtam ellenállni, meg kellett vennem. Ugyan látszott a hirdetés képein, hogy itt-ott hozzányúltak, de ha más nem, alkatrésznek jó lesz! Az előző tulaja szentimentális búcsút intett neki, gondolva ez a gép itt fejezte be a pályafutását. A géphez még tartozott egy rébbi 1541-es drive, illetve egy C-Lab Midi interface kártya.

Haza vittem, bekapcsoltam, és működik. A táp rendes 5.2V feszültséget ad, a képe szép, hangja van. Mi kell ennél több? Csak a hátulján az a ronda plusz csatlakozó ne lenne! Meg a felirat az elején! Az 1541-es is működik, bár időnként éktelen hangja van. A gép házán már kívülről is látszott, hogy jó poros közegben tárolták (pedig a vásárlásra letörölgették kívülről), az alján még valami friss festékszerű is volt. Az 1541-es szintén moddolt egység: egy kapcsoló és egy plusz LED éktelenkedik az elején. Arra nem kaptam választ, hogy mire való, az előző tulaj sem tudta (így vette). A meghajtó háza pedig koszos, és festékmaszatos helyenként.

Innen indultunk
Nagyon érdekelt, hogy az a LED + kapcsoló mire való, így gyorsan felnyitottam. Mint kiderült, egy csavar hiányzott a házból, egynek meg körbeszaladt a menete, amikor legutóbb valaki erővel próbálta meghúzni azt. Így gyakorlatilag csak 2 csavar tartotta össze a gépet. Felnyitva óriási por és dzsuva fogadott odabent, amit gyorsan kicsit lelegyeztem róla. Az oda nem illő vezetékeket végigkövetve, azt találtam, hogy a LED-et közvetlenül kapcsolja, illetve egy másik ág rövidre zárja a P6 csatlakozón található írásvédelem érzékelő két lábát: ebbe a meghajtóba olyan floppyt is bele lehet rakni, aminek nem vágják ki a szélét, és lehet vele írni, hogyha ég a piros LED. Zseniális! :)
Van kosz! :)
A kivitelezés házi megoldásnak elmegy, de nem különösebben szép megoldás. Ezzel a floppyt össze is szereltem, és félreraktam máskorra (a pucolása, és a mechanika tisztítása, zsírozása igen időigényes).

Töprengtem, hogy mi legyen a C64-essel. Végül eszembe jutott, hogy tök szerencsére a donor gép alja ugyan ilyen típusú, és az nincs kivágva, csak koszos, és lehet hogy kicsit karcos. A tetejéről pedig talán lekaparható és lesikálható az a "Home computer" felirat. Neki is estem sebtiben.

WTF??
Szétszedve itt is hatalmas por-oroszlánok fogadtak, de semmi vészes, az itt-ott felszíni rozsdafoltokat leszámítva. És, amivel még nem találkoztam C64C-ben: fémlemez volt az RF árnyékoló/hűtő a NYÁK felett, mint a C128-asokban. Ezeken vannak nyúlványok, amik egy-egy melegedésre hajlamosabb IC-t érintenek (nem túl nagy felülettel, így nem valami hatékony). De, még mindig jobb, mint az alufóliával bevont kartonlap, ami az elterjedt megoldás volt.

Nincs kosz! :)
A sikálás Domestosos dörzsi szivaccsal a koszt pikk-pakk eltávolította. A feliratot már korántsem ilyen könnyen: azt egy éles bicskával kellett végül óvatosan lekapirgálnom. A donor gép alja jobb állapotban volt mint a teteje szerencsére, és a két gép színárnyalatában sincs nagy különbség, mint kiderült. Összeszerelésnél még a hűtött IC-k kaptak friss hőpasztát, az RF árnyékoló lemez hűtő karmantyúit nagy gonddal ráigazgattam (érsd: addig hajligattam, míg megfelelően felfeküdt) az IC-kre, és kész is volt!
Nincs módosítás!

Vagyis még nem! Hiszen az alsó borításnak a cseréjével a rajta lévő matrica, is kicserélődött, és nem az a gép van benne, amire a matrica utal! Így még ezeket is felcseréltem (elég jól, egyben lejöttek, miután a sarkukat felpiszkáltam), hogy ténylegesen az eredeti gépet kapjam. Elvégre egy Commodore többek között ettől is Commodore... hogy a hátulján is a saját logója szerepel, a saját születési anyakönyvi kivonatával.