DIVMMC on HC-2000

269 views
Skip to first unread message

Stéphane Pitteloud

unread,
Sep 20, 2021, 8:28:30 AM9/20/21
to RomanianHomeComputer
Hi there, I'm a new proud owner of a nice ICE Felix HC-2000, and I wanted to be able to launch some games and softwares on it to be able do display it in a event here in Switzerland. 

Therefore, I tried to hook a DIVMMC on the Felix, but all I got is some garbage random colors on the screen. Of course, the Felix work well when I remove the DIVMMC.

Hence my question: it is possible to use something similar as the DIVMMC on the Ice Felix? 
Thanks a lot and have a nice day !

Mircea Teletin

unread,
Sep 21, 2021, 4:02:33 AM9/21/21
to romanianho...@googlegroups.com
The only notable difference on the port is the lack of 9V on it. Otherwise the port is identical. On older HC91s there was also a CP/M pin wired (so you can hook up the floppy IF1 to it) and it's the same on HC2000 (even if it doesn't need it).
image.png

--
Ați primit acest mesaj deoarece sunteți abonat(ă) la grupul „RomanianHomeComputer” din Grupuri Google.
Pentru a vă dezabona de la acest grup și pentru a nu mai primi e-mailuri de la acesta, trimiteți un e-mail la adresa romanianhomecomp...@googlegroups.com.
Pentru a vizualiza această discuție pe web, accesați https://groups.google.com/d/msgid/romanianhomecomputer/5a0da2b0-e369-41d6-8e4a-f84183d185dbn%40googlegroups.com.

Mircea Teletin

unread,
Sep 21, 2021, 4:06:38 AM9/21/21
to romanianho...@googlegroups.com
Standard ZX Spectrum edge connector:
image.png

Bogdan Marcu

unread,
Sep 21, 2021, 4:11:22 AM9/21/21
to romanianho...@googlegroups.com
Nu functioneaza din cauza if1 pe hc2000

Sent from my iPhone

On 21 Sep 2021, at 11:06, Mircea Teletin <mircea....@gmail.com> wrote:



Stéphane Pitteloud

unread,
Sep 21, 2021, 12:30:31 PM9/21/21
to RomanianHomeComputer
Thanks all for your reply. What is IF1? It is something that I can change? Thanks

Bogdan Marcu

unread,
Sep 21, 2021, 12:49:32 PM9/21/21
to romanianho...@googlegroups.com
HC2000 have Interface1 clone modified to work with floppy disk instead of microdrive(zx spectru) and it is part of the computer and cannot be bypassed by DIVMMC as Spectrum +3 can. That is why cannot work on HC2000. It works on all romanian spectrum clones if they are simple not with IF1.

Sent from my iPhone

On 21 Sep 2021, at 19:30, Stéphane Pitteloud <guibrush...@gmail.com> wrote:

Thanks all for your reply. What is IF1? It is something that I can change? Thanks

Bogdan Marcu

unread,
Sep 21, 2021, 12:50:46 PM9/21/21
to romanianho...@googlegroups.com
I am working on some modifications to work with other interfaces but still no success.

Sent from my iPhone

On 21 Sep 2021, at 19:48, Bogdan Marcu <bmc.n...@gmail.com> wrote:

HC2000 have Interface1 clone modified to work with floppy disk instead of microdrive(zx spectru) and it is part of the computer and cannot be bypassed by DIVMMC as Spectrum +3 can. That is why cannot work on HC2000. It works on all romanian spectrum clones if they are simple not with IF1.

radioman V

unread,
Sep 21, 2021, 1:12:45 PM9/21/21
to RomanianHomeComputer

The IF1 can be bypassed, i did this many years ago. I don't remember exactly (i don't have access to the  the HC-2000 right now) but i think looking at the schematic diagram, that i inserted a series resistor of approx 470 ohm between the original signal on the UF8 pin 4 (A3) and UA9 pin4 (M1L) then two 1N4148 diodes with cathode on pin 4 of each IC and anodes soldered together to a wire to an unused pin of the edge connector. Then at the DIV-MMC interface a small piece of wire from the 5V rail to that edge pin. So when the interface is inserted the whole IF1 interface will be disabled. You can also mount a switch on the HC-2000 for this. 

@Bogdan daca ai acces la HC incearca asta pana voi ajunge eu sa desfac HC-ul.

Bogdan Marcu

unread,
Sep 21, 2021, 1:36:26 PM9/21/21
to romanianho...@googlegroups.com
Multumesc de idee, o incerc si te anunt!

Sent from my iPhone

On 21 Sep 2021, at 20:12, radioman V <radio...@gmail.com> wrote:



radioman V

unread,
Sep 21, 2021, 1:52:21 PM9/21/21
to RomanianHomeComputer
Da, stiu ca trebuie sa dezactivezi atat partea de decodare adrese al IF1 (UA9) cat si cea de decodare porturi I/O (UF8) altfel IF1 interfereaza cu DIVMMC-ul. Prin dezactivarea celor doua 138-uri mi sa parut cel mai simplu in acel moment, plus ca nu trebuie mare lucru;  doar doua diode si doua rezistoare. Eventual merg maine unde am HC-ul si fac niste poze.
Succes.

Stéphane Pitteloud

unread,
Sep 21, 2021, 5:28:35 PM9/21/21
to RomanianHomeComputer

Tbanks a lot radio and bmc.n!
I'm looking forward to your progress. If it's doable I will try to make it too, but only if it's non destructive for the H2000 :-)

mircea....@gmail.com

unread,
Sep 22, 2021, 12:50:02 AM9/22/21
to romanianho...@googlegroups.com

Attached chips locations on map.

My asumption is that you’re keeping disabled the address decoders on the IF1 implementation. You’re keeping the E1 high all the time.

 

