Tuesday, April 26, 2016

CP/M BIOS FDD + PMD32SD

CP/M na NCB85 funguje buď s PMD32SD, alebo s disketovými mechanikami, alebo s obidvomi. Osobne mám rád buď jedno alebo druhé. Driver pre každé zariadenie zaberá zbytočné miesto v RAM. Pre PMD32SD stačí nahrať na SD kartu správny obraz a CP/M nabootuje z SD karty. Pre samotné diskety je BIOS tak malý, že sa zmestí aj s CP/M do jednej EPROM a odtiaľ aj nabootuje. Problém je, že je potrebné mať pracovnú disketu CP/M.

Disketu si je možné naformátovať programom FDC.COM. To sa dá aj vtedy ak CP/M nabootuje z PMD32SD s BIOSom pre PMD32SD. Keď potom prejdeme na BIOS iba pre disketovky, tak CP/M nabehne z EPROM a prečíta obsah adresára na diskete. Funguje. CP/M je perfektne spokojné s čistučkou naformátovanou disketou. Ale je tu problém. Pretože disketa je prázdna. Okrem zabudovaných príkazov dir, type, ren, save by nič iné nebolo k dispozícii. Je potrebné dostať na disketu aspoň XMODEM. Pomocou XMODEM už je možné potom preniesť z PC na disketu čokoľvek. Aj CP/M programy ako ASM.COM, DDT.COM, PIP.COM, STAT.COM atď. A samozrejme aj vlastné programy, hry, compilátory, editory, WordStar, BASIC atď.

Lenže ako dostať na disketu ten XMODEM? Pripravil som "quick and dirty" BIOS pre rýchle odskúšanie floppy a prípravu naformátovaných disket. Bootuje z SD karty. Podporuje štyri typy diskiet. Pri boote vypíše menu.


Voľbou čísla sa nastaví typ disketovky. Tento BIOS je veľký. Moc sa mi nechcelo sa s tým hrať a preto obsahuje tabuľky pre všetky štyri typy. Napísal som ho ozaj len na nevyhnutné vytvorenie štartovacej diskety. Dalo by sa to ofajčiť placeholder tabuľkou pre jeden typ a dohratím správnych dát zvoleného typu z EPROM po voľbe.

Takže to zhrniem. Je treba nakopíropvať na SD kartu dodaný image. Potom pripojiť PMD32SD a aspoň jednu disketovú mechaniku. Nabootovať z PMD32SD, zvoliť správny typ diskety. Spustiť FDC. Naformátovať disketu, spustiť kontrolné čítanie. Ukončiť FDC. Prekopírovať na disketu XMODEM (XM5.COM a XM5V2.COM). XM5 používa sériový port 8251, XM5V2 sériový port 16552.

Vypnúť NCB85. Odpojiť PMD32SD. Dať pripravenú disketu do prvej mechaniky. Dať do NCB85 EPROM s BIOSom pre vybraný typ diskety. BIOS pre FDD je na github vo verzii 2.2

Potom sa už dá nabootovať bez PMD32SD z diskety a cez XMODEM dohrať zvyšné programy. Cez FDC si naformátovať ďalšie diskety. Prekopírovať na ne obsah už zaplnenej. Atď.

"quick and dirty" BIOS je na stiahnutie tu/tady aj s obrazom pre PMD32SD.

Typ 1 je pre 5.25" DD diskety 720kB v HD mechanike. Teda niečo čo v PC možné nebolo. V CP/M sa využije 80 tracks/stôp a tak budeme mať pekných 720kB kapacitu. Takto je možné využívať DD diskety (a dokonca výhodnejšie s dvojnásobnou kapacitou) aj vtedy ak sú k dispozícii iba HD mechaniky.

Na github je aj starší BIOS, ktorý podporuje naraz PMD32SD a jeden typ diskiet. Typ diskety sa musí voliť v kóde a skompilovať do HEX. Tento BIOS je úspornejší a nezaberá toľko miesta, pretože má iba tabuľku pre jeden typ diskiet.

No comments:

Post a Comment