Friday, March 26, 2021

NCB85 20. Virtuálny disk

XMODEM je geniálny program. Umožňuje prenos súborov cez ten istý sériový kanál, cez ktorý prebieha komunikácia s konzolou CP/M. V rámci terminálovej session operátor komunikuje s CP/M a v prípade potreby spustí XMODEM a prenesie súbor z alebo na počítač s terminálom. Hyperterminál na WIN takisto podporuje XMODEM protokol, takže nie je treba nič viac.

NCB85V3 je jednodoskáč pre retro fandov, ktorí si chcú užiť zázrak elektromechanického ukladania dát na magnetické médium. Vyhrabať staré diskety, mechaniky, očistiť ich, naolejovať, pozapájať káble a sledovať ako neviditeľná inteligencia roztáča motory mechaník a hýbe hlavami. Lenže akokoľvek moc našim ušiam lahodí zvuk disketovej mechaniky v noci občas nechceme rušiť a nie každý má pochopenie. Hudobný sluch je skrátka výsada. Druhá vec je, že keď na PC kódim v Small C/ASM a v DDT na CP/M debugujem, každá zmena v kóde si vyžaduje nový a nový prenos súboru. Keď to človek robí už cca 20krát, čaro a fascinácia neochabujú, ale čas uteká. A ten druhý sériový port na MUARTe je pritom taký nevyužitý.

Potom je tu problém prvotnej diskety. Stačí jedna disketa s jediným programom XMODEM. Z nej nabootovať, posťahovať z PC CP/M programy, dáta. Vytvoriť si ďalšie a ďalšie diskety naformátovaním cez FDC.COM a kopírovaním dát cez PIP.COM. Lenže ako vytvoriť tú úplne prvú disketu? A je tu aj skupina užívateľov ktorú diskety neberú. Stačí im, že majú funkčné CP/M a vedia si presúvať obsah medzi CP/M a PC. Odteraz už nie je NCB85V3 iba jednodoskáč pre fandov diskiet. Už je pre všetkých. Pretože tu máme virtuálny disk.

Na strane PC je to aplikácia, ktorá schrúme súbory na hostiteľskom disku a na strane CP/M vidíme ... tie isté súbory. Cez druhý sériový port (čo u NCB85 nie je problém) sa prenáša obsah virtuálneho disku na hostiteľskom PC. Všetko čo je na PC vidíme v CP/M. Do BIOSu pribudli kratučké rutiny na prenos obsahu jedného sektoru z a do virtuálneho disku. To je všetko.
Zelené sú alokačné bloky adresára, červené sú pre súbory.

Pustím si FDC.COM a naformátujem si prvú disketu. Nakopírujem na ňu XM5.COM (XMODEM) a už môžem vyrábať diskety s ľubovoľným obsahom donekonečna. Alebo iný prípad. Aby som nemusel pri ladení programu znova a znova presúvať COM súbor cez XMODEM stačí, aby sa pri kompilácii dostal nový súbor do IN adresára. Virtuálny disk skanuje obsah IN na PC a všetko čo uvidí pridá do CP/M filesystému. Na strane CP/M potom stačí stlačiť CTRL-C na refresh obsahu. A máme nové COMko. Hurá do DDT nastaviť breakpointy a debugovať.

Prenos funguje obojsmerne. Takže zmeny v CP/M filesystéme sú viditeľné vo virtuálnom disku. Stlačením tlačítka Export sa všetky súbory uložia na hostiteľský disk do OUT adresára. Virtuálny disk je generický, to znamená mal by fungovať s akýmkoľvek CP/M systémom. Stačí si zmeniť nastavenia v YML súbore a doplniť pribalené mini rutiny do BIOSu svojeho CP/M.

Program je aj na GITe. Inštalačný postup je v install.txt Stačí mať Javu 11 a vyššiu a spustit to:-) RARko sa dá stiahnuť tu.

NCB85 19. V3 ROM Menu

NCB85V3 je spätne kompatibilné s NCB85V2, ale má jedno vylepšenie. Namiesto EPROM 2764 podporuje už 27256. Pri 2764 som musel oželieť MON85 (4kB) aby sa do obmedzených 8kB vošli aj CP/M (5.5kB) aj BIOS. Pri 27256 máme kapacitu 32kB tak sa obmedzovať nemusíme.

Takže slávime návrat skvelého MON85 vo verzii 1.2 kde Roman Bórik pridal podporu nedokumentovaných inštrukcií CPU 8085. Miesta bolo stále dosť. Tak som pridal BIOSy pre rôzne verzie disketových mechaník a pre novinku, virtuálny disk.

Po zapnutí si stačí vybrať:


Priestor v EPROM je rozdelený nasledovne.
0000-0FFF Monitor 85
1000-1300 Menu
1300-2900 BDOS DD00 (for BIOS F300)
2900-3F00 BDOS DE00 (for BIOS F400)
3F00-4800 BIOS VD+2x144 (F300)
4800-5100 BIOS VD+2x120 (F400)
5100-5A00 BIOS VD+2x360 (F400)
5A00-6300 BIOS 3x144 (F400)
6300-6C00 BIOS 3x120 (F400)
6C00-7500 BIOS 2x144+1x500k (F400)
7500-7E00 BIOS 2x120+1x500k (F400)
7E00-8000 free


Obsah EPROM sa dá stiahnut tu. Zdrojové kódy nedávam do GITu, pretože je to stále v bastel fáze. Vychádzajú z posledného BIOSu V3, ktorý je v GITe. Obsah EPROM 27256 sa nedá celý vybuildovať na jedno spustenie. Rozdiely medzi BIOSmi s virtuálnymi diskami a bez nich som nedokázal narýchlo vyriešiť IF a ENDIF v zdrojových kódoch BIOSu. Takže pri výrobe obsahu EPROM si pomáham aj ručne, kopírujem obsah podadresárov so zmodifikovaným kódom do hlavného adresára.