Wouldn’t a resistor be also necessary to limit the current in case the lines get pulled low by another chip? This would prevent burning that chip that tries to pull low those 2 lines (including maybe Z80?). I think somethig like 470ohm would do as you don’t need a lot of current.

 

 

From: romanianho...@googlegroups.com <romanianho...@googlegroups.com> On Behalf Of radioman V
Sent: Tuesday, September 21, 2021 20:13
To: RomanianHomeComputer <romanianho...@googlegroups.com>
Subject: Re: DIVMMC on HC-2000

 


The IF1 can be bypassed, i did this many years ago. I don't remember exactly (i don't have access to the  the HC-2000 right now) but i think looking at the schematic diagram, that i inserted a series resistor of approx 470 ohm between the original signal on the UF8 pin 4 (A3) and UA9 pin4 (M1L) then two 1N4148 diodes with cathode on pin 4 of each IC and anodes soldered together to a wire to an unused pin of the edge connector. Then at the DIV-MMC interface a small piece of wire from the 5V rail to that edge pin. So when the interface is inserted the whole IF1 interface will be disabled. You can also mount a switch on the HC-2000 for this. 

 

@Bogdan daca ai acces la HC incearca asta pana voi ajunge eu sa desfac HC-ul.

On Tuesday, September 21, 2021 at 7:50:46 PM UTC+3 bmc.n...@gmail.com wrote:

I am working on some modifications to work with other interfaces but still no success.

Sent from my iPhone



On 21 Sep 2021, at 19:48, Bogdan Marcu <bmc.n...@gmail.com> wrote:

HC2000 have Interface1 clone modified to work with floppy disk instead of microdrive(zx spectru) and it is part of the computer and cannot be bypassed by DIVMMC as Spectrum +3 can. That is why cannot work on HC2000. It works on all romanian spectrum clones if they are simple not with IF1.

 

Sent from my iPhone



On 21 Sep 2021, at 19:30, Stéphane Pitteloud <guibrush...@gmail.com> wrote:

Thanks all for your reply. What is IF1? It is something that I can change? Thanks

Le mardi 21 septembre 2021 à 10:11:22 UTC+2, bob...@gmail.com a écrit :

Nu functioneaza din cauza if1 pe hc2000

Sent from my iPhone



On 21 Sep 2021, at 11:06, Mircea Teletin <mircea....@gmail.com> wrote:



Standard ZX Spectrum edge connector:

 

On Tue, Sep 21, 2021 at 11:02 AM Mircea Teletin <mircea....@gmail.com> wrote:

The only notable difference on the port is the lack of 9V on it. Otherwise the port is identical. On older HC91s there was also a CP/M pin wired (so you can hook up the floppy IF1 to it) and it's the same on HC2000 (even if it doesn't need it).

 

On Mon, Sep 20, 2021 at 3:28 PM Stéphane Pitteloud <guibrush...@gmail.com> wrote:

Hi there, I'm a new proud owner of a nice ICE Felix HC-2000, and I wanted to be able to launch some games and softwares on it to be able do display it in a event here in Switzerland. 

 

Therefore, I tried to hook a DIVMMC on the Felix, but all I got is some garbage random colors on the screen. Of course, the Felix work well when I remove the DIVMMC.

 

Hence my question: it is possible to use something similar as the DIVMMC on the Ice Felix? 

Thanks a lot and have a nice day !

--
Ați primit acest mesaj deoarece sunteți abonat(ă) la grupul „RomanianHomeComputer” din Grupuri Google.
Pentru a vă dezabona de la acest grup și pentru a nu mai primi e-mailuri de la acesta, trimiteți un e-mail la adresa romanianhomecomp...@googlegroups.com.
Pentru a vizualiza această discuție pe web, accesați https://groups.google.com/d/msgid/romanianhomecomputer/5a0da2b0-e369-41d6-8e4a-f84183d185dbn%40googlegroups.com.

--
Ați primit acest mesaj deoarece sunteți abonat(ă) la grupul „RomanianHomeComputer” din Grupuri Google.
Pentru a vă dezabona de la acest grup și pentru a nu mai primi e-mailuri de la acesta, trimiteți un e-mail la adresa romanianhomecomp...@googlegroups.com.

--
Ați primit acest mesaj deoarece sunteți abonat(ă) la grupul „RomanianHomeComputer” din Grupuri Google.
Pentru a vă dezabona de la acest grup și pentru a nu mai primi e-mailuri de la acesta, trimiteți un e-mail la adresa romanianhomecomp...@googlegroups.com.
Pentru a vizualiza această discuție pe web, accesați https://groups.google.com/d/msgid/romanianhomecomputer/abe0255a-537c-4564-af0f-f821634d2af3n%40googlegroups.com.

--
Ați primit acest mesaj deoarece sunteți abonat(ă) la grupul „RomanianHomeComputer” din Grupuri Google.
Pentru a vă dezabona de la acest grup și pentru a nu mai primi e-mailuri de la acesta, trimiteți un e-mail la adresa romanianhomecomp...@googlegroups.com.

UF8-UA9.jpg
UF8-UA9-sch.jpg

mircea....@gmail.com

unread,
Sep 22, 2021, 12:55:07 AM9/22/21
to romanianho...@googlegroups.com

On a second thought... keeping the A3 high all the time... not sure if that’s a good idea :-)

Perhaps by unsoldering pin 4 and using some additional glue logic would be better.

Same with M1L, they all go right to the CPU.

radioman V

