[abc80] CP/M och ABCBus ABC80

Jörgen Westman joergen.westman at telia.com
Tis Mars 12 13:43:46 PDT 2019


Hej,

Problemen jag har är nog inte hur ABCbus fungerar, jag har misslyckats med
kopiering av 832 floppy, den image jag använde som CP/M boot är vid noggrann
kontroll inte korrekt. Visar sig att klustren upprepar sig i den image jag
skapar.

Har i vilket fall som helst gjort en 832 baserad på V09. Den fungerar på den
första 832 UFDDos image jag gjorde.

Nu till problemet

Den först image jag gjorde var med ett Basic program, jag läser sektorer med
direktanrop till UFDDOS läs sektor till dosbuf 0.
Sedan skapar jag HEX filer av det binära datat också i Basic.
Läser ut den från HD image och skapar sedan en 832 image av HEX filerna.
Det tar 40 minuter för en skiva. Och det blir korrekt.

Gjorde om programmet så att HEX skapas i assembler istället, då tar det ca 7
minuter istället, men nu ser jag att det jag läser inte blir korrekt.

Hur skall man på bästa sätt läsa sektorer för att det skall gå fort och
samtidigt inte bli fel.

Hälsningar

Jörgen Westman

-----Original Message-----
From: ABC80 [mailto:abc80-bounces at abc80.org] On Behalf Of Anders Jansson
Sent: den 5 mars 2019 22:34
To: abc80 at abc80.org
Subject: Re: [abc80] CP/M och ABCBus ABC80

Jag tror ABCbus V09 är bäst att utgå ifrån. Den funkar med ABCDOS och jag
tror den funkar med UFDDOs också. Det var några detaljer som ändrades. Jag
började på V10 också med HD+diskett.


Den 2019-03- 21:50:57 skrev Jörgen Westman <joergen.westman at telia.com>:

> Hej,
>
>
> Jag försöker fortfarande få CP/M 3+ att kunna starta från en 832 disk 
> image på SD kort.
>
> Har fått UFDDOS att fungera genom att göra en disk44 baserad på disk36.
>
>
> Men CP/M+ vill inte fungera.
>
>
> Plockade ut CP/M boot prom och har disassemblerat det.
>
>
> Det görs flera anrop till CS, först för att se om kortet finns, blir 
> inp
> 1
> 255 så testar man nästa.
>
>
> Om det inte blir 255 så väljer man det kortet.
>
>
> Men sedan görs ett CS till innan kommando till kort, där förväntar man 
> sig bit 7 vara satt (negativt tal), om inte så fastnar man.
>
>
> Koden ser ut på detta sätt:
>
>
> M090B   CALL  M0958                                            ;Card  
> select
>
>         JP                 P,M090B
>
>         OUT            02H,A
> ;Command C1
>
>
> M0958   LD       B,0FFH
>
>         LD                A,(M0973)
> ;Card to A
>
>         OUT            01H,A
> ;Select card
>
>         LD                A,0AH
>
>
> M0961   DEC    A
>
>         JR                 NZ,M0961
> ;Wait
>
>         IN                A,01H
> ;Check
>
>         AND            A
>
>         RET
>
>
> Om jag testar att göra CS alltså out 1,36 och sedan inp(1) i basic så 
> får jag för det mesta 0 tillbaks och inte 129.
>
>
> Jag provar detta på ABCBus 06, la till ett inp1reg = 0x81; i Strobe_CS 
> men det gjorde ingen skillnad, ska det läggas till någon annan stans?
>
>
> Då koden i boot prom startar från reset så görs ingen inp(7) heller.
>
>
> Hälsningar
>
>
> Jörgen Westman
>
> _______________________________________________
> ABC80 mailing list
> ABC80 at abc80.org
> https://lists.abc80.org/abc80

_______________________________________________
ABC80 mailing list
ABC80 at abc80.org
https://lists.abc80.org/abc80




More information about the ABC80 mailing list