Bertus 20 juli 2023 gepost Share 20 juli 2023 gepost Grote dank! Deze cartridge is duidelijk meer gevuld dan de BASIC cartridge op PPP waardoor ik je eerdere opmerking snap die suggereert dat ik data aan het overschrijven ben. De BASICNL cartridge die bij mijn P2000T zat was de BASICNL1.1 versie waarin "RobRob83" in de header staat (ik vermoed refererend naar Rob van der Heij en Rob van Ommering) die wel nog enige ruimte heeft. Dit is ook de versie die op PPP staat. @cancom Heb je eventueel wat meer achtergrond informatie hoe de verschillende versies zich tot elkaar verhouden? Welke aanpassingen zijn er bijvoorbeeld gedaan en wat is het jaar van uitgave? En puur uit interesse: is er naast deze versie ook nog een A1 dan? Ik zal in ieder geval aangeven in mijn aangepaste cartridge dat dit een iteratie is gebaseerd op BASICNL1.1 omdat deze voldoende vrije ruimte heeft om een aanpassing te doen maar dat deze dus afwijkt van de BASICNL1.1A2 variant. @dionoid Ik heb een pull request ingeschoten op Github met de BASICNL1.0 en de BASICNL1.1A2 cartridges om de repository verder aan te vullen. Quote Link naar bericht Delen op andere sites
blanka 21 juli 2023 gepost Share 21 juli 2023 gepost (aangepast) Vakanties zijn er voor compleet in het wilde weg programmeren.... Ik maak een P2000 geheugenviewer met weergave van basic, machinecode, sprites en tekst. Hier een stukje Basic in het geheugen visueel gemaakt. De machinecode wordt ook leesbaar getoond. Niet met mnemonics, want dat leest net zo lastig als dat woord onuitspreekbaar is, maar analoog aan de taal C. Dus A++ betekent de accumulator 1 omhoog.. Enzovoort. 21 juli 2023 aangepast door blanka Quote Link naar bericht Delen op andere sites
cancom 21 juli 2023 gepost Share 21 juli 2023 gepost Op 20-7-2023 om 08:50, Bertus zei: Welke aanpassingen zijn er bijvoorbeeld gedaan en wat is het jaar van uitgave? En puur uit interesse: is er naast deze versie ook nog een A1 dan? Het gaat niet om een "nieuwe versie" van de interpreter dus een jaar van uitgave is niet aan de orde: de fabrikant had niks ermee te maken. Het ging erom dat de BIOS alles behalve PDOS negeert waardoor Miniware/JWS niet werd uitgevoerd zodat je telkens de usr-aanroep naar de BIOS-"CPM-start" moest intypen. Voor die automatische DOS-start is in het 1e kwart op adres #1FA6 de "ld hl,#1019" vervangen door een jump naar de toevoeging in 't 4e kwart die dan wel moet afgesloten worden met diezelfde ld hl en een jump naar #1FA9. That's all folks. Ik heb "A2" toegevoegd enkel om aan te geven dat er een verschil is. En "A1" was een 1e, iets beperktere, versie. Wie de routines wanneer heeft geschreven staat misschien in een pdf. Je moest zelf maar zien hoe je de wijziging in je slot1-doos kreeg, al of niet met hulp. Het betekende b.v. dat op een standaard slot1-print de ROMs 1 en 4 vervangen moesten worden door EPROMs. Quote Link naar bericht Delen op andere sites
HAL9000 21 juli 2023 gepost Share 21 juli 2023 gepost 1 hour ago, blanka said: Vakanties zijn er voor compleet in het wilde weg programmeren.... Ik maak een P2000 geheugenviewer met weergave van basic, machinecode, sprites en tekst. Hier een stukje Basic in het geheugen visueel gemaakt. nice! Wat bedoel je met Sprites? Quote Link naar bericht Delen op andere sites
blanka 21 juli 2023 gepost Share 21 juli 2023 gepost Als er van die teletekst-sprites in de code zitten, bijvoorbeel het startscherm van Fraxxon, de fruitjes in Jackpot.etc. Om die op te sporen in de code kun je een spriteview-overlay aanzetten, en daarna kun je de plekken maskeren. Quote Link naar bericht Delen op andere sites
Bertus 21 juli 2023 gepost Share 21 juli 2023 gepost 4 hours ago, blanka said: Vakanties zijn er voor compleet in het wilde weg programmeren.... Ik maak een P2000 geheugenviewer met weergave van basic, machinecode, sprites en tekst. Hier een stukje Basic in het geheugen visueel gemaakt. Supermooi die lay-out! Hoe moet ik die rode 4-byte (?) blokken interpreteren? 4 hours ago, cancom said: Het gaat niet om een "nieuwe versie" van de interpreter dus een jaar van uitgave is niet aan de orde: de fabrikant had niks ermee te maken. Dank voor die toelichting! Het is dus een soort van revisie door de gebruikersgemeenschap. Ik zal die informatie laten landen in de beschrijving van deze ROM in de PPP. Quote Link naar bericht Delen op andere sites
blanka 21 juli 2023 gepost Share 21 juli 2023 gepost DIe rode blokken zijn regelnummers in Basic, die beslaan 4 bytes, 2 bytes voor de locatie van de volgende regel, en 2 bytes voor het regelnummer. Beide waarden staan onderaan afgebeeld, omwisselbaar tussen hex en normaal Ik zie in sommige programma's GOSUB machinecode die naar bijvoorbeeld &H1187 springt. Wordt er dan gebruik gemaakt van routines in de Basic cartridge? Best gevaarlijk of niet? Quote Link naar bericht Delen op andere sites
blanka 21 juli 2023 gepost Share 21 juli 2023 gepost Even iets heel anders, waren er P2000 modellen die géén doorzichtig klepje hadden? Ben benieuwd of die nou gewoon de tand des tijds niet hebben overleefd, of dat ze vanaf een bepaald moment zonder zijn geleverd. De behuizing is namelijk nog steeds voorzien van de nokjes ervoor. Quote Link naar bericht Delen op andere sites
HAL9000 22 juli 2023 gepost Share 22 juli 2023 gepost 18 hours ago, blanka said: DIe rode blokken zijn regelnummers in Basic, die beslaan 4 bytes, 2 bytes voor de locatie van de volgende regel, en 2 bytes voor het regelnummer. Beide waarden staan onderaan afgebeeld, omwisselbaar tussen hex en normaal Ik zie in sommige programma's GOSUB machinecode die naar bijvoorbeeld &H1187 springt. Wordt er dan gebruik gemaakt van routines in de Basic cartridge? Best gevaarlijk of niet? Inderdaad, dat klopt, die maken gebruik van basic en dat zou theoretisch gevaarlijk kunnen zijn. Maar destijds waren de basic cartridges uitgerust met echte ROMs. Dus best stabiel. Maar als iemand een aangepste basic zou maken en de toegevoegde code niet aan het eind, maar tussen de andere code hebben geplaatst, of er verscheen een nieuwe Basic met andere adressen, dan gingen die programma's stuk... Basic maakt wel gebruik van wat hooks en vectoren in RAM om de mogelijkheid te bieden op die manier 'in te haken'. maar niet alle handige routines in basic hebben zo'n sprongtabel of vast aanspreekadres. Quote Link naar bericht Delen op andere sites
blanka 22 juli 2023 gepost Share 22 juli 2023 gepost 3 hours ago, HAL9000 said: Inderdaad, dat klopt, die maken gebruik van basic en dat zou theoretisch gevaarlijk kunnen zijn. Maar destijds waren de basic cartridges uitgerust met echte ROMs. Dus best stabiel. Maar als iemand een aangepste basic zou maken en de toegevoegde code niet aan het eind, maar tussen de andere code hebben geplaatst, of er verscheen een nieuwe Basic met andere adressen, dan gingen die programma's stuk... Basic maakt wel gebruik van wat hooks en vectoren in RAM om de mogelijkheid te bieden op die manier 'in te haken'. maar niet alle handige routines in basic hebben zo'n sprongtabel of vast aanspreekadres. Is er documentatie/lijst van dat soort in programma's toepasbare routines? Quote Link naar bericht Delen op andere sites
Bertus 22 juli 2023 gepost Share 22 juli 2023 gepost 5 hours ago, blanka said: Is er documentatie/lijst van dat soort in programma's toepasbare routines? Deze pagina's schieten mij te binnen. Wellicht is er meer, maar ik ben nog niet klaar met alles op het archief door te nemen. https://github.com/p2000t/documentation/blob/master/P2000gg/p2000ggnieuwsbrief1-7.pdf : blz 26 https://github.com/p2000t/documentation/blob/master/programming/Adresboekje.pdf : blz 66 en 67 Quote Link naar bericht Delen op andere sites
blanka 23 juli 2023 gepost Share 23 juli 2023 gepost 10 hours ago, Bertus said: Deze pagina's schieten mij te binnen. Wellicht is er meer, maar ik ben nog niet klaar met alles op het archief door te nemen. https://github.com/p2000t/documentation/blob/master/P2000gg/p2000ggnieuwsbrief1-7.pdf : blz 26 https://github.com/p2000t/documentation/blob/master/programming/Adresboekje.pdf : blz 66 en 67 De nieuwsbrief toont een deel van de lijst, met een programma om de hele lijst te genereren. Alleen kan ik geen <> typen in de emulator. De toets op die plek geeft een piep. Op mijn ene computer zit daar (` ~) en op de andere (\ |), maar beide pakt ie niet. Iemand gelukt om groter dan/kleiner dan te tikken in M2000? Quote Link naar bericht Delen op andere sites
HAL9000 23 juli 2023 gepost Share 23 juli 2023 gepost 16 hours ago, Bertus said: Deze pagina's schieten mij te binnen. Wellicht is er meer, maar ik ben nog niet klaar met alles op het archief door te nemen. https://github.com/p2000t/documentation/blob/master/P2000gg/p2000ggnieuwsbrief1-7.pdf : blz 26 https://github.com/p2000t/documentation/blob/master/programming/Adresboekje.pdf : blz 66 en 67 En deze niet te vergeten!! programming/ROMroutines Basic-interpreter.pdf Quote Link naar bericht Delen op andere sites
folly 24 juli 2023 gepost Share 24 juli 2023 gepost On 7/23/2023 at 6:34 AM, blanka said: De nieuwsbrief toont een deel van de lijst, met een programma om de hele lijst te genereren. Alleen kan ik geen <> typen in de emulator. De toets op die plek geeft een piep. Op mijn ene computer zit daar (` ~) en op de andere (\ |), maar beide pakt ie niet. Iemand gelukt om groter dan/kleiner dan te tikken in M2000? Als het goed is zit er een M2000.txt file bij de emulator. Hier kan je meer informatie vinden. Dit is de extra keymapping van de txt file : Key Mappings ============ Cursor Keys, - Movement Alt/Ctrl Delete - < > ` ~ - CODE Jammer genoeg niet erg goed beschreven maar voor : - "<" gebruik je "Delete" - ">" gebruik je "Shift+Delete" Quote Link naar bericht Delen op andere sites
HAL9000 25 juli 2023 gepost Share 25 juli 2023 gepost (aangepast) Fout gevonden in mijn intikwerk! Negeer deze post 25 juli 2023 aangepast door HAL9000 Quote Link naar bericht Delen op andere sites
HAL9000 25 juli 2023 gepost Share 25 juli 2023 gepost (aangepast) On 7/23/2023 at 6:34 AM, blanka said: De nieuwsbrief toont een deel van de lijst, met een programma om de hele lijst te genereren. Alleen kan ik geen <> typen in de emulator. De toets op die plek geeft een piep. Op mijn ene computer zit daar (` ~) en op de andere (\ |), maar beide pakt ie niet. Iemand gelukt om groter dan/kleiner dan te tikken in M2000? hier een listing ZONDER <> die ook werkt 25 juli 2023 aangepast door HAL9000 Quote Link naar bericht Delen op andere sites
HAL9000 25 juli 2023 gepost Share 25 juli 2023 gepost (aangepast) post gebaseerd op verkeerde data heb m weggehaald om verwarring te voorkomen. 25 juli 2023 aangepast door HAL9000 Quote Link naar bericht Delen op andere sites
HAL9000 25 juli 2023 gepost Share 25 juli 2023 gepost On 7/22/2023 at 8:26 PM, Bertus said: Deze pagina's schieten mij te binnen. Wellicht is er meer, maar ik ben nog niet klaar met alles op het archief door te nemen. https://github.com/p2000t/documentation/blob/master/P2000gg/p2000ggnieuwsbrief1-7.pdf : blz 26 https://github.com/p2000t/documentation/blob/master/programming/Adresboekje.pdf : blz 66 en 67 Ik zag net dat op pag 65 van het adresboekje ook een tabel staat met alle basic-keywords en adressen voor zowel cassette- als diskbasic. Quote Link naar bericht Delen op andere sites
blanka 28 juli 2023 gepost Share 28 juli 2023 gepost On 7/24/2023 at 9:24 AM, folly said: Als het goed is zit er een M2000.txt file bij de emulator. Hier kan je meer informatie vinden. Dit is de extra keymapping van de txt file : Key Mappings ============ Cursor Keys, - Movement Alt/Ctrl Delete - < > ` ~ - CODE Jammer genoeg niet erg goed beschreven maar voor : - "<" gebruik je "Delete" - ">" gebruik je "Shift+Delete" Top, ga ik proberen. Doordat het nog niet lukte, heb ik in ieder geval nog wat bugs uit mijn Basic-omzetter gehaald. Na cas naar bas (tekst file) en weer terug bleek een boel beschadigd te raken. Ik dacht ik zet die <> er wel even in met teksteditor. Maar nu weet ik dus hoe het in de emulator kan, en is mijn bas-cas omzetter weer een bug armer. Quote Link naar bericht Delen op andere sites
HAL9000 6 augustus 2023 gepost Share 6 augustus 2023 gepost (aangepast) On 3/8/2020 at 1:08 AM, HAL9000 said: Monitor heeft display rot, maar verder werkt alles... Ja, het is een paar jaar geleden... Ondertussen werd steeds minder van het scherm leesbaar. Dit weekeinde heb ik naar aanleiding van deze post op een Duits forum: Gevaarlijke monitor ,de stoute schoenen aangetrokken. Heel voorzichtig (en deels in stukken) de op de beeldbuis geplakte glasplaat en de vergane kit verwijderd... Ook de gelekte smurrie opgesopt. Zie hier het resultaat! 6 augustus 2023 aangepast door HAL9000 volgorde foto's aangepast Quote Link naar bericht Delen op andere sites
HAL9000 6 augustus 2023 gepost Share 6 augustus 2023 gepost On 12/19/2021 at 10:49 AM, cancom said: Goed nieuws voor degene met een gebroken nek: binnenkort is bij Conrad een netschakelaar te verkrijgen die bijna identiek is aan de originele. Een verschilletje zit in de afstand tussen de montagegaten: 20mm i.p.v. 23mm, dus moeten de gaatjes (3mm) in de montageplaat iets uitgefreesd worden. Bewaar wel de originele "kap" en dan is dit een prima vervanger (ook bij deze worden beide aders geschakeld) ! Artikelnummer 701606. Ik heb deze besteld en sinds gisteren in huis, dank voor de tip @cancom! Vandaag de schakelaars in zowel de monitorkast als de computer vervangen en de P2000M is zo goed als nieuw! Quote Link naar bericht Delen op andere sites
Bekkie 6 augustus 2023 gepost Share 6 augustus 2023 gepost On 7/21/2023 at 7:45 PM, blanka said: Even iets heel anders, waren er P2000 modellen die géén doorzichtig klepje hadden? Ben benieuwd of die nou gewoon de tand des tijds niet hebben overleefd, of dat ze vanaf een bepaald moment zonder zijn geleverd. De behuizing is namelijk nog steeds voorzien van de nokjes ervoor. Bij introductie was de P2000T eigenlijk veel te duur voor het geboogde marktsegment. De tweede generatie P2000T's (zie schakelaar van de recorder) heeft een kosten reductie ondergaan en toen is dat klepje niet meer geleverd. Quote Link naar bericht Delen op andere sites
Bekkie 6 augustus 2023 gepost Share 6 augustus 2023 gepost On 7/19/2023 at 7:16 PM, Bertus said: Zoals jullie weten heb ik enkele hardware projectjes rondom de P2000 opgezet. Om meer uit die hardware te halen is het handig om een ROM flasher te hebben, maar op basis van de discussie in dit topic begrijp ik dat niet iedereen die heeft. Ik heb zelf een TL866ii, maar die zijn al meteen erg prijzig (rond de 100 euro). Je kunt natuurlijk je eigen flasher bouwen met een Arduino, een breadboard en wat shift registers, maar ik kan me indenken dat de drempel daarvoor ook nogal hoog is. (van de andere kant; het kan ook een heel leerzaam project zijn) Vooral voor diegenen die nog geen ROM flasher hebben: heeft het een meerwaarde voor jullie om een gebruiksvriendelijke en goedkope flasher te hebben? Ik heb een redelijk ver ontwikkeld prototype op basis van een Raspberry PICO (zie afbeeldingen) en met een relatief kleine investering aan mijn kant kan dat tot een mooi (open-source / open-hardware) product worden. Ik probeer met deze vraag een beetje te toetsen of daar behoefte aan is of dat er al wellicht goede (en vooral goedkope) alternatieven bestaan. Qua kostprijs voor het product wat ik voor ogen heb moet je denken aan ~20 euro (10-13 euro voor PCB + componenten, ~2 euro voor 3D casing, 5 euro verzendkosten). Laat vooral horen wat jullie ervan vinden! Ik heb zeker interesse in een dergelijke ROM flasher. Indien gewenst kan ik je helpen met 3D printen, solderen en/of PCB layouten. De prijs die noemt is zeer schappelijk. Quote Link naar bericht Delen op andere sites
blanka 6 augustus 2023 gepost Share 6 augustus 2023 gepost 7 hours ago, HAL9000 said: Ja, het is een paar jaar geleden... Ondertussen werd steeds minder van het scherm leesbaar. Dit weekeinde heb ik naar aanleiding van deze post op een Duits forum: Gevaarlijke monitor ,de stoute schoenen aangetrokken. Heel voorzichtig (en deels in stukken) de op de beeldbuis geplakte glasplaat en de vergane kit verwijderd... Ook de gelekte smurrie opgesopt. Zie hier het resultaat! Top resultaat! Ik wil niet weten wat er vanaf is gekomen. Quote Link naar bericht Delen op andere sites
blanka 6 augustus 2023 gepost Share 6 augustus 2023 gepost 2 hours ago, Bekkie said: Ik heb zeker interesse in een dergelijke ROM flasher. Indien gewenst kan ik je helpen met 3D printen, solderen en/of PCB layouten. De prijs die noemt is zeer schappelijk. Ik ben m aan het uittesten, en met name de cartridge met ZIF-flash-rom is erg prettig in gebruik, ik had al de oranje-zwarte gekocht, maar deze geniet de voorkeur. Inmiddels ook een eerste stap gezet voor softwaretool op Mac en andere computers, ik maak gewoon een .jar. Na Basic flashen heb ik eens BIS uitgeprobeerd, die zit niet op de multicart. Heb er inmiddels ook de reclamefolder van. Nog tips om goed en gemakkelijk PDF's te maken van documentatie? Ik heb wel eens zo'n opstelling gezien met wig van glas waar je een boek overheen legt, en dan worden de pagina's gefotografeerd. Scanner is niet zo lekker voor gebonden boeken. Weet iemand hoe je in BIS grafische kleuren kiest? Ik heb wel een aantal andere toetsen uitgevonden, maar dat nog niet. Quote Link naar bericht Delen op andere sites
RoykeA 6 augustus 2023 gepost Share 6 augustus 2023 gepost 5 uur geleden, Bekkie zei: Ik heb zeker interesse in een dergelijke ROM flasher. Indien gewenst kan ik je helpen met 3D printen, solderen en/of PCB layouten. De prijs die noemt is zeer schappelijk. Bij deze heb ik ook interesse in de rom flasher. Ben benieuwd wanneer het project vorm krjgt. Quote Link naar bericht Delen op andere sites
Bertus 7 augustus 2023 gepost Share 7 augustus 2023 gepost (aangepast) Goed nieuws. De ROM flasher is zover af dat ik hem graag de deur uit stuur om door geïnteresseerden te laten testen. Ik heb een GUI in Qt geschreven om (hopelijk) makkelijk met de flasher te interfacen. Daarbij heb ik ook een bijbehorende cartridge ontwikkeld met een ZIF socket op de achterzijde (zie foto). Daarmee kun je de ROM chip inserteren zonder dat je de cartridge hoeft open te maken. Aan de voorzijde van de cartridge zit een piano-type dip switch om de bank te selecteren. Een paar kanttekeningen: De GUI is ontwikkeld in Qt op Windows. Zover ik kan zien werkt deze out-of-the-box maar ik raad geïnteresseerden desondanks aan om eerst even te testen of de GUI werkt voordat je overweegt om het in gebruik te nemen. Ik heb zelf beperkte ervaring met Mac en ik gebruik een kant-en-klare MacOSx image in Github actions om de GUI te compilen voor Mac. Deze compilatie werkt op MacOSx versie 11 en nieuwer, maar niet op de oudere MacOSx versies. Wederom; als je enkel een Mac systeem hebt, test dan even de Mac GUI voor gebruik. @blanka heeft de flasher zelf getest voor MacOSx (dus niet de GUI) en dat werkt zonder problemen. De flasher gebruikt een simpel UART protocol voor de communicatie en Blanka heeft daar zelf iets voor geschreven in Java. Je kunt met deze flasher ook de ROM in de zwart-oranje cartridge herprogrammeren. Je moet daarvoor de cartridge wel openmaken. Tevens heb je een adapterplaatje nodig voor PLCC32 naar DIP (heb ik inmiddels ook gemaakt). Het herhaaldelijk open- en dichtschroeven kan echter wel het plastic beschadigen zodat de schroef niet meer goed hecht. Ik heb daarom een herziene versie van de enclosure (doosje) gemaakt met threaded inserts die dit probleem oplossen. @RoykeA en @Bekkie; ik stuur jullie een DM voor e.e.a. verder af te stemmen. Edit: Blijkbaar heb ik nog niet genoeg "forum-credits" om (nieuwe) DMs te sturen. Dus willen jullie mij benaderen? 7 augustus 2023 aangepast door Bertus Quote Link naar bericht Delen op andere sites
samba-boy 8 augustus 2023 gepost Share 8 augustus 2023 gepost Op 6-8-2023 om 11:11, HAL9000 zei: Ja, het is een paar jaar geleden... Ondertussen werd steeds minder van het scherm leesbaar. Dit weekeinde heb ik naar aanleiding van deze post op een Duits forum: Gevaarlijke monitor ,de stoute schoenen aangetrokken. Heel voorzichtig (en deels in stukken) de op de beeldbuis geplakte glasplaat en de vergane kit verwijderd... Ook de gelekte smurrie opgesopt. Zie hier het resultaat! Mijn hemel, wat een zootje. Complimenten. Quote Link naar bericht Delen op andere sites
blanka 12 augustus 2023 gepost Share 12 augustus 2023 gepost (aangepast) Ik heb nog wat tapes met nieuw materiaal gevonden, en probeer deze te dumpen met het programma van Marcel de Kogel. Dat lukt maar helaas bij een leesfout stopt ie meteen en gaat niet verder met de volgende blokken. Ik miste ook iets voor de ontvangende kant, dus daar ook maar even een simpel programmaatje voor gemaakt met wat visuele feedback op wat er gebeurt (teller met gelezen bytes en blokken). Ik vroeg me af is er ook een omgekeerde tool, die de CAS terugzet naar een bandje. We hebben nu wel iets om een bas file in het geheugen te laden, maar de andere bestanden in de cas mis je dan altijd. Zou die tool van de Kogel nog op te voeren zijn naar 9600baud? Ik heb de tool van Marcel even samengeperst tot 1 blok en omgezet naar CAS file, scheelt weer overtypen. Tape2Mac.cas 12 augustus 2023 aangepast door blanka Quote Link naar bericht Delen op andere sites
HAL9000 12 augustus 2023 gepost Share 12 augustus 2023 gepost 5 hours ago, blanka said: Ik vroeg me af is er ook een omgekeerde tool, die de CAS terugzet naar een bandje. We hebben nu wel iets om een bas file in het geheugen te laden, maar de andere bestanden in de cas mis je dan altijd. Zou die tool van de Kogel nog op te voeren zijn naar 9600baud? Dank voor de CAS file! Goede vragen, hierbij mijn input: In principe wordt een blok data geheel ingelezen en treedt de (lees)fout vaak pas op bij een incorrecte checksum. Die fout negeren, toch het blok versturen en doorgaan is het enige wat nodig is... Ik denk dat het aanpassen van de tool niet heel ingewikkeld moet zijn, maar daarvoor moet de tool nader bestudeerd worden, ook omdat er ook andere leesfouten kunnen optreden waarbij evt recovery van de data ingewikkelder is. Ik heb de disassembly van de monitor alweer een paar jaar geleden gemaakt dus niet alles is top-of-mind... Opschroeven van de baudrate zou ook moeten kunnen, maar ook hier geldt: aanpassen hangt af van hoe Marcel ooit de transfer en timing heeft ingericht: vergt ook wat analyse. De laatste, 'het omgekeerde proces' moet zeker mogelijk zijn. De monitor schrijft een data (programma, array etc.) zelf ook weg als losse blokken. Leuk om ook over na te denken. Quote Link naar bericht Delen op andere sites
blanka 14 augustus 2023 gepost Share 14 augustus 2023 gepost (aangepast) Ik probeer een Z80 emulator te maken, ik weet het 1000x gedaan, tijdsverspilling, maar gewoon leuk als oefening. Ik merk echter dat computers nu met 32 bit integers werken (geen 64 blijkbaar), maar als je de standaard 8 bit bewerkingen in 32 bit doet gebeuren er toch andere dingen. Weet iemand hoe de carry, sign en overflow flags werken in de Z80 bij ADD en ADC, en de aftrek varianten. Vind de uitleg hierover heel vaag. Zowel in de Z80 handleiding van Zilog, als op vele websites staan weinig voorbeelden. stel ik heb 10000001 10000001+ 100000010 Dat kun je dus interpreteren als 129+129=258 (de omslaggrens is in feite arbitrair, meestal doen we -128/127, soms 0/255, maar -50/205 zou ook kunnen. In deze interpreatie is de eerste 1 van de uitkomst 256. Komt die dan in een overflow-flag? Stel dat je het negatief behandeld, dan staat er: -127+-127=-254, dezelfde weergave in 9-bits. is het nu zo dat in de eerste situatie sign op 0 staat, en 0 blijft, en in de tweede sign op 1 staat en 1 blijft? en dat in beide gevallen overflow van 0 naar 1 gaat? En wat als carry 1 was? of overflow al 1 was? Ik zoek hier duidelijke voorbeelden van. En dan is er ook nog het gedoe met half-bit carry (geen idee waarom die idiote 4-bit decimaal manier van werken in de processor is gestopt). Wordt dat echt gebruikt in software, of is dat er vooral voor compatibiliteit met 4-bit software van daarvoor (de 4004)? 14 augustus 2023 aangepast door blanka Quote Link naar bericht Delen op andere sites
HAL9000 14 augustus 2023 gepost Share 14 augustus 2023 gepost Hi, Even snel, voordat allerlei meetings en andere werkgerelateerde dingen voorrang vragen: Hier een topic dat wat dieper ingaat op de half-carry: https://retrocomputing.stackexchange.com/questions/4693/why-does-the-z80-have-a-half-carry-bit en Ben Eater (een van mijn favoriete Youtubers) legt, vind ik, goed uit hoe binair rekenen werkt in deze video: https://www.youtube.com/watch?v=4qH4unVtJkE&ab_channel=BenEater Quote Link naar bericht Delen op andere sites
Bertus 14 augustus 2023 gepost Share 14 augustus 2023 gepost (aangepast) 12 hours ago, blanka said: Ik probeer een Z80 emulator te maken, ik weet het 1000x gedaan, tijdsverspilling, maar gewoon leuk als oefening. Ik merk echter dat computers nu met 32 bit integers werken (geen 64 blijkbaar), maar als je de standaard 8 bit bewerkingen in 32 bit doet gebeuren er toch andere dingen. Ik weet niet of dit je veel gaat helpen, maar op x64 architectuur zal een operatie met 64-bit integers in de regel resulteren in een optcode met 64 bit registers; een 64 bit integer operatie dus. Afhankelijk van de programmeertaal die je gebruikt, welke variabelen je daarin declareert en de bibliotheek waartegen je aan compileert kan dat een 32bit integer zijn. In C++ is de de-facto integer op een 64 bit systeem LP64, dus 64 bits per integer. Op 32 bit systemen is dit ILP32, dus 32 bit. Wil je 8 bit operaties afdwingen, dan kun je ervoor kiezen om 8 bit variabelen te declareren. In C++ heb je bijvoorbeeld de familie uint8_t, uint16_t, etc. Wat er daadwerkelijk onder de motorkap gebeurd is niet gegarandeerd en wordt bepaald door je compiler. Soms worden er daadwerkelijk 8 bit operaties gedaan, maar het kan ook dat als je meerdere van daar soort operaties in een for-loop hebt, dat je compiler dan SIMD parallellisatie uitvoert. Als je wilt weten wat je compiler ervan maakt, dan kun je ervoor kiezen om de gegenereerde assembly uit te lezen. Als je 100% controle over je operaties wilt behouden, dan kun je ervoor kiezen x64 assembly te schrijven (of de x86 assembly voor 32 bit systemen). 12 hours ago, blanka said: Vind de uitleg hierover heel vaag. Zowel in de Z80 handleiding van Zilog, als op vele websites staan weinig voorbeelden. Als je beter begrip wilt hebben over de interne werking van de Z80 kun je een emulator gebruiken zoals onderstaande. Deze laat netjes het flag register zien en je kunt stappen per cyclus of per instructie maken: https://floooh.github.io/visualz80remix/ Als je in deze emulator de machineinstructies 3E 80 C6 81 intypt (LD A,128 ; ADD 129), en de rest op 00 (NOP) zet en doorspoelt, dan kun je kijken naar het resultaat in het flag register. Deze is szyhxVnC, dus overflow en carry zijn allebei gezet. Stel je pakt LD A,128, ADD 128, dan worden naast overflow en carry, ook nog eens zero en half-carry gezet. Edit: Er schiet me nog iets te binnen: Je kunt natuurlijk ook helemaal all-in retro gaan en op je P2000T met Zemon dit uitvogelen. Je kunt weliswaar niet direct het flag register naar een ander register overzetten, maar wel indirect via de stack. Je zou dus na een operatie van interesse 'af' naar de stack kunnen duwen, dan eraf halen in 'bc' en vervolgens de waarde van het flag register in je accumulator stoppen waarna je ermee kunt doen wat je wilt (bijvoorbeeld wegschrijven als een string). push af pop bc ld a,c 14 augustus 2023 aangepast door Bertus Quote Link naar bericht Delen op andere sites
blanka 15 augustus 2023 gepost Share 15 augustus 2023 gepost (aangepast) Ik had een aantal 8 vs 32 bit problemen al opgelost. Ik hoef niet de snelste emulatie te maken, maar ik wil meer door stukken code kunnen steppen met Teletekst weergave van de P2000 schermbuffer. Bijvoorbeeld door even in 32 bit te rekenen, bit 8 uit te lezen voor overflow, en dan bit 0-7 terug te duwen in de byte van het register. Die Z80 chip weergave is supercool, bedankt Bertus, maar of je daar nou wijzer van wordt.... Vooral leuk voor een 90's rave als beam-materiaal achter de DJ. Als je echt zou willen, kun je in zo'n weergave wel zien hoeveel simpeler de dingen in het echt zijn dan dat wij er omheen gebreid hebben. Begint al bij de opcodetabel. Die wordt vaak 16x16 vakjes weergegeven, maar het zit allemaal een stuk logischer als je 4x8x8 pakt. Of A ziet als register 7 i.p.v. de eerste. Het is het laatste register. B is de eerste. En flags zijn gewoon nummer 6. Als je 6 en 7 vervolgens ziet als 16 bit combi, dan is het logisch dat bit 0 van flags eigenlijk gewoon bit 8 is in de berekening, en bit 15 dus bepaalt of die waarde positief of negatief is. Dus kun je bit 8 uit de 32 bit berekening als bit 0 in de register 6 stoppen. En bit 15 als sign op plek 7. 15 augustus 2023 aangepast door blanka Quote Link naar bericht Delen op andere sites
HAL9000 15 augustus 2023 gepost Share 15 augustus 2023 gepost (aangepast) 37 minutes ago, blanka said: ... dan is het logisch dat bit 0 van flags eigenlijk gewoon bit 8 is in de berekening, en bit 15 dus bepaalt of die waarde positief of negatief is. Dus kun je bit 8 uit de 32 bit berekening als bit 0 in de register 6 stoppen. En bit 15 als sign op plek 7. Precies! Je kan ook gewoon bit 7 als sign nemen in principe. Om van een 8 bit signed en negatieve byte een signed negatief word (16 bit) te maken plak je er een FFh ( 11111111b ) voor, en 00h voor een positief getal. je 'propageert' dan bit 7 door die te kopieren in alle 'hogere' bits. uit Wikipedia ( HIER ) : "When using a complement representation, to convert a signed number to a wider format the additional bits must be filled with copies of the sign bit in order to preserve its numerical value, a process called sign extension or sign propagation. 15 augustus 2023 aangepast door HAL9000 tikfout Quote Link naar bericht Delen op andere sites
HAL9000 15 augustus 2023 gepost Share 15 augustus 2023 gepost De P2000T was er in een aantal uitvoeringen, met als grootste verschil de hoeveelheid RAM, voor zover ik weet. Hadden die modellen verschillende moederbord-configuraties of hadden de exemplaren met minder RAM alleen minder geheugenchips? Quote Link naar bericht Delen op andere sites
blanka 15 augustus 2023 gepost Share 15 augustus 2023 gepost Volgens mij had je of 16kB extra door een vertikaal bordje naast de uitbreidingsbus/ROM slot, of 24kB extra als je een floppybord had (tweede verdieping printplaat). Misschien was het ook 32kB met bank-omschakelen, maar dat heb ik niet getest, hij geeft 40kB aan als vrij geheugen (minus de systeemvariabelen). Ik heb een vertikaal bordje met 64kB aan RAM, maar dat is volgens mij een gefaald probeersel van de originele eigenaar. Heel iets anders, zijn er hier P2000 bezitters met een nep-leren draagtas? Ik heb die een, maar nooit elders gezien, terwijl het wel een echt op de P2000 gericht product lijkt, het ziet er niet gehobbiet uit, en past precies. Quote Link naar bericht Delen op andere sites
HAL9000 20 augustus 2023 gepost Share 20 augustus 2023 gepost Hi! Ik heb de afgelopen periode wat uurtjes gestoken in het OCR-en, corrigeren en geheel van engelstalig commentaar voorzien van de assembly code van de @JWS - DOS listing uit het MiniWare document. Omdat dit blijkbaar niet de laatste versie van JWS-DOS was heb ik daarna de door @cancom hier geplaatste binary file van versie 5.0 van JWS Dos onder handen genomen en ook daarvan een volledig gedocumenteerde disassembly gemaakt. Ik ben beide files nu aan het doorlopen op de laatste (spel)foutjes en wil ze deze week hier delen en ook toevoegen aan de P2000 Github. Quote Link naar bericht Delen op andere sites
w2510a 21 augustus 2023 gepost Share 21 augustus 2023 gepost Hello everybody! I am sorry to post in English, but I am from Austria and can't write in Dutch. My interest in computers started in school 35 years ago. Since 25 years I am collecting and repairing historic computers. My collection also includes a number of Philips P2000 (several P2000T, one P2000M and two P2000C). All of them are working and I have some software as well. However, I don't have a CPM cartridge for the P2000T and would be interested to get a "Homebrew cartridge module" as developed/offered by @Bertus here some time ago. Is there still a possibility to get such a module? Quote Link naar bericht Delen op andere sites
Wolf 21 augustus 2023 gepost Share 21 augustus 2023 gepost Hi, it is for sale on marktplaats. Contact the seller via this link. P2000T Multicartridge | Cartridge met 17 applicaties € 29,95 https://link.marktplaats.nl/m2009475934?utm_source=android_social&utm_content=vip&utm_medium=android_social&utm_campaign=socialbuttons Quote Link naar bericht Delen op andere sites
Bertus 21 augustus 2023 gepost Share 21 augustus 2023 gepost (aangepast) I am sure I can help you out. Due to the "minimum of 50 posts" restriction on the forum, I cannot (yet) send any direct messages. Can you share some contact details so I can reach out to you? edit: Or contact me on Marktplaats, that is fine as well. 21 augustus 2023 aangepast door Bertus Quote Link naar bericht Delen op andere sites
w2510a 21 augustus 2023 gepost Share 21 augustus 2023 gepost 35 minuten geleden, Bertus zei: I am sure I can help you out. Due to the "minimum of 50 posts" restriction on the forum, I cannot (yet) send any direct messages. Can you share some contact details so I can reach out to you? edit: Or contact me on Marktplaats, that is fine as well. Great, I just sent a message on Marktplaats. Quote Link naar bericht Delen op andere sites
HAL9000 22 augustus 2023 gepost Share 22 augustus 2023 gepost On 8/20/2023 at 11:41 PM, HAL9000 said: Hi! Ik heb de afgelopen periode wat uurtjes gestoken in het OCR-en, corrigeren en geheel van engelstalig commentaar voorzien van de assembly code van de @JWS - DOS listing uit het MiniWare document. Omdat dit blijkbaar niet de laatste versie van JWS-DOS was heb ik daarna de door @cancom hier geplaatste binary file van versie 5.0 van JWS Dos onder handen genomen en ook daarvan een volledig gedocumenteerde disassembly gemaakt. Ik ben beide files nu aan het doorlopen op de laatste (spel)foutjes en wil ze deze week hier delen en ook toevoegen aan de P2000 Github. De disassemblies staan op GitHub Let op: jwsdos1.0.asm assembleert NIET met z80asm. De syntax van het origineel komt niet overeen met die van z80asm. Die disassembly is dan ook meer als conservering bedoeld! Ik had ook geen binary om mee te vergelijken. jwsdos5.0.asm assembleert, met z80asm, tot een binary die identiek is aan de ook in de repo opgenomen (originele) JWS.bin. versie 5.0 bevat inderdaad heel veel meer functionaliteit zoals laden en saven van (string) arrays, integratie met BASIC en ram-disk support. Quote Link naar bericht Delen op andere sites
blanka 22 augustus 2023 gepost Share 22 augustus 2023 gepost Is er hier iemand bekend met de P2000 emulator in Mame? Wie heeft die geschreven? Is dat andere code dan M2000? Quote Link naar bericht Delen op andere sites
Bertus 22 augustus 2023 gepost Share 22 augustus 2023 gepost (aangepast) De commit historie van MAME suggereert dat de P2000T emulator geport is vanuit MESS (ergens in 2012): https://github.com/mamedev/mame/blob/7285b359d259b2ae0fdf85096571c386ec8c991a/src/mess/drivers/p2000t.c Verder doorgraven in de MESS-svn laat zien dat de eerste commit van de P2000T broncode door de maintainer van MESS is geplaatst (ergens in 2007): https://github.com/mamedev/mess-svn/blob/50516e2f0095095fc28f569c0db3176012579447/src/mess/drivers/p2000t.c Deze forumpost doet suggereren dat de user met de nickname "The Wiz" de auteur van die code is: https://forums.bannister.org/ubbthreads.php?ubb=showflat&Number=33117 Ik kom met die nickname echter niet verder. Dit document suggereert dat "Paul Daniels" de auteur is, maar het zou ook een maintainer of een contributor kunnen zijn: https://github.com/mamedev/mess-svn/blob/master/docs/messnew.txt#L12208 Als ik de broncode van beide emulatoren vergelijk, specifiek de Z80 emulatie, dan ziet dat er wezenlijk anders uit. Zie bijvoorbeeld: https://github.com/CodeAsm/M2000/blob/main/Z80.c https://github.com/mamedev/mess-svn/blob/d1714d79dcb4e1f671c2ba92c86b544b5d6d8c7f/src/emu/cpu/z80/z80.c 22 augustus 2023 aangepast door Bertus Quote Link naar bericht Delen op andere sites
Bekkie 23 augustus 2023 gepost Share 23 augustus 2023 gepost De mame emulator is erg goed. Ik ben in de corona tijd begonnen functionaliteit toe te voegen. Zoals 80 karakterkaart, floppy controller en Hireskaart alsmede een aantal insteek modules. Ik loop aan tegen het (terecht) strenge review process van het mame-dev team en nog geen tijd gehad alle commentaar te verwerken. Staat nog op de planning. Hier een demo van de mame in actie met mijn uitbereidingen: (Voor wie wil kan ik de executables delen via een DM) Quote Link naar bericht Delen op andere sites
blanka 23 augustus 2023 gepost Share 23 augustus 2023 gepost Dat de Z80 code niet gelijk is verbaast me niet, dat is natuurlijk brede aandacht voor, en met de ZX Spectrums, Tandy's, en rekenmachines is er vast een fanatiekere groep bezig met Z80 emulatie dan een handvol P2000 fans. Je zou eerder de code eromheen die machinespecifiek is moeten vergelijken. Quote Link naar bericht Delen op andere sites
Bertus 23 augustus 2023 gepost Share 23 augustus 2023 gepost 5 hours ago, Bekkie said: Ik ben in de corona tijd begonnen functionaliteit toe te voegen Ik zag je commits en de pull request inderdaad al tegenkomen. Knap gedaan allemaal. Men is inderdaad heel strict qua integratie bij mame-dev. Quote Link naar bericht Delen op andere sites
cancom 23 augustus 2023 gepost Share 23 augustus 2023 gepost Op 22-8-2023 om 17:01, HAL9000 zei: De disassemblies staan op GitHub Let op: jwsdos1.0.asm assembleert NIET met z80asm. De syntax van het origineel komt niet overeen met die van z80asm. Die disassembly is dan ook meer als conservering bedoeld! Ik had ook geen binary om mee te vergelijken. jwsdos5.0.asm assembleert, met z80asm, tot een binary die identiek is aan de ook in de repo opgenomen (originele) JWS.bin. versie 5.0 bevat inderdaad heel veel meer functionaliteit zoals laden en saven van (string) arrays, integratie met BASIC en ram-disk support. Betreft JWSDOS5.0.asm: line 228: jr nz,le002h ; TODO: function of this? wijzig in: db 32,0 ;JWS ID line 252-254: ret db 0b1h,04fh ; Dead code/data? wijzig in: ret ;if desired, change to JP to enable the display of time and date dw 04fb1h ;address of routine initializing RTC-update-interrupt ;the 2nd adaptation of BasicNL1.1 must be present ; and of course a RTC... (MiniWare M2200-board) Op 20-8-2023 om 23:41, HAL9000 zei: Hi! Ik heb de afgelopen periode wat uurtjes gestoken in het OCR-en, corrigeren en geheel van engelstalig commentaar voorzien van de assembly code van de @JWS - DOS listing uit het MiniWare document. Omdat dit blijkbaar niet de laatste versie van JWS-DOS was heb ik daarna de door @cancom hier geplaatste binary file van versie 5.0 van JWS Dos onder handen genomen en ook daarvan een volledig gedocumenteerde disassembly gemaakt. Ik ben beide files nu aan het doorlopen op de laatste (spel)foutjes en wil ze deze week hier delen en ook toevoegen aan de P2000 Github. Die niet vragen worden overgeslagen... Oftewel: je KAN eens informeren in een post of iemand heel toevallig een brontekst hééft van programma huppelepup. Als je het leuk vindt die zelf uit te vogelen dan by all means, knock yourself out. Bedenk daarbij maar dat de mogelijkheid bestaat dat je -ongeveer dan- hetzelfde zit te doen als ondergetekende zo'n 20-30 jaar geleden. Mocht je deze alsnog willen checken tegenover jouw gewrocht: Miniware 1.0.bin Quote Link naar bericht Delen op andere sites
blanka 27 augustus 2023 gepost Share 27 augustus 2023 gepost Weet iemand hoe je het laatste bestand op een bandje kunt wissen? Kan daar niks over vinden. Is soms nodig om de boel te herschikken. Quote Link naar bericht Delen op andere sites
Aanbevolen berichten
Doe mee aan dit gesprek
Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.