unread,
Sep 22, 2021, 1:04:55 AM9/22/21
to RomanianHomeComputer
Am desfacut HC-ul si surpriza nu era deloc ce am spus mai sus. Pentru a dezactiva IF1 trebuie dezactivate semnalele MREQ si IORQ care vin spre IF1. Pentru IORQ avem pinul 1 de la UH8 iar pentru MREQ pinul 5 de la UH10. Practic se taie traseele ce vin spre cele doua circuite si se inseriaza cate un rezistor de 680ohm. Apoi doua diode 1N4148 cu anozii legati impreuna si catozii unul in pinul 1/UH8 si celalalt in pinul 5/UH10. Lipim un fir intre anozii celor doua diode si pinul A28 de la edge connector.
Mai jos schema si cateva fotgrafii.

if1.png

1.jpg
2.jpg
3.jpg
4.jpg



Si aici Interfata DIVMMC:
5.jpg

radioman V

unread,
Sep 22, 2021, 1:40:45 AM9/22/21
to RomanianHomeComputer
Eticheta A20 se va citi A28, eroare de tastare.
@mircea.teletin The two resistors will act as pull-up resistors for /IORQ and /MREQ  there's no need for an additional buffer. 

Bogdan Marcu

unread,
Sep 22, 2021, 8:34:12 AM9/22/21
to romanianho...@googlegroups.com
Multumim de luminare 🙂

Sent from my iPhone

On 22 Sep 2021, at 08:40, radioman V <radio...@gmail.com> wrote:

Eticheta A20 se va citi A28, eroare de tastare.

Bogdan Marcu

unread,
Sep 22, 2021, 8:36:32 AM9/22/21
to romanianho...@googlegroups.com
Eu il am pe cel cu un singur eprom. E posibil sa mai trebuiasca o modificare.

Sent from my iPhone

On 22 Sep 2021, at 08:40, radioman V <radio...@gmail.com> wrote:

Eticheta A20 se va citi A28, eroare de tastare.

mircea....@gmail.com

unread,
Sep 22, 2021, 9:22:01 AM9/22/21
to romanianho...@googlegroups.com

Cred ca merge ok si cu cel cu 1 singur eprom. E dintr-un 74LS74 tras un fir la A15 de la EPROM ca sa stea pagina a 2-a de 32KB activata by default si pentru cand ai nevoie de IF1 se duce pe prima pagina de 32KB... nimic spectaculos.

Am dezlipit recent ROM-ul de pe un HC2000 cu probleme (fixat intre timp) si am pus un ROM de 32K cu firul respectiv nefolosit... a pornit fara probleme (si fara IF1 evident). Pinul respectiv e tot timpul high pana se activeaza IF1 (cu IF1 dezactivat insa nu se va intampla asta niciodata).

 

From: romanianho...@googlegroups.com <romanianho...@googlegroups.com> On Behalf Of Bogdan Marcu
Sent: Wednesday, September 22, 2021 15:36
To: romanianho...@googlegroups.com
Subject: Re: DIVMMC on HC-2000

 

Eu il am pe cel cu un singur eprom. E posibil sa mai trebuiasca o modificare.

Sent from my iPhone



On 22 Sep 2021, at 08:40, radioman V <radio...@gmail.com> wrote:

Eticheta A20 se va citi A28, eroare de tastare.

@mircea.teletin The two resistors will act as pull-up resistors for /IORQ and /MREQ  there's no need for an additional buffer. 

On Wednesday, September 22, 2021 at 8:04:55 AM UTC+3 radioman V wrote:

Am desfacut HC-ul si surpriza nu era deloc ce am spus mai sus. Pentru a dezactiva IF1 trebuie dezactivate semnalele MREQ si IORQ care vin spre IF1. Pentru IORQ avem pinul 1 de la UH8 iar pentru MREQ pinul 5 de la UH10. Practic se taie traseele ce vin spre cele doua circuite si se inseriaza cate un rezistor de 680ohm. Apoi doua diode 1N4148 cu anozii legati impreuna si catozii unul in pinul 1/UH8 si celalalt in pinul 5/UH10. Lipim un fir intre anozii celor doua diode si pinul A28 de la edge connector.

Mai jos schema si cateva fotgrafii.

 


 

 

 

Si aici Interfata DIVMMC:

 

 

On Tue, Sep 21, 2021 at 11:02 AM Mircea Teletin <mircea....@gmail.com> wrote:

The only notable difference on the port is the lack of 9V on it. Otherwise the port is identical. On older HC91s there was also a CP/M pin wired (so you can hook up the floppy IF1 to it) and it's the same on HC2000 (even if it doesn't need it).

Bogdan Marcu

unread,
Sep 22, 2021, 10:57:01 AM9/22/21
to romanianho...@googlegroups.com
Aha il butonez eu in weekend sa vad.

Sent from my iPhone

On 22 Sep 2021, at 16:22, mircea....@gmail.com wrote:



radioman

unread,
Sep 22, 2021, 11:34:38 AM9/22/21
to romanianho...@googlegroups.com

Merge sigur. Am mai gasit o placa de HC-2000 cu un singur Eprom de 64K cu aceiasi modificare. Placa din fotografiile de mai sus a fost initial tot una cu EPROM de 64K dar a fost modificata de mine. Am programat un 27C512 (asta aveam la dispozitie atunci)  cu codul pentru IF1 in ultimii 16K (A15=1, A14=1) si l-am plantat in locul lui UB8 nefolosit. Am anulat firul  de la pinul 6 UF10 la pinul 1 (A15) de la EPROMUL de 64K (UB6) si am refacut semnalul original de Chip Select pentru RAM-ul static de pe IF1 (e un inversor nefolosit din UD11, pinii 12 si 13, taiat traseul de /CS care iese din UB14 pin 14 si luat semnalul de la pin 5 UF10 inversat prin inversorul asta nefolosit). Practic puteau folosi tot pinul 5 de la UF10 (74LS74) care practic deja avea logica necesara dar asta au hotarat meseriasii de la Felix atunci.

