-
Aantal items
108 -
Registratiedatum
-
Laatst bezocht
Inhoudstype
Profielen
Forums
Galerij
Kalender
Berichten die geplaatst zijn door Bertus
-
-
In het HCM staat er eentje, maar dat is een beetje uit de richting vanuit Den Helder. 😅
Nog een update van mijn kant:
Op het internet tref een 8-tal floppy images aan welke ik aan de repository heb toegevoegd: https://github.com/ifilot/p2000c-cpm-transfer/tree/master/diskimages. Ik heb zelf geen Greaseweazle of iets dergelijks om die images meteen naar een floppy te schrijven dus ik heb proberen uit te pluizen hoe ik die images kan uitlezen en bestanden uit die images kan extraheren. Het pakket cpmtools biedt twee nuttige programma's daarvoor: `cpmls` en `cpmcp`, echter de floppy-indeling van de P2000C wordt niet standaard door het programma herkent. Je moet daarom een toevoeging maken aan de `diskdefs` bestand. Ik heb die aanpassing aangeboden als een pull request aan de cpmtools repo, maar volgens mij is deze een beetje "stale". De auteur heeft de laatste jaren geen updates meer gemaakt.
In ieder geval, met die toevoeging aan het definitiebestand kun je de .img bestanden uitlezen en overzetten. Ik ga nu kijken welke programma's op die floppies staan en deze als losse bestanden in mijn repository zetten en kort beschrijven wat ze doen.
Ik ben vrijwel zeker dat er meer beschikbaar is dan die 8 images, dus als er hier nog P2000C gebruikers zijn die e.e.a. kunnen aanreiken voeg ik dat graag toe aan de repo.
-
6 minutes ago, blanka said:
Ik neem aan dat je nu ook gewoon een kopie van die tool op flop kunt draaien? Ik hou me aanbevolen.
Jazeker! Als je me een floppy meegeeft, geef ik je met plezier een kopie van het gecompileerde transfer programma. 😉
9 minutes ago, blanka said:Heb je een 2010, 2011 of 2012?
Ik heb een TYPE 2012 (aldus de sticker aan de binnenzijde van het opbergkastje).
-
Buiten twijfel is dit het forum voor de P2000T 😎, echter in de P2000T thread worden meerdere malen verwezen naar de P2000C. Nu ben ik toch wel benieuwd: wie heeft er allemaal een P2000C? 🙂
Mijn verhaal: Ik heb iets minder dan een jaar geleden een mooie P2000C mogen aanschaffen met een 8086 CoPower Board waarmee ik naast CP/M 2.2 ook MS-DOS 2.11 kan draaien. Er zaten geen floppies bij de P2000C, maar via het HCM heb ik een serie floppies aangeschaft met o.a. een CP/M bootdisk en de CoPower Board bootdisks. Ook was er een floppy met allerlei spelletjes met o.a. een zeer fraaie grafische versie van schaken.
Via Ebay wordt er nog een vijftal floppies aangeboden welke ik had gekocht, echter deze bleken allen om onbekende reden niet te werken op mijn machine. De verkoper was zeer behulpzaam om het probleem op te lossen en had nog een vijftal floppies voor mij gekopieerd, maar deze deden het ook allemaal niet. Floppies die ik op de P2000C in het HCM kopieer werken wel op mijn machine, dus ik heb vooralsnog geen idee wat er mis is gegaan. Uiteindelijk kon ik van de 10 floppies die ik had gekregen er 8 formatteren en daarna goed gebruiken, dus was de aankoop voor mij toch nog ergens geslaagd.
Met de set aan floppies van het HCM die ik had vond ik het software-aanbod een beetje karig en wetende dat er heel veel is geschreven voor CP/M vroeg ik me af of je eenvoudig bestanden kunt kopiëren vanaf een moderne computer naar de Philips P2000C. Geïnspireerd door het tooltje dat @dionoid heeft gemaakt voor de P2000T, heb ik iets vergelijkbaars gemaakt om bestanden over te zetten via de seriële poort voor de P2000C. Je kunt redelijk eenvoudig tekstbestanden (dus simpele tekstbestanden zonder 'speciale tekens') overzetten met het PIP commando, maar voor niet-tekst bestanden zoals machinetaalbestanden werkt dat niet. Ik heb daarom een transfer programma geschreven in 8080 machinetaal welke bestanden kan ontvangen over de seriële poort en dan wegschrijven naar de floppy. Het werkt door eerst de broncode van het transfer programma over te zetten met PIP, vervolgens dat te compileren met ASM en LOAD en dan te draaien. Het transfer programma ontvangt de bestanden per blok van 128 byte en schrijft dat weg, een beetje vergelijkbaar met hoe dat via het XMODEM protocol gaat. Als toets of alles goed werkt heb ik de twee bestanden van het adventure spel ZORK gekopieerd en nu draait ZORK op mijn P2000C (zie screenshot).
Voor de P2000C (of CP/M) afficionados hier: wat zijn de echte must-have spellen of programma's om te hebben? 🙂
PS. Voor diegene die het zich afvragen: waarom heb ik het geschreven in 8080 machinetaal en niet in Z80, de P2000C heeft immers een Zilog Z80 erin zitten. De reden is dat ASM.COM in CPM80 de Zilog mnemonics niet kent; het programma kent alleen de 8080 mnemonics. Nu zijn er wel assemblers voor Z80, zoals M80 van Microsoft, maar die zitten meestal niet gebundeld op de CP/M boot disks.
-
Voor wie het nog niet gezien heeft: RetroGameCouch heeft een video gemaakt over de P2000T, inclusief een review van een aantal goede spelletjes. Veel kijkplezier!
https://www.youtube.com/watch?v=OKvVlIvrEu0
-
22 hours ago, JanA said:
Beetje laat (ben nieuw hier en kersverse en trotse bezitter van een niet werkende P2000T :)) maar aangaande de Conrad schakelaar (PWL-2P1TL-6SASHA PWL-2P1TL-6SASHA) bij deze een adaptertje om de schakelaar op de goede plek te zetten zonder boren e.d. Je hebt wel een 3d-printer nodig dus wellicht is boren niet zo'n gek idee
. Zit ook een beschermkapje bij (niet op foto).
Ik denk dat we hetzelfde idee hebben gehad. Ik heb een adapterplaatje ontwikkeld waarmee ik ze bevestig. Je kunt de STL hier vinden:
https://github.com/ifilot/p2000t-power-button-fix
Er is ook een versie 2 van dat plaatje gebaseerd op feedback van @blanka (iets steviger en voor andere schroefjes)
-
7 hours ago, Driessens_nl said:
ben ik zelf ook nog aan het denken om een soort van drop-in replacement te gaan maken voor de MDCR. Een scherpje met touch die de recorder emuleert (en dus ook op het moederbord wordt aangesloten ipv de MDCR) waar je SD-kaart in stopt ipv Cassette.
Dat klinkt heel interessant. Houdt ons op de hoogte! 🙂
-
Kun je uitleggen hoe dat dan werkt? Als ik iets schrijf in een code editor, dan wordt dat opgeslagen als platte tekst. Basic bestanden zijn echter tokenized, dus ergens moet dat dan omgezet worden. Vervolgens hebben CAS bestanden weer een stukje metadata, dus als het ware nog een extra vertaalslag. Hoe wordt dan het ene in het andere omgezet? Of heeft de emulator een optie om een tekstbestand in te lezen en dat dan verbatim over te nemen alsof het vanaf het toetsenbord ingevoerd is?
-
Je bedoelt dan dat je in de M2000 emulator de BASIC code typt en dan laat wegschrijven als een CAS bestandje?
-
Dat werkt handig! Super & Dank! 🙂
-
Korte vraag voor de community hier: bestaat er een programma / tooltje om een CAS file die een BASIC programma bevat terug om te zetten in de originele listing als een plat tekstbestandje? Ik meen me te herinneren dat dit onderwerp een keer eerder besproken was op dit forum, maar ik kan het niet zo snel vinden.
-
Ik heb weer een update over de SD-card cartridge. Nu ik vakantie heb, heb ik eindelijk de tijd gevonden om me te verdiepen hoe je bestanden weg kunt schrijven naar SD-kaartjes en dit in elkaar gezet zodat de P2000T niet alleen vanaf een SD-kaartje (CAS) bestanden kan inlezen en afdraaien, maar nu dus ook naar het SD-kaartje kan schrijven. Hiermee is het nu mogelijk om cassettebandjes uit te lezen en de CAS bestanden op het SD-kaartje weg te schrijven. Dit proces kon natuurlijk al via de datacartridge die ik had gemaakt, maar dat was minder ideaal en wat bewerkelijker.
Uiteraard kun je niet alles hebben. Vanwege de beperkte programmeerruimte (technisch verhaal, maar deze is slechts 12.5 kb) kon ik niet alles kwijt in de launcher applicatie die gebruikt wordt om CAS bestanden vanaf het SD-kaartje in te lezen en op te starten. Ik heb daarom een kleine aanpassing aan de launcher gemaakt waardoor deze een nieuw soort machinebestand (een PRG bestand) kan inladen in de geheugenruimte tussen 0xA000-0xDCFF. Hoe het dus werkt is dat je de P2000T opstart naar de launcher en vanaf de launcher dit nieuwe programma inlaadt en opstart. Dit programma, Cassette Dump genoemd, kan cassettebandjes uitlezen en schrijft de data weg naar de SD-kaart. Dit kan in manuele modus waarbij je per bestand aan moet geven of je het weg wilt schrijven, maar ook in automatische modus waarbij een hele zijde van een bandje wordt uitgelezen en alle bestanden overgekopieerd worden. Voor dit programma heb je dus wel minimaal een 16KiB geheugenuitbreiding nodig.
Wat ik zelf heel mooi vind is wanneer je de M2000 emulator van @dionoid op je PC hebt geinstalleerd en je het SD-kaartje uit de P2000T haalt en in je computer stopt, je dan meteen de CAS bestanden die je hebt weggeschreven kunt inladen in de emulator door erop te dubbelklikken. Zo weet je meteen of alles goed gelukt is. Je kunt overigens ook het weggeschreven bestandje opstarten vanuit de launcher.
Voor diegene onder jullie die al reeds een SD-kaart cartridge hebben: jullie kunnen het programma downloaden vanaf de Github pagina. Als je daar toch bent raad ik ook meteen aan om de laatste versie van de firmware (launcher) te downloaden en de SD-kaart cartridge te flashen. 😉 Een beknopte handleiding hoe je cassettes uitleest en de inhoud kopieert staat hier.
-
De suggestie van @blanka is een hele goede om mee te beginnen. Mijn ervaring met Call Service is tot op heden altijd een doorgebrande zekering geweest. Je treft ze aan op het voedingsbordje.
Wat betreft je andere vraag: de gedeassembleerde monitor rom code tref je hier aan: https://github.com/p2000t/documentation/tree/main/programming/Monitor Documented Disassembly.
-
Excuus voor het necroposting, maar ik heb - aan jullie om te oordelen- een mooie aanvulling hier.
De standaard en aanvullende icoonset voor Quick Menu icoonset bieden redelijk wat keus, maar ik had de behoefte om deze verder aan te vullen. Je kunt in Quick Menu je eigen icoontjes maken met de editor, maar dat blijft noest handwerk. Ik wilde iets meer flexibiliteit. Vaak kun je een screenshot van een DOS programma nemen (CTRL+F5 in DosBox) en met Photoshop (of ander programma) hier een icoon uit smeden. Photoshop heeft echter geen ondersteuning voor het ICC icoonformaat dat Quick Menu gebruikt en daarom heb ik een Python script geschreven dat een 32x32 PNG bestand omzet in een ICC bestand welke je kunt importeren in Quick Menu. Het Python programma probeert hierin een goede downconversie van 24 bits-per-pixel naar 4 bits-per-pixel (EGA kleurenschema) te bewerkstelligen. Die downconversie is niet perfect (vanwege de beperkte kleurenruimte in het EGA kleurenpalet is er vaak een voorkeur voor grijs), maar het biedt een goede start om in de Quick Menu editor het ontwerp verder te verfijnen.
Bronbestanden en documentatie zijn te vinden in deze Github repository: https://github.com/ifilot/quickmenu-icon-creator
-
1 hour ago, cancom said:
Laat ik nou eens de pietlut uithangen over enkele onjuistheden (desinformatie...)
Er is al genoeg desinformatie in de wereld, dus dank (wederom) voor je kritische blik. Ik heb e.e.a. aangepast op mijn pagina's.
2 hours ago, cancom said:er is een niet-aangesloten pennummer bij en dat is niet zomaar, evenmin als de volgorde
Je weet er duidelijk meer van: Wat zijn de redenen daarvoor?
2 hours ago, cancom said:- #60-#6F: je SD-interface krijgt slaande ruzie met 't HiRes-board (en een paar programma's); #40-#4F is volledig beschikbaar voor slot 2, geen enkel uitbreidingsboard gebruikt ook maar 1 van die poortadressen
- i.v.m. voorgaand punt: hou rekening met andere configuraties dan uitsluitend de "standaard" P2000 en vermeld het als e.e.a. niet werkt in combinatie met b.v. een floppyboardHeel fijn om dit te weten. Voor de huidige revisie van de SD-interface komt deze informatie helaas wat te laat, maar voor een volgende versie zal ik alles migreren naar I/O poort $40-$4F om de mutuele incompatibiliteit te vermijden. Voor nu voorzie ik alles van een 'waarschuwingssticker'.
-
6 hours ago, blanka said:
Goed bezig, maar ik zou wel van de DOS bestandsnamen afstappen en minimaal 16 karakters met alle overlap P2000 en UTF tekenset toestaan incl upper/lower case.
Ik snap die suggestie, alleen die informatie staat niet in de directory entries maar in de .CAS bestanden zelf. Dus dan moet je voor elk bestand dat je aantreft in de directory het bestand gaan openen en de cassette header gaan uitlezen. Dat zal het uitlezen van een directory gaan vertragen, maar wellicht dat dat geen probleem is. Ik ga kijken wat er te winnen valt hier. 👍
-
Ik heb nog een klein nieuwtje: het is me gelukt om een cartridge in elkaar te zetten waarmee je een SD-kaartje kunt uitlezen om zo .CAS bestanden vanuit de SD-kaart op te starten. Voor een beetje snelle data-overdracht heb ik een parallel <-> serieel circuitje gebouwd dat draait met een 16 MHz klokje zodat je tijdens elke instructie van de Z80 een byte kunt uitlezen vanaf de SD-kaart. Het alternatief was om het SPI signaal te bit-bangen, maar dat zou dan 8x langzamer zijn.
Niet alle SD-kaartjes werken, alleen SD-kaartjes van het type SDHC en geformatteerd met een FAT32 bestandsssysteem. Ik heb tot nu toe 4Gb, 8Gb en 16Gb kaartjes geprobeerd en deze deden het allemaal. Nu is overigens 1Gb al meer dan genoeg om het hele archief aan CAS bestanden op te slaan.
Op de cartridge zit een 128kb ROM en 128kb RAM chip. Op de ROM chip staat een launcher applicatie welke vanuit een aangepaste BASICNL cartridge opgestart wordt. Met deze launcher kun je navigeren op de SD-kaart en .CAS bestanden opstarten. De RAM chip wordt gebruikt om tijdelijk de .CAS bestanden op te slaan alvorens deze op de juiste positie in het RAM geheugen van de P2000T gezet worden.
Het complete schema staat hier: port2-sdcard-interface.pdf
Door het aantal chips ben ik overgestapt van DIP (THT) naar SMD zodat alles past. Ook had ik een 4-laags PCB nodig om alles te kunnen routen. Hieronder een plaatje van de (achterzijde) van de PCB met alle componenten erop. De SD-kaart lezer is een bekend prototype bordje wat een fijn 'bruggetje' vormt tussen het 5V domein van de P2000T en het 3.3V domein van de SD-kaart.
Voor een indruk hoe de SD-kaart cartridge werkt heb ik hieronder nog een kleine demo (screen capture). De launcher werkt met 3 simpele commando's: cd, ls en run. Met ls ls lees je een folder uit om zo alle bestanden te laten zien. Met cd verander je van folder en met run kun je een .CAS bestand opstarten.
Voor de bronbestanden zie deze Github pagina en voor de documentatie deze website.
-
20 hours ago, HAL9000 said:
Totaal iets van 300 MB aan pdfs
Zal ik ze aan het archief aanbieden?
Ik ben niet de beheerder van het archief, maar ik zie ze graag in het archief verschijnen! Dank voor het noeste scanwerk! 🙂
-
1 hour ago, blanka said:
Ik heb juist op drie machines, eentje van rond serienummer 2000, een rond 14000 en een rond 26000 allemaal dezelfde ROM, maar die is anders dan die van MdK. Ik heb er daarnaast 2 met een andere versie, beide uniek. En niet een die hetzelfde is als bij de emulator.
Kan er iets van een overzichtje gemaakt worden. Ik ben ook wel nieuwsgierig. Is het een idee dat we een tabelletje bouwen met daarin chassisnummer en bijvoorbeeld een MD5 of CRC16 checksum van de ROMs?
-
13 minutes ago, dionoid said:
Het adres van de gevraagde I/O poort staat dan op de adres-bus en eventuele data (in of uit) gaat via de data-bus. Klopt dit?
Ja, klopt helemaal, maar dan met de kanttekening dat alleen de laagste byte van de adresbus gebruikt wordt. Je bestuurt dit met de IN en OUT instructies. Op blz 10 van deze Z80 datasheet tref je het tijdschema aan. Je kunt dan met een combinatie van de adresbus en de ~RD en ~WR signalen e.e.a. aansturen. Op deze manier wordt bijvoorbeeld een register aangestuurd voor de bank switching, maar ook de floppydrives werken met die I/O poort. Ik gebruik zelf bijvoorbeeld de I/O poort voor het uitlezen van een SD kaartje.
-
5 hours ago, cancom said:
Enne... voor dat audio zie "P2000 System T & M Reference Manual" (pdf, ook op PPP), pagina 55 (geen frequentiemodulatie of fsk, dus).
Dank! Phase-encoding dus. Dat is ergens goed nieuws want dat valt makkelijker in software te converteren naar binair.
5 hours ago, cancom said:deze puzzel wordt U aangeboden door hardwarefabrikanten onder 't motto "waarom makkelijk als 't ook moeilijk kan"
Herkenbaar. 😅😂 En waarschijnlijk maak ik me er zelf onbewust ook soms schuldig aan.
Dank voor je wijsheden wederom @cancom!
-
On 2/22/2024 at 4:34 PM, blanka said:
Dit ziet eruit als frequentieverschuivingsmodulatie wat veel gebruikt werd voor het opslaan van data op tapes. Je kunt dit inderdaad in software demoduleren, maar ik ben niet bekend met makkelijke "drop-and-click" programma's hiervoor.
Je zou eens een kijkje kunnen nemen in deze tutorial die het demodulatieproces in stapjes beschrijft:
https://mightydevices.com/index.php/2019/08/decoding-fsk-transmission-recorded-by-rtl-sdr-dongle/
De auteur heeft de Python code op Github staan:
-
Mijn kennis is extreem beperkt hier en dateert vanuit het MS-DOS tijdperk waarin e.e.a. al gestandardiseerd was. Deze kennis is ook erg roestig geworden...
5 hours ago, blanka said:Superfijn dat de kabel omgekeerd ook past, maar kan ik uit de Maintanance wel concluderen dat ie goed is aangesloten?
Als de floppydrive de Shugart-implementatie volgt - en ik weet niet of die al populair/breed geadopteerd was ten tijde van P2000 - dan zouden de oneven pinnen allemaal GND moeten zijn. Dit zowel op de controller als op de drive. Alle GND pinnen zijn met elkaar en met de GND op de voeding verbonden. Hiermee kun je de aansluiting van de kabel bepalen met minder pogingen dan het maximaal aantal permutaties tussen controller en drive. Dat de drive gaat draaien is een goed teken; kijk eens of PIN16 dan laag gaat wanneer die draait. Op PIN8 (index) hoor je een 50 Hz signaal te krijgen, corresponderend met een toerental van 300 RPM. Het zijn relatief korte negatieve pulsjes.
5 hours ago, blanka said:Wat betekent het getik
Ik vermoed dat het getik het gevolg is van de stepper motor die tegen het begin/einde aanzit. De stepper motor zoekt track 0 en wanneer deze gevonden wordt dan wordt PIN26 laag (active low). Als de sensor niet goed werkt of het signaal niet goed overgebracht wordt, dan blijft de stepper motor gewoon doorstappen. Soms is die sensor vuil. Je kunt de sensor schoonmaken, maar wees dan voorzichtig dat de sensor niet van locatie veranderd.
5 hours ago, blanka said:en wat kan ik nu nalopen om tot een goede werking te komen?
Ik denk dat je deze twee zaken apart van elkaar moet debuggen. Je weet vooralsnog niet of de drive of de controller goed werken (of beiden niet). Je zou de signalen op de pinnen kunnen uitlezen (met een osscilloscoop) of zelf signalen (met een Arduino bijvoorbeeld) op de pinnen kunnen zetten en kijken of je goede respons krijgt. De suggestie van @cancom is ook relevant hier. Elke drive heeft een drive nummer toegedeeld gekregen (1-4) welke via jumpers op de drive zelf ingesteld moeten worden. In het MS-DOS tijdperk ging dat overigens door de drive na of voor een cable-twist (A/B twist) en zonder jumpers...
-
51 minutes ago, blanka said:
Valt ook niet mee, Bertus moet op zijn werk alles in het Engels doen, en dat slaat over naar de hobby.
Eigenlijk wil ik vooral inclusief zijn naar de P2000T gebruikers die geen Nederlands spreken. 😉
Overigens is dat nog best een grote groep ben ik achter gekomen.
-
13 hours ago, dionoid said:
Leuk weetje: Ik heb ook een "proof of concept" versie van Cassette Dumper die bytes met een baud rate van 38400 over de seriële poort van de P2000T verstuurt. Dat is dus 32 keer sneller dan de standaard ingestelde 1200 baud "seinsnelheid" van de P2000T
Ik ben nu nieuwsgierig geworden. 🙂 Waarom heb je in eerste instantie voor 1200 baud gekozen en wat bepaalt nu eigenlijk of hogere snelheden haalbaar en ook stabiel zijn? Zit die complexiteit bij het uitlijnen van de assembly instructies en het 'bit banging' van de seriële poort?
Philips P2000T
in Games & Consoles
gepost · aangepast door Bertus
Het is bekend: "2 weten er meer dan 1". @dionoid laat zien dat "2 ook meer kunnen dan 1". 😊
Zoals bekend had ik een start gemaakt met de launcher, maar besmet door mijn werkveld was deze launcher relatief technisch. Ik had me vooral laten inspireren door Linux-based operating systems. Ik vind het prachtig om te zien hoe @dionoid dit heeft om weten te toveren in een zeer gebruiksvriendelijke GUI waarbij de gebruiker de mogelijkheid blijft houden om te kiezen welke interface hij wilt gebruiken. Ik gebruik de Easy Launcher nu zelf ook liever dan mijn eigen Launcher. 😅
Ook een groot compliment voor het retro-actief (pun-intended) uitbreiden van de functionaliteit! De Launcher had bijvoorbeeld geen support voor lange bestandsnamen, je kon niet direct flashen en je kon ook niet terugkeren naar BASIC na het inladen van het programma. Dit heeft @dionoid niet alleen getackled in zijn Easy Launcher, maar ook in mijn Launcher.
Als je de commit-historie bekijkt zie je hoeveel werk erin is gegaan. Enorm geapprecieerd! Ik maak een digitale diepe buiging.