Microprofessor

fred101

Golden Member

In Rosmalen de gelukkige eigenaar van een MPF 1b geworden. Ik heb manuals gevonden en mijn eerste machine code stukje geprogrammeerd en hij werkt.

Zover ik begrijp heeft de 1B ook tiny basic maar ik kan het niet vinden (mbv het basic manual van deze site). Er zit bij mij een TI 2764 eprom in U6. Volgens het tiny basic manual moet er in de 1B een TMS2532 zitten. Maar ik weet niet of dat in U6 of U7 hoort. Gezien het bij mij een 64kB eprom is verwacht ik wel dat er toch ergens basic in zou kunnen staan.

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs
benleentje

Golden Member

En als je gewoon de basic commando's intoets wat gebeurt er dan?

Mensen zijn soms net als een gelijkrichter, ze willen graag hun gelijk hebben.

zit er ook de tiny-basic toetsenbord overlay bij?.

mijn MPF1-B zou het ook moeten kunnen maar heb het zelf nooit gebruikt. ben in de machinetaal blijven hangen.
gr A

bprosman

Golden Member

In de "Gewone" zit alleen een monitor, in de BASIC versie een extra basic (in de zelfde rom).

Dit zou de ROM moeten zijn :

http://electrickery.xs4all.nl/comp/mpf1/doc/monitor_and_tiny_basic.u6.…

De jongere generatie loopt veel te vaak zijn PIC achterna.

Ik heb een paar jaar geleden ook een MPF1 gehad. Ik heb toen het internet afgestruind naar gegevens over dit ding.
De MPF1 heb ik niet meer maar wel alle verzamelde gegevens hierover.
Voor de liefhebber(s) zet ik die een maand lang in mijn Dropbox.
Via deze link : https://www.dropbox.com/sh/gzehjoys6252jj9/AAABbPj-pw8vCjIe4xHI64XIa?d…
is dit alles te downloaden.

groeten,

Dolf de Waal

Deze link werkt niet:
https://www.dropbox.com/sh/gzehjoys6252jj9/AAA9hONS2uNcgbyDXlFuX94qa/F…
Hij werkt wel maar niet vanuit dropbox. Als je hem opslaat en dan opent gaat het wel.

Ik heb ook nog een microprofessor liggen, volgens mij met de boeken. Laat maar weten als er wat nodig is. Dam moet ik wel even in mijn halletje (slechts 6x24 meter) gaan graven.

Hier staat een hele boel info over de Microprofessor.

http://electrickery.xs4all.nl/comp/mpf1/doc/index.html

De Engelse firma Flite Electronics heeft een tijd de MPF1 geleverd, lang nadat Multitech met de productie ervan gestopt was.

bprosman

Golden Member

en mijn eerste machine code stukje geprogrammeerd en hij werkt.

Toch snel mn Eprom emulator afmaken.

Het copyright is er onderhand wel af, de "Bijbel" voor de Z80 programmeur :
http://retro.familie-prosman.nl/wp-content/uploads/2018/03/zaks_book.p…

En nog een leuke assembler.
http://www.cpcalive.com/docs/TASMMAN.HTM

De jongere generatie loopt veel te vaak zijn PIC achterna.
fred101

Golden Member

Hmm, na het braaf doorwerken van de monitor uitleg is het tijd voor het echte werk....en dat staat niet in het manual :-( Ik weet wel dat er genoeg assembler boeken zijn maar ik wil de hardware kunnen aanspreken (als een soort arduino waar je externe HW mee aanstuurt)

En ondertussen weet ik weer welk deel van de ZX-81/spectrum belevenis ik had verdrongen. Het geklooi met cassette bandjes. Ik zat te denken aan een Dallas SRAM ipv het gewone ram zodat ik het ding tussendoor kan uitzetten.

Voor externe opslag dacht ik aan een kaartlezer
... Maar serieus, USB wordt het niet denk ik ivm snelheid, of liever gebrek daaraan, een harddisk qua hardware. Aan de andere kant, geheugen is geen probleem meer (zit een 64k eprom in) dus een extra rom routine maken die data via een poort ergens heen stuurt. Alleen welk "ergens" en dan moet ik eerst leren programmeren

Ik denk dat het in ieder geval mogelijk moet zijn om de computer met een audio opname programma te gebruiken. Het zal de Z80 worst wezen wat er luistert en praat.

Maar misschien door een buffer trekken voor een mooie TTL output en dan via een arduino naar een SD kaartje. Dat is meer dan groot genoeg voor Z80 oefen programmatje.

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs
Hewlett

Honourable Member

Ik weet niet zeker of alle MPF-1B machines een tiny Basic ingebouwd hebben. Mijn beide machines hebben dat wel, eentje komt bij Sven van de stand vandaan en de andere ooit eens op de Jutberg gekocht, deze laatste heeft een Basic boekje en ook de Basic overlay. Beide machines hebben een 4K monitor en ingebouwde tiny Basic.

Je kunt testen of je MPF-1B Basic heeft, als je machine een 2K monitor heeft dan: GOTO 2 0 0 0 RUN of met een 4K monitor: GOTO 0 8 0 0 RUN. Display laat dan de text bASIC . zien. Even op de foto met de overlay kijken welke toesten het zijn. :-)