Asta mi-a  permis sa pun un header de  2x14 pin in locul EPROM-ului principal in care am infipt o placa addon cu un flash eeprom programat cu diverse chestii pe care le mapam cu un dip switch in spatiul de 16K (0-3FFF) precum OPUS, programe de test samd. 
Acum strange praf prin basca, noroc cu voi ca m-ati facut si pe mine curios. Ce ti-e si cu moda asta retro :)
Atasez si continutul celor doua EPROM-uri daca are cineva nevoie.
La EPROM-ul de 64K original de pe placa maparea este ceva de genul:

0000-3FFF = IF1;      16K
4000-7FFF = IF1;      16K
8000-BFFF= Basic ;  16K
C000-FFFF= CP/M;  16K
M27C512@DIP28.HC2000.BIN
M27C512@DIP28.IF1.BIN
Message has been deleted
Message has been deleted

Laurentiu Petre

unread,
Sep 22, 2021, 3:52:13 PM9/22/21
to romanianho...@googlegroups.com
Salut,

Eu am schema de HC 2000 cu 2 EPROMuri. Daca as face modificarea pt EPROM de 64K (27C512), ce semnal trebuie adus pe pinul 1 (A15)?
Apoi, daca UB8 nu se mai foloseste, iar RAMul static se comanda pe CS cu modificarea data de radioman V (prin UD11), atunci se pare ca si UB10 devine inutil, ambele lui iesiri (Y0 si Y1) ne mai ducand nicaieri. 

On Wed, Sep 22, 2021 at 2:41 PM radioman V <radio...@gmail.com> wrote:
Apropo de modificarea facuta de Felix pe placile de HC-2000 cu un sigur EPROM de 64K, asta este schema:
HC2000_64K.png
In acest caz UB8 nu se mai planteaza. Practic toate HC-2000-urile cu EPROM de 64K vazute de mine aveau facuta modificarea asta impreuna cu remedierea greselii de proiectare a PCB-ului la UE10 (pinii 1 cu 4 inversati). 
Sper sa fie de folos.

radioman

unread,
Sep 22, 2021, 5:36:32 PM9/22/21
to romanianho...@googlegroups.com

Bine ca mai este cineva atent. Nu avea cum sa functioneze dupa schema anterioara. Am gasit schema intr-un caiet mai vechi de-al meu dar se pare ca e gresita. Dupa ce mi-am stricat ochii prin traseele de cblaj am vazut cum sta treaba cu adevarat.

Pinul 1 (A15) de la UB6 intr-adevar vine de la pinul 6 al UF10 dar chestia cu semnalul de CS de la RAM e gresita. De fapt acel semnal este inversat de catre inversorul nefolosit din UD11 si merge in locul semnalului B25 care iesea din pinul 5 UF10. Acum totul are sens.

Practic cand este selectat RAM-ul se dezactiveaza /CS-ul Eprom-ului mare de 64K (UB6)

Dioda Dx de pe schema chiar daca nu apare pe schemele originale ale HC-ului este prezenta pe placa si are rol de blocare a tensiunii de pe pinul B25 de pe conectorul de margine.

Asa este corect, rog ignorati mesajul meu anterior.

@Laurentiu modificarea era facuta de ICE Felix pe vremea cand producea HC-urile, eu doar am prelevat-o de pe placa. Sper ca acum e OK, pana in trei ori :)

radioman V

unread,
Sep 22, 2021, 5:45:18 PM9/22/21
to RomanianHomeComputer
Intre timp am reparat placa cu varianta cu chip de 64K (niste trasee pocnite) si am verificat modificarea cu dezactivarea IF1 prin B28 la introducerea interfetei DIVMMC. Pot confirma ca merge fara sa sughite. 
Deci merge si pe placa cu doua EPROM-uri cat si pe cea cu unul singur de 64K.

mircea....@gmail.com

unread,
Sep 23, 2021, 8:58:29 AM9/23/21
to romanianho...@googlegroups.com

Daca tot suntem prin zona asta de schema, o intrebare offtopic. La ce e folosit RAM-ul din UC8 si UA8 (ale mele HC-uri au varianta cu 1 singur chip de RAM in loc de 2, are 2KB si e folosit doar pe jumatate, A10 e dat la masa)?

Pe mine ma intereseaza sa fac eu un IF1 care sa simuleze FDC-ul intr-un alt MCU si sa folosesc SDCARD-uri in loc de floppy real si am tot studiat si studiat placa. Nu pare ca pe CP/M are nevoie nici de ROM-ul secundar (care contine doar IF1 de 2 ori) si nici de RAM-ul aditional (pe care nu reusesc sa inteleg la ce il foloseste, banuiesc ca o fi ceva legat de BASIC, pe CP/M nu pare sa ii trebuiasca).

 

Mircea

 

From: romanianho...@googlegroups.com <romanianho...@googlegroups.com> On Behalf Of radioman V
Sent: Thursday, September 23, 2021 00:45
To: RomanianHomeComputer <romanianho...@googlegroups.com>
Subject: Re: DIVMMC on HC-2000

 

Intre timp am reparat placa cu varianta cu chip de 64K (niste trasee pocnite) si am verificat modificarea cu dezactivarea IF1 prin B28 la introducerea interfetei DIVMMC. Pot confirma ca merge fara sa sughite. 

Deci merge si pe placa cu doua EPROM-uri cat si pe cea cu unul singur de 64K.

On Thursday, September 23, 2021 at 12:36:32 AM UTC+3 radioman V wrote:

Bine ca mai este cineva atent. Nu avea cum sa functioneze dupa schema anterioara. Am gasit schema intr-un caiet mai vechi de-al meu dar se pare ca e gresita. Dupa ce mi-am stricat ochii prin traseele de cblaj am vazut cum sta treaba cu adevarat.

Pinul 1 (A15) de la UB6 intr-adevar vine de la pinul 6 al UF10 dar chestia cu semnalul de CS de la RAM e gresita. De fapt acel semnal este inversat de catre inversorul nefolosit din UD11 si merge in locul semnalului B25 care iesea din pinul 5 UF10. Acum totul are sens.

Practic cand este selectat RAM-ul se dezactiveaza /CS-ul Eprom-ului mare de 64K (UB6)

Dioda Dx de pe schema chiar daca nu apare pe schemele originale ale HC-ului este prezenta pe placa si are rol de blocare a tensiunii de pe pinul B25 de pe conectorul de margine.

Asa este corect, rog ignorati mesajul meu anterior.

@Laurentiu modificarea era facuta de ICE Felix pe vremea cand producea HC-urile, eu doar am prelevat-o de pe placa. Sper ca acum e OK, pana in trei ori :)

 

On 22.09.2021 22:51, Laurentiu Petre wrote:

Salut,

 

Eu am schema de HC 2000 cu 2 EPROMuri. Daca as face modificarea pt EPROM de 64K (27C512), ce semnal trebuie adus pe pinul 1 (A15)?

Apoi, daca UB8 nu se mai foloseste, iar RAMul static se comanda pe CS cu modificarea data de radioman V (prin UD11), atunci se pare ca si UB10 devine inutil, ambele lui iesiri (Y0 si Y1) ne mai ducand nicaieri. 

 

On Wed, Sep 22, 2021 at 2:41 PM radioman V <radio...@gmail.com> wrote:

Apropo de modificarea facuta de Felix pe placile de HC-2000 cu un sigur EPROM de 64K, asta este schema:

radioman V

unread,
Sep 23, 2021, 10:04:05 AM9/23/21
to RomanianHomeComputer
RAM-ul de pe IF1 este folosit de shadow ROM doar pe BASIC ca scratchpad (ceva variabile interne) si ca buffer de sector pentru citirea de pe FDD. Nici eu nu am vazut HC2000 cu varianta cu 2 RAM-uri de 1Kx4 (2114), probabil au folosit asa ceva pe la inceputurile IF1 si au ramas desenate pe schema. Oricum RAM-ul este decodat de UB10+UG10A incepand de la 0x2800 si pana in 0x3FFF.  Fiind folositi doar A0-A9 avem doar 1K de la 0x2800 la 0x2BFF dupa care daca incerci sa scrii peste face overwrite de la 0x2800.  

De ex. facut o dezasamblare la repezeala gasim chestii precum:

0fc1 21 32 28   ld hl,0x2832
0fc4 11 e6 5c   ld de,0x5ce6
0fc7 01 09 00   ld bc,0x0009
0fca ed b0      ldir
0fcc c9         ret 
Asta transfera 9 octeti din buferul de la 0x2832 la adresa 0x5ce6 (23782) la care nea manualul de HC ne zice ca "HD_00: Inceput zona de lucru pentru SAVE, LOAD, VERIFY si MERGE". 
Si tot asa.
Pe CP/M daca imi aduc aminte  nu se foloseste RAM-ul si nici EPROM-ul asta de pe partea de IF1. Doar cel mare de pe partea de CPU care are si CP/M-ul si este mapat undeva in ultimii 8K de la 0xE000 si contine rutinele I/O pentru CP/M.
Sper sa nu mint, dar sunt chestii de dinainte de 2000.
Poti sa dezvolti putin ideea cu SD cardul?

mircea....@gmail.com

unread,
Sep 23, 2021, 10:48:05 AM9/23/21
to romanianho...@googlegroups.com

Am deja o jucarie care intercepteaza orice misca pe I/O de pe bus si planul meu era sa simulez FDC-ul doar ca am mai mult.

Practic trebuie sa reactionez la portul 7 (simulat inclusiv monostabilul) ca sa activez CPM-ul si apoi portul 85 si 87 pentru citit si scris registrii FDC simulati si comenzile tipice FDC-ului, in rest prin SPI pot citi SDCARD-ul lejer.

In prima faza planuiesc sa simulez FDD-ul de 720KB de pe CP/M in fisiere distincte (gen gotek doar ca nu doar fara FDD ci si fara FDC) sector cu sector. Pe SDCARD pot avea lejer FAT32 fara probleme.

 

Practic ar fi un soi de IF1 partial (doar partea de CP/M functionala) emulat complet. In teorie as putea emula orice device cu dispozitivul acesta.

 

HC91/2000 folosesc FDC-ul in mod nonDMA byte cu byte si asta se poate emula foarte usor (in teorie cel putin :-) )

mircea....@gmail.com

unread,
Sep 23, 2021, 10:52:06 AM9/23/21
to romanianho...@googlegroups.com

Adaugire: Pentru Basic as putea emula inclusiv un DMA ca sa nu mai fie nevoie de scratchpad... dar ar trebui rescris codul putin din IF1 basic. N-ar fi greu insa... toata munca pe care o face Z80 o poate face MCU-ul meu, trebuie doar sa colaboreze Z80 cu MCU si asta se poate face lejer pe niste porturi suplimentare. Daca ar fi sa duc treaba la extrem, inclusiv BIOS-ul CP/M ar putea fi implementat complet in MCU-ul secundar, doar call-urile BIOS executate tot la fel prin IN/OUT-uri iar tot ce vine din afara sa fie scris direct in RAM de catre MCU, Z80 doar sa coordoneze tot, dar deocamdata as fi multumit cu emulare de FDC in prima faza :-)

 

From: mircea....@gmail.com <mircea....@gmail.com>
Sent: Thursday, September 23, 2021 17:48
To: romanianho...@googlegroups.com
Subject: RE: DIVMMC on HC-2000

 

Am deja o jucarie care intercepteaza orice misca pe I/O de pe bus si planul meu era sa simulez FDC-ul doar ca am mai mult.

R Viorel

unread,
Sep 23, 2021, 4:05:49 PM9/23/21
to romanianho...@googlegroups.com
Ehee, greu cu de astea :) Foarte interesant ce vrei sa faci.
Stiu cum lucreaza softul din IF1, l-am studiat in anii 90 la greu, face ceva pooling pe un bit din registrele lui 8272 pana e ceva gata de citit(parca). 

Stau si ma intreb daca se merita treaba cu DMA-ul(bine, scapi de ram-ul respectiv) dar din ce i-mi amintesc primele doua sectoare de pe floapele cu basic contine catalogul discului, deci 2x256 bytes (deja jumatate din ram-ul ala de 1K de pe IF1) si softul din IF1 il administreaza intern nu foloseste ram-ul principal pentru asta; poate doar stiva cu SP-ul ei, ma indoiesc ca la activarea shadow rom-ului din IF1 se salveaza adresa din SP apoi se muta cu stiva tot in ram-ul din IF1. 
Si apoi pana nu e gata tot blocul de date de transferat tot nu faci nimic, eventual freci menta cu z80-ul intr-o bucla asteptand sa faca altul treaba :)) Daca era vb de multitasking atunci se schimba treaba.

In CP/M pare mai simplu. Ai entry point-uri la adrese fixe documentate unde implementezi bios-ul si te doare la basca. Plus ca cp/m-ul lucreaza cu fisierele si discurile altfel, ceva in genul fopen/fclose si tine o structura de date deschisa  in ram pentru asta.

La Basic e mai cu dichis ca nu prea ai unde pune anumite sectoare citite care nu prea au ce cauta in RAM-ul principal.

Ca si implementare nu cred ca e nevoie de comunicare pe ceva porturi suplimentare cu Z80-ul. Poate din MCU-ul din interfata emulata sa manipuleze/citeasca liniile /BUSREQ si /BUSACK ale Z80-ului.
Tragi Busreq-ul la zero si astepti pana confirma z80-ul cu busack si apoi magistrala e a ta, transferi ce vrei la ce adresa vrei.

Pana la urma ce vrea sa fie: o IF1 emulata ,un FDD emulat sau ceva mix intre :)
Mda pare ca e ceva de munca, nu ma mai prinde munca de asta de jos, te suspectez ca esti ceva mai tanar si plin de energie :) Sau poate doar gresesc.

Mircea Teletin

unread,
Sep 24, 2021, 2:37:01 AM9/24/21
to romanianho...@googlegroups.com
Cred ca shadow ram-ul ala doar vine peste cel existent nu? Nu cred ca se dezactiveaza complet ram-ul principal... oricum IF1 nu ma intereseaza asa de tare sincer... nu pentru jocuri imi bat eu capul, ma intereseaza mai mult CP/M-ul.

In prima faza va fi un soi de FDC+FDD. Am rezolvat deja partea hardware, am prototipul functional care intercepteaza orice port (full decode) pune pauza la Z80 pana se scarpina MCU-ul meu sa faca ce trebuie apoi ii da drumul.
Deocamdata citesc doar ce face Z80 cu porturile, m-a ajutat sa fac diagnoza la un HC2000 la care suspectam FDC-ul defect dar dupa ce am vazut ca raspundea continuu cu busy mi-am dat seama ca de fapt nu se selecta FDD-ul (un 7438 sovietic ars).
Ramane sa experimentez si cu scris pe bus (gen cand fac un IN port sa pot aduce valori de pe ce port vreau eu).
Dupa ce rezolv asta e foarte simplu de emulat FDC-ul. Are 3 registri mari si lati, ala principal, ala de status si ala de date in care scrii sau citesti. In modul non-DMA faci polling pe registrul de status dupa fiecare byte ca sa simulezi intreruperea care nu e folosita.
FDC-ul ar fi putut selecta el pana la 4 FDD-uri insa vad ca celor de la Felix nu le-a placut sa foloseasca functionalitatile FDC-ului si au facut circuitul ala de selectie cu monostabil separat pe care trebuie sa-l emulez (portul 7).

Am asa:
7E => starea sistemului (de aici fac trigger la CP/M din HC91 si setez configuratia RAM/ROM).
07 => selectie FDD + reset FDC R/W (tot aici e o diferenta intre 91 si 2000 cu D0 si D1 pentru FDD de 40 sau 80 tracks cu jumperul de pe 2000 pe care 91 nu-l are).
85 => status FDC R/O
87 => commands+data in/out FDC R/W

Electronica e done, ramane de scris niste cod C... nu pare mare lucru, doar ca nu mai ajung sa am timp sa-l fac :-)
Treaba cu SDCARD-ul e foarte simpla, am biblioteca pentru asa ceva gata facuta care stie FAT32.

Weekendul asta vreau sa fac un GBS8200 sa mearga cu HC2000 pe care tocmai l-am reparat (am de facut un Atmega168 sa comunice prin I2C cu GBS-ul, ii fac o clona si lui George :-) ).

Mircea Teletin

unread,
Sep 24, 2021, 3:30:36 AM9/24/21
to romanianho...@googlegroups.com

Bogdan Marcu

unread,
Sep 24, 2021, 3:43:24 AM9/24/21
to romanianho...@googlegroups.com
Cred ca mai degraba merge o idee de genul cum a facut la cobra cu cpm prietenul nostru pe cobrasov.com sa ruleze direct fara sa mai incarce de pe disc.