Overlay is ingescanned samen met een niet zo duidelijke glimmende sticker, die kun je het beste maar negeren. Overlay is printbaar.

MPF-1B-Basic-overlay.pdf

[Bericht gewijzigd door Hewlett op dinsdag 20 maart 2018 18:45:48 (11%)

HamRadio PA2HK // Keep Calm and Carry On.
bprosman

Golden Member

@Fred,

Waarom geen Eprom Emulator ?

27C256 EPROM-emulator.pdf

Overigens hoef je toch niet in Assembler blijven klungelen, er is best een leuke C-Compiler :

http://sdcc.sourceforge.net/

[Bericht gewijzigd door bprosman op dinsdag 20 maart 2018 20:09:17 (54%)

De jongere generatie loopt veel te vaak zijn PIC achterna.
fred101

Golden Member

Hewlett, bedankt. Bij mij doet tiny basic niets.

Het is een MPF-1B #73623 Op de eprom zit een alu kleur stikker met download erop geschreven.
Het is een TMS 2764-25JL Ik heb de code van 4k-ram met basic. Eens kijken of ik een 2764 heb. (een 2732 of 2716 kan ook ?)

De mijne heeft een schuifschakelaartje erbij geknutseld. Beetje vreemd. In de +5 stand zet hij 5V op P1-pin 11, dat is een schakelbare parallel lopende omleiding naar de Vcc. Dus dat ding doet niks zinvols.
Als ik dat schakelaartje in de CX.H stand zet. Dan koppelt hij Vcc, ofwel 5V direct aan pin 9 van de 74LS139. Dat is een active low uitgang (3b)

Bprosman, zoiets wil ik al langer. Leuk om firmware te hacken. Een stuk handiger dan steeds een eprom wissen. Maar ik ik zie dat niet zitten op gaatjes print. Deadbug lijkt me niet zo geslaagd. Ik zit al langer te denken aan een pcb routertje. Die dingen zijn minder dan 200 euro bij bv Banggood. Alleen heb ik geen idee of dat een beetje werkt. Dat lijkt me een stuk handiger dan geklooi met etsen en belichten of thermal transfer. Ik heb een tijdje met een plotter direct op pcb geschreven. Dat werkte best goed als ik toevallig een geschikte fineliner vond die niet tijdens het schrijven als uitdroogde, een geplette punt kreeg of niet ets bestendig genoeg bleek. En dan het geknoei met dat spul.

Maar ik heb een mooie frees met kruistafel van Proxxon. Had jij daar niet een CNC router van gemaakt ?

Ik had liever een leuke Python versie :-) Ik gebruik het ding om wat te spelen met hardware en daarover meer te leren (alleen al leuk om de LA er aan te hangen) Ik was niet van plan om uitgebreid te gaan programmeren (alleen het omzetten naar hex en dan inkloppen is al monnikenwerk) Laat staan een lap dmv C gegenereerde code.

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs
benleentje

Golden Member

Je kan van een arduino ook een eprom silmulator maken denk ik. De arduino leest de adreslijnen en RW signalen uit en als er een eprom adres langs komt zet het de data op de databus.

Mensen zijn soms net als een gelijkrichter, ze willen graag hun gelijk hebben.
KGE

Golden Member

Op 21 maart 2018 16:19:37 schreef benleentje:
Je kan van een arduino ook een eprom silmulator maken denk ik. De arduino leest de adreslijnen en RW signalen uit en als er een eprom adres langs komt zet het de data op de databus.

Met een gewone Arduino (328) gaat je dat niet lukken denk ik zonder assembler te gebruiken. De Z80 wacht namelijk niet tot je data klaar staat van de Arduino maar leest gewoon in 'Eprom tempo' in.

De 'download' rom versie voor de MPF1B (met 28 pin sockets) is bedoeld om serieel een programma te uploaden vanaf een PC naar de Microprofessor.

Andere optie is om de audio in/out te verbinden met je PC audio in/out en daarop op te slaan (met Audacity oid)

KGE

Golden Member

Hier de pdf manual van de download rom (van Flite overigens)

fred101

Golden Member

Op 21 maart 2018 17:35:13 schreef KGE:
[...]

Met een gewone Arduino (328) gaat je dat niet lukken denk ik zonder assembler te gebruiken. De Z80 wacht namelijk niet tot je data klaar staat van de Arduino maar leest gewoon in 'Eprom tempo' in.

Volgens mij kan dat wel. Daar is de wait input toch voor ?

Handig, die download eprom. Ik kan dus op de pc een hex file maken en dan naar de MPF sturen. Dan kan ik ook met een assembler werken zodat ik niet alles handmatig in hex hoef om te zetten.

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs
benleentje

Golden Member

Daar is inderdaad de wait input voor speciaal voor trage gasten op de data bus :).
Maar dan nog zal een Arduino toch 16 x keer zo snel zijn. Als ik even aanneem dat een Z80 op 1Mhz draait. Hoewel ik niet weet hoe snel zijn interne verwerking is qua machine cycles.

Een cpu zoals Z80 gooit in een machine cycle het adres op de adres bus en zal pas in een klok puls later de data inlezen. Een gewone ramchip moet ook eerst het adres decoderen en daarna de juiste byte locatie aansturen en dan het op de databus zetten.

Mensen zijn soms net als een gelijkrichter, ze willen graag hun gelijk hebben.
KGE

Golden Member

Op 21 maart 2018 20:06:23 schreef benleentje:
Daar is inderdaad de wait input voor speciaal voor trage gasten op de data bus :).
Maar dan nog zal een Arduino toch 16 x keer zo snel zijn. Als ik even aanneem dat een Z80 op 1Mhz draait. Hoewel ik niet weet hoe snel zijn interne verwerking is qua machine cycles.

De kristalfrequentie van de Microprofessor is 3.58 MHz, de Z80 loopt op de halve frequentie daarvan meen ik. De cyclustijd is niet bijzonder hoog aangezien de instructies niet in 1 cycle uitgevoerd worden maar een Atmel 328 zal dat niet in realtime (vanuit C al helemaal niet) bij kunnen benen. (ooit een ROM emulator gemaakt met een NXP ARM chip op 48 100 MHz (LPC1769) voor een 8048 CPU, Videopac spelcomputer, en die kon het net redden met de interrupt routine in assembler. Cyclus tijd was 1,75 microsec.)

De WAIT ingang zou je kunnen gebruiken om de toegangstijd flink te verlengen. Ik weet zo niet of die bereikbaar is op de microprofessor.

Een cpu zoals Z80 gooit in een machine cycle het adres op de adres bus en zal pas in een klok puls later de data inlezen. Een gewone ramchip moet ook eerst het adres decoderen en daarna de juiste byte locatie aansturen en dan het op de databus zetten.

Een gewone SRAM chip kan zoiets in 50 tot 250 ns afhankelijk van de snelheidsaanduiding, daar hoeft de Z80 niet voor in de wacht.
Cache ram chips zijn nog sneller maar verbruiken meer energie.

Om dat met een processor te emuleren moet je dus wachten tot de leesopdracht op de bus verschijnt, dan de adresbus uitlezen (hoeveel adres bits kun je inlezen?), het adres decoderen om te zien of het een adres in de ge-emuleerde romspace is, de bijbehorende byte ophalen je ge-emuleerde databus op het juiste moment in schrijfmodus zetten en de byte uitgeven, dan de bus weer vrijgeven etc. Dit zijn een hele lading instructies in C en zelfs nog in assembler.

De Z80 gooit daar tussendoor ook nog refresh en IO adressen op dezelfde adres bus.

fred101

Golden Member

De WAIT ingang zou je kunnen gebruiken om de toegangstijd flink te verlengen. Ik weet zo niet of die bereikbaar is op de microprofessor.

Volgens mij zet, in dit geval, de arduino de Z80 op wait. Daar hoef je op de MPF niets voor te doen. Dit zet de Z80 "stil" Dan kan de arduino het adres en de data klaarzetten en wait weer hoogmaken als hij klaar is. Dat kan wel refresh problemen geven bij gebruik van DRAM maar de MPF gebruikt alleen SRAM. (ik roep maar wat als digi-noob)

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs
KGE

Golden Member

Op 21 maart 2018 21:12:12 schreef fred101:
[...]
Volgens mij zet, in dit geval, de arduino de Z80 op wait. Daar hoef je op de MPF niets voor te doen. Dit zet de Z80 "stil" Dan kan de arduino het adres en de data klaarzetten en wait weer hoogmaken als hij klaar is. Dat kan wel refresh problemen geven bij gebruik van DRAM maar de MPF gebruikt alleen SRAM. (ik roep maar wat als digi-noob)

Klopt helemaal, bij die spelcomputer was er natuurlijk niet de mogelijkheid om de processor te vertragen :-)

Maar misschien wel een leuk experiment op de MPF1B, met wat serieweerstandjes in de datalijnen gaat er ook niet snel iets stuk (100 ohm werkt prima).