Sent from my iPhone

On 24 Sep 2021, at 10:30, Mircea Teletin <mircea....@gmail.com> wrote:



Mircea Teletin

unread,
Sep 24, 2021, 3:50:45 AM9/24/21
to romanianho...@googlegroups.com
Dupa ce-l fac sa mearga pun pe github tot si vedem care si cum vrea sa contribuie :-)

radioman

unread,
Sep 24, 2021, 6:59:52 AM9/24/21
to romanianho...@googlegroups.com

Da vine peste cel existent doar ca ala in BASIC nu e selectat decat de la 0x4000 in sus (cu A15=0). Era misto daca tot au proiect HC2000 monoplaca sa fi lucrat mai ingrijit pe partea de decodare si selectie. Se putea face cu un singur EPROM de 32K (16K=BASIC, 8K=IF1, 8K=CP/M) si cu RAM-ul de 64K de pe placa o paginare in functie de nevoie pe adrese. Nu mai aveau nevoie de inca un RAM static.

Dar na, au copiat de la HC90 si IF1 si le-au brodit cumva de te doare mintea cand te uiti pe schema si vrei sa modifici ceva sau sa intelegi cum merge in caz de depanare. De ex. dupa ce comuti ROM-ul si RAM-ul in mod CP/M cu OUT pe portul 0x7E trebuie sa dai disable cu OUT (#C7), xx si la shadow ROM-ul de pe BASIC. Altfel ramane activ circuitul ala de paginare shadow rom la 0x0008 si 0x0700 si se baga aiurea peste ram-ul  deja mapat la 0x0000 in CP/M. Vezi pe schema UF10B iesirea /Q pinul 8. Odata ce ai facut OUT (#C7), xx iesirea asta cade pe 0 inhiband poarta UB10B pinul 5 si odata cu ea tot circuitul de selectie IF1. Totodata  semnalul CPM de pe iesirea complementara (UF10B, pinul 9=Q) trece in 1 si merge la circuitul ala "destept" de selectie cu UG1 et comp. si face si acolo ceva selectie (cred ca se gaseste si pe edge connector semnalul asta).

Apropo, prin '94 reusisem cumva sa fac sa mapez tot RAM-ul de 64K cu un comutator si incarcam de pe floppy romul dorit intai in RAM pe la adresa 0x8000 dupa care il transferam la adresa 0x0000 si faceam JUMP la el. Astfel incat aveam liber practic tot RAM-ul de dupa memoria video. Am lucrat o vreme in configuratia asta programand in asm dupa care am trecut la 386. Chiar is curios daca mai am placa aia prin vechituri. 

Vad ca a revenit moda retro; ma uitam deunazi pe net pe sit-urile de vanzari din RO, Doamne Dumnezeule ce scoruri cer unii pentru niste HC-uri sau CIP-uri, zici ca vand Rembrandt. Daca stiam asa strangeam la greu in anii 90 ca doar mi-au trecut multe defecte prin mana si acum om ma faceam :)))

Ați primit acest mesaj deoarece sunteți abonat(ă) la un subiect din grupul „RomanianHomeComputer” din Grupuri Google.
Pentru a vă dezabona de la acest subiect, accesați https://groups.google.com/d/topic/romanianhomecomputer/qHbKBThCIQc/unsubscribe.
Pentru a vă dezabona de la acest grup și de la toate subiectele din acesta, trimiteți un e-mail la adresa romanianhomecomp...@googlegroups.com.
Pentru a vizualiza această discuție pe web, accesați https://groups.google.com/d/msgid/romanianhomecomputer/CACFCRKOLyzSFqe89fCumK0Dmi1xxne4dR%3DXWq4WbjefhqO2vZw%40mail.gmail.com.

Mircea Teletin

unread,
Sep 24, 2021, 11:29:36 AM9/24/21
to romanianho...@googlegroups.com
Ceva in lucru care sa semene a ceva arata cam asa:
image.png
Vine conectat la connectorul din spate si incearca sa nu fie mult prea inalt sau sa adauge adancime.

Mircea

Aleodor-Daniel Ioan

unread,
Oct 22, 2021, 3:47:08 AM10/22/21
to RomanianHomeComputer
Orice interfata moderna este un plus si este interesanta. Totusi, eu raman la ideea ca cea mai buna solutie este o interfata IDE pentru HDD sau CompactFlash, comutata hardware prin bitul de adresa A8 (cele 2 sectiuni de 8 biti), in mod automat la instructiunile INIR si OTIR. Se obtine un maxim de viteza posibil fara DMA si nu foloseste alte procesoare de tip microcontroler care ar avea o putere mai mare de calcul decit Z80-ul si nu prea ar mai fi calculator cu Z80...

Aleodor-Daniel Ioan

unread,
Oct 22, 2021, 3:51:33 AM10/22/21
to RomanianHomeComputer
Inca ceva. Exiata o carte "Microprocesoare. Circuite. Proiectare." in care apare o schema de controller floppy cu 8255, dar este foarte sofisticata. Teoretic ar putea fi incarcata intr-un FPGA, modern, dar partea de software ar fi imposibil de complicata. Cine reuseste sa emuleze direct interfata de floppy are tot respectul meu. Nu zic ca nu e posibil, dar e o munca de titan!

Aleodor-Daniel Ioan

unread,
Oct 22, 2021, 4:26:52 AM10/22/21
to RomanianHomeComputer
Am trimis lui George schema, pcb-ul, gerberele si pdf-urile cu interfata de hard disk laptop gindita de mine. Nu exista o posibilitate de transfer mai rapid care sa foloseasca drept procesor doar Z80-ul din HC, fara microcontroler sau DMA extern. Testat, mult mai rapid decit este nevoie pentru HC, transferul este practic instantaneu, dureaza mai putin decit afisarea unei imagini pe ecran cu LDIR! Pozele si rutinele de transfer o sa le pun separat.

Aleodor-Daniel Ioan

unread,
Oct 25, 2021, 3:10:42 AM10/25/21
to RomanianHomeComputer
Aici avem pozele fata-spate ale interfetei, ca sa se vada ca nu este doar o poveste. Hard disk-ul este IDE de 2G, dar nu este o limita, fiind accesat in modul LBA.
HDD_top.jpg
HDD_bot.jpg

Aleodor-Daniel Ioan

unread,
Oct 25, 2021, 3:14:38 AM10/25/21
to RomanianHomeComputer
Evident, are si LED care se aprinde pe durata transferului :). Ca sa se vada cit de putin dureaza :)

Aleodor-Daniel Ioan

unread,
Oct 25, 2021, 3:25:00 AM10/25/21
to RomanianHomeComputer
Se alimenteaza direct din HC.

Bogdan Marcu

unread,
Oct 25, 2021, 3:39:23 AM10/25/21
to romanianho...@googlegroups.com
Mi se pare mie sau este asemanatoare cu cea a lui Perra Putnik. Eu am facut-o pe cea de Floppy cu ceva modificari iar pe cea de hdd o folosesc varianta simpla pe 8 bit accesare la hdd in spectrum +3E.

Sent from my iPhone

On 25 Oct 2021, at 10:25, Aleodor-Daniel Ioan <aleodo...@gmail.com> wrote:

Se alimenteaza direct din HC.

Aleodor-Daniel Ioan

unread,
Oct 25, 2021, 3:45:53 AM10/25/21
to RomanianHomeComputer
Nu este asemanatoare. Poate doar principiul cu A8, care nu poate fi diferit. Insa a lui nu mergea cu INIR/OTIR, ci cu INI/OTI cu procesari suplimentare, deci viteza mai mica. Recomand verificarea schemelor pentru comparatie.

Aleodor-Daniel Ioan

unread,
Oct 25, 2021, 3:49:34 AM10/25/21
to RomanianHomeComputer
Iar decodarea este evident complet diferita, pentru ca este pt. HC, nu spectrum, iar HC-ul are multe porturi ocupate in plus.
Interfata pe 8 biti este lenta si sare jumatate din secxtoarele hard disk-ului, nu recomand.

PS: Am gindit aceasta interfata dupa ce am studiat toate variantele (vreo 5-6) de pe internet si nu mi-au placut.

Aleodor-Daniel Ioan

unread,
Oct 25, 2021, 4:09:40 AM10/25/21
to RomanianHomeComputer
Desigur, cui nu-i place, sa nu si-o construiasca. La noi la romani orgoliul este enorm...

Bogdan Marcu

unread,
Oct 25, 2021, 4:32:51 AM10/25/21
to romanianho...@googlegroups.com
E interesanta interfata, intrebasem fara sa ma uit la schema. Din poza cu interfata parea asemanatoare de aceea am intrebat.

Sent from my iPhone

On 25 Oct 2021, at 11:09, Aleodor-Daniel Ioan <aleodo...@gmail.com> wrote:

Desigur, cui nu-i place, sa nu si-o construiasca. La noi la romani orgoliul este enorm...

Aleodor-Daniel Ioan

unread,
Oct 25, 2021, 4:35:43 AM10/25/21
to romanianho...@googlegroups.com
Sigur, nici o problema. Merita vazuta schema, este optimizata. Si desigur ca anumite lucruri seamana, ca e pt. Z80 si pt. IDE, nu pot sa difere 100%.


Mircea Teletin

unread,
Oct 29, 2021, 1:40:28 AM10/29/21
to romanianho...@googlegroups.com
Cu ce soft poate fi folosita? Trebuie facut patch pentru IF1, CP/M presupun ca sa mearga nativ...

Aleodor-Daniel Ioan

unread,
Oct 29, 2021, 3:21:33 AM10/29/21
to romanianho...@googlegroups.com
Exact, trebuie facut un patch pentru IF1, la CPM trebuie inlocuite doar rutinele BIOS, e mai simplu. N-am mai avut timp sa ma ocup, dar am rutinele de transfer si de test atit pe hirtie, cit si in format Gens-Basic si in format assembler pt. CPM (nu-mi amintesc acum cum se cheama). Le pot posta daca cineva este interesat. Cel mai simplu e de postat imagini, alte fisiere nu m-am prins cum se pot posta pe grup. Modificarea care mapeaza 2 bancuri de SRAM pe extensie a fost special gindita pentru patch reversibil, fara sa fie inscris in FLASH. Dar sigur ca interfata merge si fara modificare, cu soft incarcat de pe floppy sau inclus in EPROM. insist asupra ideii ca este nativa, adica nu adauga un alt procesor din prezent, lasind HC-ul sa ramina "Vintage", cu resursele de atunci. NBici nu foloseste cipuri programabile (PAL, PLA, GAL, CPLD, FPGA), totul este clasic. Si viteza este maxima pt. Z80 fara DMA.

Mircea Teletin

unread,
Oct 29, 2021, 3:43:34 AM10/29/21
to romanianho...@googlegroups.com
Trebuie sa ne vedem :-) Ai mai mentionat tu o data dar n-am avut eu timp.

Aleodor-Daniel Ioan

unread,
Oct 29, 2021, 8:33:05 AM10/29/21
to romanianho...@googlegroups.com
Tocmai m-am intilnit saptamina trecuta cu 2 pasionati de pe grup si le-am dat dischete scrise fizic dupa imaginile postate mai inainte. Discutiile au fost foarte interesante, cel putin pentru mine.

Reply all
Reply to author
Forward
0 new messages