Ga naar inhoud

Aanbevolen berichten

21 uur geleden, blanka zei:

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.

 

Je hebt meen ik eens in een post gezet dat je "het zwarte boekje" erbij hebt. Desondanks loont 't de moeite de PDF te downloaden en door te bladeren (te vinden op github.com/p2000t en download.homecomputer.museum).

 

In de andere PDF's kom je ook nogal wat wetenswaardigheden tegen...

 

Link naar bericht
Delen op andere sites
  • Reacties 1,3k
  • Created
  • Laatste reactie

Top Posters In This Topic

Top Posters In This Topic

Posted Images

In dat zwarte boekje staat er niks over. Wel lees ik in de nieuwsbrieven dat de monitorroutines er handelingen voor bevatten, maar dan heb ik een rijtje pokes nodig. Bijvoorbeeld 20 blokken voorruit spoelen en dan een einde markering op de band plaatsen.

Link naar bericht
Delen op andere sites

Volgens mij refereert @cancom naar een handgeschreven opmerking op pagina 34: van https://download.homecomputer.museum/Files/Philips/P2000T/Documentation/P2000T.pdf. (zie afbeelding)

 

De monitorroutines werken natuurlijk ook. Als je het vervelend vindt om een serie 'pokes' in BASIC uit te voeren kun je ook de instructies via Zemon inkloppen en eventueel de machinetaalinstructies op een (ander) bandje opslaan.

 

Tenslotte heb je ook nog een "cassettehulp" programma met wat handige utilities. Ik kan me niet herinneren of die je toetstaat om specifiek het laatste bestand te wissen, maar wellicht de moeite waard om daar eens naar te kijken: https://github.com/p2000t/software/blob/master/tapes/utilities/Cassettehulp%2B.cas

 

screenshot_p2000t_zwarte_boekje.jpg

Link naar bericht
Delen op andere sites

Klopt, maar er zou ook een EOT geschreven moeten worden op de cassette. Heb je het stopje erin zitten?

 

Uitleg:

Op adres 0x0018 begint de machinecode voor de cassette. Via DEF USR=&H18 wordt een pointer gezet naar dat adres. Wanneer je ?USR(1.1) aanroept dan wordt 1.1 als een single precision float weggeschreven naar adres 0x650D en bevat HL een referentie naar dat adres. We gebruiken dit getal overigens verder niet (HL wordt overschreven met de waarde van het transfer adres). De waarde in de accumulator wordt echter wel bepaald door het type argument en voor een single precision float is dat een 4. Wanneer 0x0018 aangeroepen wordt met 4 in register A, dan wordt het vijfde adres (tellen vanaf 0) van de cassette jump table aangeroepen die wijst naar de EOT-schrijf functie die je nodig hebt.

 

Zie ook de volgende regels in de monitor code:

* Effect van waarde in a: https://github.com/p2000t/documentation/blob/master/programming/Monitor Documented Disassembly/Symbols.asm#L212

* Effect van waarde in register A op de jump table: https://github.com/p2000t/documentation/blob/master/programming/Monitor Documented Disassembly/Cassette.asm#L28
* Start van de EOT schrijf functie: https://github.com/p2000t/documentation/blob/master/programming/Monitor Documented Disassembly/Cassette.asm#L1707

Link naar bericht
Delen op andere sites
Op 23-8-2023 om 14:18, Bekkie zei:

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)

   

Ik kan je helaas geen DM sturen. Zou je me uit kunnen leggen hoe ik deze mame-emulator draaiende kan krijgen?

Link naar bericht
Delen op andere sites
On 8/23/2023 at 2:18 PM, Bekkie said:

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.

 

Ik zou dit graag eens testen op mijn Raspberry Pi 4.

Heb je toevallig de source code op je github staan ?

Link naar bericht
Delen op andere sites
On 8/30/2023 at 10:53 AM, Hawker17 said:

Ik kan je helaas geen DM sturen. Zou je me uit kunnen leggen hoe ik deze mame-emulator draaiende kan krijgen?

Hier staan de Windows executables met meerdere start batch files. (geeft verschillende P2000T configuraties)

https://files.eversdijk.com/P2000T-mame.zip

aangepast door Bekkie
Link naar bericht
Delen op andere sites
11 hours ago, blanka said:

Ik snap nog niet hoe ik een gewone T met een .CAS start. Daar zit geen bat file voor bijgevoegd.


Ik heb de toegevoegde .bat files gelezen en er is inderdaad niet 1 voor cas bestanden.

Maar die kan je heel gemakkelijk zelf maken.

 

Dit is een handige pagina om eerst door te lezen als je begint met mame :

https://docs.mamedev.org/commandline/commandline-all.html

 

Met dit commando kan je je media opties listen :

mame -listmedia p2000t

 

Voor de Bekkie versie krijg je dan, zeer waarschijnlijk, de opties cass en flop te zien.

Die moet je toevoegen in je commando.

Als je wilt dan kan je er een .bat file van maken.

Dit is een voorbeeld :

mame p2000t -cass gosthunter.cas

 

Een andere manier is om alleen de p2000t driver te laden :

mame p2000t

Doormiddel van het drukken op <tab> kom je in het menu ( UI )  van mame.

Hier kan je ook handmatig cas bestanden inladen.

 

Laat je me even weten of het is gelukt met deze info ?

Succes.

 

( Developer of https://retropie.org.uk/forum/topic/29682/development-of-module-script-generator-for-lr-mess-lr-mame-and-mame-standalone )

 

 

 

aangepast door folly
Link naar bericht
Delen op andere sites
44 minutes ago, folly said:


Ik heb de toegevoegde .bat files gelezen en er is inderdaad niet 1 voor cas bestanden.

Maar die kan je heel gemakkelijk zelf maken.

 

Dit is een handige pagina om eerst door te lezen als je begint met mame :

https://docs.mamedev.org/commandline/commandline-all.html

 

Met dit commando kan je je media opties listen :

mame -listmedia p2000t

 

Voor de Bekkie versie krijg je dan, zeer waarschijnlijk, de opties cass en flop te zien.

Die moet je toevoegen in je commando.

Als je wilt dan kan je er een .bat file van maken.

Dit is een voorbeeld :

mame p2000t -cass gosthunter.cas

 

Een andere manier is om alleen de p2000t driver te laden :

mame p2000t

Doormiddel van het drukken op <tab> kom je in het menu ( UI )  van mame.

Hier kan je ook handmatig cas bestanden inladen.

 

Laat je me even weten of het is gelukt met deze info ?

Succes.

 

( Developer of https://retropie.org.uk/forum/topic/29682/development-of-module-script-generator-for-lr-mess-lr-mame-and-mame-standalone )

 

 

 

 

Omdat in mijn versie de ROM module ook te selecteren is, zul je die ook op moeten geven:

      mame p2000t basic -cass gosthunter.cas

 

Als je floppies wil gebruiken heb je jwsbasic nodig en een extention board met extra RAM bv de M2200 voor de MIniware of FDC voor M-versie:

  

  mame P2000T -ram 80k -ext1 m2200 jwsbasic -flop1 "roms\p2000t\disks\Spel1.dsk" 

 

Voor meer uitbereidingen zie:

     mame.exe  p2000t -listslots

    

    
   

Link naar bericht
Delen op andere sites

Goed werk! Het lukt nu. Ik zie dat de bugs uit teletekst die nog in M2000 zaten weg zijn.

Enige gekke is dat als ik een cassette laad, deze meteen start. Ik dacht eerst dat toetsenbord niet werkte, maar hij begon met inladen machinecode, en dat blokkeerde invoer.

Ook zie je in het begin een overlay linksboven met een teller die van 00.11 terugloopt naar 00:00 voordat de boel begint.

Kun je de kleuren nog tweaken? ZIjn nu een beetje Philips-fosfors, maar ik ben Trinitron gewend.

aangepast door blanka
Link naar bericht
Delen op andere sites

Ah, ik ben erachter. Puristisch trekje van Mame: tape laden duurt zelfde als in het echt. Kan dat uit? Instant cload zeg maar?

Wel gek dat je standaard cassettefout E krijgt na opstarten.

Link naar bericht
Delen op andere sites
14 hours ago, blanka said:

Ah, ik ben erachter. Puristisch trekje van Mame: tape laden duurt zelfde als in het echt. Kan dat uit? Instant cload zeg maar?

Wel gek dat je standaard cassettefout E krijgt na opstarten.

Dit is geen puristisch trekje, maar juist de filosofie achter Mame. Waar de meest emulators de software laag emuleren, emuleert Mame juist de hardware (chips) en laat de SW ongemoeid. In mijn voorbeeld filmpje draait exact dezelfde code (byte compatible) als op een echte P2000T. Voor de uitbereidingen die ik toegevoegd heb, had ik genoeg aan de schema's, Miniware was zo aardig om die destijds mee te leveren met de M2200.  Voor de andere modules (M-FDC, Hireskaart, muis module etc) kon in de schemas terugvinden in de adere documentatie die ik heb liggen.

Als je wil versnellen, doe dan hetzelfde als wat veel van ons in de jaren 80/90 ook deden. "Bouw een floppy controller in".

Gebruik daarvoor bv de volgende command line opties:

 

"mame P2000T -ram 80k -ext1 m2200 jwsbasic -flop1 "roms\p2000t\disks\Spel1.dsk"  -cass gosthunter.cas"

 

Je kan dan Gosthunt inladen en wegschijven op disk. De volgende keer laad je veel sneller (van disk)

Link naar bericht
Delen op andere sites
14 hours ago, blanka said:

Er zit ook nog een fout in. Doe maar eens shift-numpad-1. Dan krijg je de tape inhoud. Die klopt niet.

Die tape emulator is inderdaad wat buggy, maar doet het meestal wel. De cassette fouten gewoon negeren. (Doe ik bij mijn echte P2000T ook).

Wellicht even contact opnemen met de ontwikkelaar van die tape-emulator. Die kun je terug vinden in de source code van dat stuk.

Link naar bericht
Delen op andere sites
1 minute ago, Bekkie said:

Dit is geen puristisch trekje, maar juist de filosofie achter Mame. Waar de meest emulators de software laag emuleren, emuleert Mame juist de hardware (chips) en laat de SW ongemoeid.

Zou je dan geen .WAV moeten lezen en schrijven, en de tape-hardware mee emuleren? Ik snap het idee, maar je moet toch op een gegeven moment over naar de nieuwe techniek waarbinnen mame draait. Als een floppy ook op 80's snelheid draait is dat ook niet heel veel beter. Of mag die wel virtueel?

Link naar bericht
Delen op andere sites
2 minutes ago, blanka said:

Zou je dan geen .WAV moeten lezen en schrijven, en de tape-hardware mee emuleren? Ik snap het idee, maar je moet toch op een gegeven moment over naar de nieuwe techniek waarbinnen mame draait. Als een floppy ook op 80's snelheid draait is dat ook niet heel veel beter. Of mag die wel virtueel?

Nee hoor die floppies waren in de jaren 80 al razend snel op een P2000T, vooral omdat de programma's in bytes erg klein zijn voor een P2K. Kijk maar in de Youtube film, dat is allemaal op werkelijke snelheid.

Link naar bericht
Delen op andere sites
3 minutes ago, Bekkie said:

Kijk maar in de Youtube film, dat is allemaal op werkelijke snelheid.

Ik zie geen YT video op deze en de vorige pagina... Heb je een link?

Link naar bericht
Delen op andere sites

  

43 minutes ago, blanka said:

Even wat zitten pennen:

https://www.retrospace.nl/Philips_P2000T_homecomputer.html

Als je iets ziet dat niet klopt, laat het even in een PB weten.

Wat een leuk stuk!

Ik vond de link met Edukaboek leuk; ik heb destijds allerlei software voor ze geschreven met de Zemon assembler die Loek en ik hadden geschreven. Ik herinner me in ieder geval een Basic achtige programmeertaal met de naam "Taal", en een zestal voorbeelden voor standaard software zoals tekstverwerkers, ieder met z'n eigen manier om dingen te doen. Die software hoorde bij leerboeken die door Edukaboek werden uitgegeven.

 

Een van de leukste projecten die ik heb gedaan was het maken van de P2000 software voor Lego Lines, een nu compleet onvindbare set aan LEGO dingen waarmee je dingen kon bouwen in LEGO en ze kon besturen met de P2000 via de software:

image.png.de51e1780cdc41bc9e0b31d0ed7a57b2.png

Ik kon nog maar een link vinden waar het beschreven is: http://www.miniland.nl/Dacta/robotica.htm

Ik ben heel lang op zoek geweest naar de Edukaboek boeken maar heb ze nooit meer kunnen vinden... Het helpt niet dat ik me ook geen enkele naam van een boek meer herinner ;)

 

Link naar bericht
Delen op andere sites

Ik heb

- Basic Probeerboek van C. de Boer (Educaboek)

- Basic Notities voor de P2000T van Dr. D.J.Kroon (Educaboek)

- Hèt Computer-spelen boek van Ralph Hofman (Adison Wesley)

- Philips P2000 van Albert Sickler (Kluwer)

- INPUT blauw van C. de Boer

- INPUT rood, Nederlandse versie van Usborne guide to the Micro Computer bewerkt door C. Titulaer en J. Terlouw

- Handleiding P2000, Familiegeheugen en Tekstverwerker (die zwart met oranje boeken).

- De Eeuw van de Computer, Geschiedenis van de Informatietechnologie in Nederland

- Besturen van Robotmodellen met de Microcomputer van W. Clark. Hierin lijken van die modellen in te staan die ook op Miniland Dacta stonden. Er wordt verwezen naar Uniface voor de P2000 van the PTC.

- Z80 zakboekje van J.B.Vonk (Kluwer)

- Machinetaal voor de ZX Spectrum van W. Tang (Kluwer) ook nuttig voor P2000.

aangepast door blanka
Link naar bericht
Delen op andere sites
Op 7-9-2023 om 10:35, blanka zei:

Even wat zitten pennen:

https://www.retrospace.nl/Philips_P2000T_homecomputer.html

Als je iets ziet dat niet klopt, laat het even in een PB weten.

 

Frappant dat ene M. de K. het voor elkaar krijgt om zoveel jaar na dato nog steeds mensen voor de gek te houden en op te zadelen met een belachelijke/willekeurige methode met als -gelukkig niet wereldschokkend- gevolg dat er alweer sprake is van een heden ten dage vaker optredend probleem: desinformatie.

 

serial.bas:
83 POKE &H9000,&H00:POKE &H9001,&H60
84 POKE &H9002,0:POKE &H9003,1

 

De toetsbuffer godbetert...

 

Link naar bericht
Delen op andere sites
21 minutes ago, cancom said:

 

Frappant dat ene M. de K. het voor elkaar krijgt om zoveel jaar na dato nog steeds mensen voor de gek te houden en op te zadelen met een belachelijke/willekeurige methode met als -gelukkig niet wereldschokkend- gevolg dat er alweer sprake is van een heden ten dage vaker optredend probleem: desinformatie.

 

serial.bas:
83 POKE &H9000,&H00:POKE &H9001,&H60
84 POKE &H9002,0:POKE &H9003,1

 

De toetsbuffer godbetert...

 

Geen idee waar je het over hebt. Leg uit....

Serial.bas doet wat het moet doen, kan zijn dat het strakker kan, dan post ik graag een verbeterde versie.

aangepast door blanka
Link naar bericht
Delen op andere sites

Ok:


1 block op tape bestaat uit 1064 bytes plus een paar gaps; zie desgewenst "P2000 System T & M Reference Manual.pdf", paginas 57-59.

 

Dus: je hebt je laten misleiden door die nepkogel (met zijn methode ernaast schietend) waardoor je berekening van de bits/sec uitgaat van 1280 bytes/block.

 

Stelling:
".cas" = (programma-) vervuiling-avant-la-lettre

 

Ook MESS/MAME moet telkens 256 bytes overslaan om het volgende uit te voeren programmabyte te vinden en interpreteren. Awkward, die gaten; of je een virus moet zien te ontwijken.

 

Zinniger zou zijn geweest:
83 POKE &H9000,&H30:POKE &H9001,&H60
84 POKE &H9002,32:POKE &H9003,0

 

waarbij 't volstaat dit 1 maal uit te voeren, bij voorkeur voorafgaand aan het betreffende bestand.

 

Dat in het vervolg alsnog gaan doen schiet eigenlijk ook niet (meer) op.

 

aangepast door cancom
Link naar bericht
Delen op andere sites

Oh die berekening is natte vingerwerk, in de berichten van Philips spraken ze over 6000baud, dus vertel hoe ze daar op uit komen.

Maar eigenlijk zeg je dus dat het .cas bestandstype nergens op slaat.

Gekke is, dat er eigenlijk maar 32 bytes nodig zijn voor de structuur: in Marcels structuur byte 48-79. Als je de andere 224bytes op 00 zet, verandert er niks aan de werking. Maar gek genoeg staat er wel wat in. Komt dat uit de hoge hoed?

Het wordt tijd om eens met een memorecorder naar de werkelijke "geluiden" op de tape te kijken.

 

Maar doe eens gek, en herschrijf serial.bas zodat we een goed formaat uploaden naar de computer, en maak meteen de omgekeerde, zodat we een hele tape kunnen maken van een RS232 stroom, i.p.v. nu één bas file per keer die je dan netjes achter elkaar moet csaven om ongeveer de tape te kunnen klonen. We zijn u eeuwig dankbaar! Mijn Z80 kaas is nog niet te eten.

aangepast door blanka
Link naar bericht
Delen op andere sites
23 uur geleden, Hawker17 zei:

Hartelijk dank! Ik krijg alleen een foutmelding: Versie bestand niet compatibel met Windows-versie. Werkt dit alleen op 64-bit systemen?

Ja, het is een 64 bits executable.

Link naar bericht
Delen op andere sites
Op 7-9-2023 om 11:27, fjalvingh zei:

  

Wat een leuk stuk!

Ik vond de link met Edukaboek leuk; ik heb destijds allerlei software voor ze geschreven met de Zemon assembler die Loek en ik hadden geschreven. Ik herinner me in ieder geval een Basic achtige programmeertaal met de naam "Taal", en een zestal voorbeelden voor standaard software zoals tekstverwerkers, ieder met z'n eigen manier om dingen te doen. Die software hoorde bij leerboeken die door Edukaboek werden uitgegeven.

 

Een van de leukste projecten die ik heb gedaan was het maken van de P2000 software voor Lego Lines, een nu compleet onvindbare set aan LEGO dingen waarmee je dingen kon bouwen in LEGO en ze kon besturen met de P2000 via de software:

image.png.de51e1780cdc41bc9e0b31d0ed7a57b2.png

Ik kon nog maar een link vinden waar het beschreven is: http://www.miniland.nl/Dacta/robotica.htm

Ik ben heel lang op zoek geweest naar de Edukaboek boeken maar heb ze nooit meer kunnen vinden... Het helpt niet dat ik me ook geen enkele naam van een boek meer herinner ;)

 

Philips had zelfs een spraakmodule voor de P2000. Mijn vader werkte vroeger bij Philips en wij zaten altijd dicht bij het vuur. Helaas veel in een opruimwoede verkocht voor een veel te lage prijs.

aangepast door Hawker17
Link naar bericht
Delen op andere sites
  • 2 weeks later...
On 8/21/2023 at 9:29 PM, w2510a said:

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?

 

@w2510a had nog een aantal cartridges die nog niet in het P2000 Preservation Project stonden. Hij was zo vriendelijk om een dumpje van de ontbrekende cartridges te maken welke ik nu via een pull-request heb aangeboden voor het project. Zodra @dionoid de pull request (PR) accepteert (indien naar tevredenheid natuurlijk), dan zijn op de PPP de volgende extra cartridges te vinden:

  • BASIC 1.0 in het Engels
  • Bildschirmtext
  • Text 1 in het Duits
  • Text 2 in het Duits
  • Maintenance (deze maintenance wijkt met een paar bytes af van "Maintenance 1", dus ik heb hem maar voor de volledigheid toegevoegd)

In de tussentijd kunnen de nieuwe cartridges in mijn fork gevonden worden (na acceptatie van de PR verwijder ik deze tekst)

https://github.com/ifilot/p2000t-software/tree/additional-cartriges/cartridges

Link naar bericht
Delen op andere sites
  • 2 weeks later...
Op 15-8-2023 om 11:37, blanka zei:

Ik heb een vertikaal bordje met 64kB aan RAM, maar dat is volgens mij een gefaald probeersel van de originele eigenaar.

 

 

Zo'n vertikaal bordje werkt wel degelijk, je kan de hele 64kB adresseren, dit gebeurd door bank-switching, de laatste 8k van het geheugen kun je switchen en er zijn 8 banken.

Dat gebeurd door een OUT commando, maar ik weet het nummer niet meer, het is voor mij ook 40 jaar geleden.

Ik heb vroeger een tekenprogramma geschreven in assembler en het enige wat je zag als de LIST in gaf waren een paar regeltjes code, de rest zat verborgen in assembler-code.

Het programma kon 64 pagina's op slaan in het geheugen en er dan heel snel doorheen bladeren, gebruikt voor videoeffecten tijden live videouitzendingen.

 

Met vriendelijke groet,

 

Roche van Ochten

Link naar bericht
Delen op andere sites
On 9/7/2023 at 10:40 AM, blanka said:

Zou je dan geen .WAV moeten lezen en schrijven, en de tape-hardware mee emuleren? Ik snap het idee, maar je moet toch op een gegeven moment over naar de nieuwe techniek waarbinnen mame draait. Als een floppy ook op 80's snelheid draait is dat ook niet heel veel beter. Of mag die wel virtueel?

 

On 9/8/2023 at 4:03 PM, cancom said:

Ok:


1 block op tape bestaat uit 1064 bytes plus een paar gaps; zie desgewenst "P2000 System T & M Reference Manual.pdf", paginas 57-59.

 

Dus: je hebt je laten misleiden door die nepkogel (met zijn methode ernaast schietend) waardoor je berekening van de bits/sec uitgaat van 1280 bytes/block.

 

Stelling:
".cas" = (programma-) vervuiling-avant-la-lettre

 

Ook MESS/MAME moet telkens 256 bytes overslaan om het volgende uit te voeren programmabyte te vinden en interpreteren. Awkward, die gaten; of je een virus moet zien te ontwijken.

 

Zinniger zou zijn geweest:
83 POKE &H9000,&H30:POKE &H9001,&H60
84 POKE &H9002,32:POKE &H9003,0

 

waarbij 't volstaat dit 1 maal uit te voeren, bij voorkeur voorafgaand aan het betreffende bestand.

 

Dat in het vervolg alsnog gaan doen schiet eigenlijk ook niet (meer) op.

 

@blanka

De MDCR was echt digitaal en schreef/las geen (analoog) audio. Een 'WAV' file is dan ook niet zo zinvol.

 

Je kan uit de bits van een .cas file wel een MDCR-achtige flux-stroom genereren, maar zoals @cancom zegt:
.CAS bevat een interpretatie van de datastroom: de 'nuttige' bits  (headers en datablokken) en niet de gaps en pre-ambles etc.

De keuze door M de K was destijds best valide, maar met voortschrijdend inzicht niet meer...

 

Denk aan de eerste disk-image formaten: die bevatten ook alleen de nuttige data.

Later kwam men erachter dat om een floppy echt goed te kunnen archiveren (inclusief fouten/copy protection), de ruwe flux-data zoals die uit de leeskop komt, nodig is.

 

Waarom deze les niet toepassen op de MDCR?

Dus nadenken over een format dat de flux uit de MDCR leeskop kan opslaan.  (.FLX of .MDCR als extensie?)

Dan kan je door een MDCR aan een Arduino/Pie te knopen de fluxdata van een cassette  (inclusief evt checksum- of andere fouten/orphan blocks) real time dumpen in dat formaat.

Tot slot de MDCR emulator in MAME (of andere emu) die files kunnen laten lezen (en schrijven!) en klaar is klara 🙂

 

Wel makkelijker gezegd dan gedaan 😉

aangepast door HAL9000
typo
Link naar bericht
Delen op andere sites
On 9/8/2023 at 4:03 PM, cancom said:

Ok:


1 block op tape bestaat uit 1064 bytes plus een paar gaps; zie desgewenst "P2000 System T & M Reference Manual.pdf", paginas 57-59.

 

Dus: je hebt je laten misleiden door die nepkogel (met zijn methode ernaast schietend) waardoor je berekening van de bits/sec uitgaat van 1280 bytes/block.

 

Stelling:
".cas" = (programma-) vervuiling-avant-la-lettre

 

Ook MESS/MAME moet telkens 256 bytes overslaan om het volgende uit te voeren programmabyte te vinden en interpreteren. Awkward, die gaten; of je een virus moet zien te ontwijken.

 

Zinniger zou zijn geweest:
83 POKE &H9000,&H30:POKE &H9001,&H60
84 POKE &H9002,32:POKE &H9003,0

 

waarbij 't volstaat dit 1 maal uit te voeren, bij voorkeur voorafgaand aan het betreffende bestand.

 

Dat in het vervolg alsnog gaan doen schiet eigenlijk ook niet (meer) op.

 

 

Waarom Marcel de Kogel toendertijd ervoor heeft gekozen om de 32-byte record header in 256 bytes weg te schrijven, is mij ook een raadsel. Voor een volledige zijde van een 15-minuten tape (met ongeveer 40 blokken) betekent het dat er 40 x (256 - 32) = 8.960 bytes onnodig zijn. Maar om dat nu nog te veranderen is inderdaad zinloos. En tegenwoordig heeft iedereen zoveel opslag tot z'n beschikking, dat het ook niet veel uitmaakt :)

 

De reden om de header *toch* voor iedere 1024-byte data sectie te zetten, is dat een .cas bestand uit meerdere programma's kan bestaan als het niet opgesplitst is met splitape.exe. In theorie zou een .cas bestand 40 kleine programma's kunnen bevatten met ieder een andere header. En van @blanka heb ik geleerd dat de M2000 emulator prima overweg kan met zo'n niet-opgesplitst .cas bestand en ook de inhoud van de cassette toont bij het indrukken van de ZOEK-knop.

 

Ik heb vanavond de tijd genomen om SERIAL.ASM en TAPE.ASM te annoteren en ik vind dat de assembly code van beiden er prima uit ziet. Dus hier wil ik het toch even voor Marcel de Kogel opnemen: hij heeft prima werk afgeleverd en zijn inspanningen hebben enorm veel betekend voor het in leven houden van de P2000T. Dus opmerkingen zoals "nepkogel", "vervuiling-avant-la-lettre" en "of je een virus moet zien te ontwijken" vind ik nogal overdreven en getuigen van weinig respect.

 

Link naar bericht
Delen op andere sites

Helemaal met @dionoid een, Marcel heeft ons wel door de dark-ages van de vroege jaren 2000 heen geholpen en dankzij de dumptool is er veel software gered.

Heeft iemand hier ooit contact gehad met Marcel?

Kan alleen een kunstenaar vinden met die naam in Californie.

Wat ik wel nog een raadsel vindt, is de data die in de overige 224 bytes staat. Die tool om data over RS232 uit te sturen komt wel met 1280 bytes per blok, en de 224 header bytes die overbodig zijn bevatten soms enkel 0-en, maar vaak genoeg zit er wel vanalles in.

Link naar bericht
Delen op andere sites
34 minutes ago, blanka said:

 

Wat ik wel nog een raadsel vindt, is de data die in de overige 224 bytes staat. Die tool om data over RS232 uit te sturen komt wel met 1280 bytes per blok, en de 224 header bytes die overbodig zijn bevatten soms enkel 0-en, maar vaak genoeg zit er wel vanalles in.

Ik vermoed dat de code die @dionoid heeft geannoteerd het geheugen niet initialiseert. Dan zijn die 224 bytes dus de restanten van wat er toevallig nog in het geheugen stond. 

Link naar bericht
Delen op andere sites
10 hours ago, blanka said:

Wat ik wel nog een raadsel vindt, is de data die in de overige 224 bytes staat. Die tool om data over RS232 uit te sturen komt wel met 1280 bytes per blok, en de 224 header bytes die overbodig zijn bevatten soms enkel 0-en, maar vaak genoeg zit er wel vanalles in.

De SERIAL.BAS tool van Marcel leest bij ieder blok het 256-bytes geheugen van $6000 t/m $60FF (gebruikt door de Monitor) en stuurt dat via RS232. Dat blok geheugen bevat - naast de laatst ingelezen cassette record header - allerlei andere waardes (zie Adresboekje.pdf), dus vandaar zie je die ook terugkomen in het .cas bestand.

 

Ik heb trouwens SERIAL.ASM en TAPE.ASM op github van commentaar voorzien. Dat helpt als er in de toekomst aanpassingen nodig zijn. Mijn Z80 assembly kennis was wat roestig geworden, dus die heb ik hiermee meteen weer opgefrist :)

aangepast door dionoid
Link naar bericht
Delen op andere sites
3 hours ago, blanka said:

Heeft iemand hier ooit contact gehad met Marcel?

Kan alleen een kunstenaar vinden met die naam in Californie.

Waarschijnlijk vond je hem op marceldekogel.com? Ik vermoed dat dat inderdaad dezelfde Marcel is. Hij is op LinkedIn te vinden: https://www.linkedin.com/in/marcel-de-kogel-9b00142/  Hij woont blijkbaar momenteel in Santa Clara en werkt bij Cisco. In het verleden heeft hij ook bij o.a. Ericsson en Nokia gewerkt als software engineer, dus dat klopt met de informatie op http://www.komkon.org/~dekogel/

Ook zijn info ("Born 1972 in Utrecht") matcht.

 

image.png.4ab93644d827f7897f37bcd0e43ce91b.png

 

...en de beste software engineers dragen nooit schoenen :)

aangepast door dionoid
Link naar bericht
Delen op andere sites

Hi, voor wie na het gebruik van SERIAL.BAS de resulterende tape image wil splitten in losse programma's, is er nu een nieuwe "V2.0" versie van splitape.exe die niet beperkt is tot DOS 8.3 bestandsnamen. De nieuwe splitape.exe is te vinden op https://github.com/p2000t/software/tree/master/utilities/tapeconv

 

Hieronder een voorbeeld van het splitten van "Basic Demo blauw A.cas" (dit is een tape image van de volledige A-zijde van die blauwe Basic Demo cassette)  - met dank aan @blanka:

 

image.png.c4f59ac6f4de8f746330f4dd036a55c7.png

 

...trouwens wel handig dat "sluit in" met een kleine letter begint en "Snelzoekboek" met een hoofdletter, want CLOAD "programma naam" kijkt alleen naar de eerste letter van de meegegeven naam, maar is gelukkig wel case sensitive :)

 

Source file van splitape is hier te vinden: https://github.com/p2000t/software/blob/master/emulators/sources/splitape.c

aangepast door dionoid
Link naar bericht
Delen op andere sites
3 hours ago, dionoid said:

Hi, voor wie na het gebruik van SERIAL.BAS de resulterende tape image wil splitten in losse programma's, is er nu een nieuwe "V2.0" versie van splitape.exe die niet beperkt is tot DOS 8.3 bestandsnamen. De nieuwe splitape.exe is te vinden op https://github.com/p2000t/software/tree/master/utilities/tapeconv

 

Hieronder een voorbeeld van het splitten van "Basic Demo blauw A.cas" (dit is een tape image van de volledige A-zijde van die blauwe Basic Demo cassette)  - met dank aan @blanka:

 

image.png.c4f59ac6f4de8f746330f4dd036a55c7.png

 

...trouwens wel handig dat "sluit in" met een kleine letter begint en "Snelzoekboek" met een hoofdletter, want CLOAD "programma naam" kijkt alleen naar de eerste letter van de meegegeven naam, maar is gelukkig wel case sensitive :)

 

Source file van splitape is hier te vinden: https://github.com/p2000t/software/blob/master/emulators/sources/splitape.c

Heb je ook de P2000 tekens gemapt naar UTF-8?

Ik had zelf een Java tooltje gemaakt die inhoudsopgaves maakt als TXT en PNG, maar die kan met een kleine aanpassing ook splitsen. Ik heb een vervangtabel zodat alle speciale tekens in takt blijven.

Basic Demo blauw B.png

aangepast door blanka
Link naar bericht
Delen op andere sites
9 minutes ago, blanka said:

Heb je ook de P2000 tekens gemapt naar UTF-8?

Ik had zelf een Java tooltje gemaakt die inhoudsopgaves maakt als TXT en PNG, maar die kan met een kleine aanpassing ook splitsen. Ik heb een vervangtabel zodat alle speciale tekens in takt blijven.

Nee, het gebruikt de leesbare karakters van ASCII.  In de bestandsnaam wil je toch juist geen speciale tekens? Ik zie niet waarom je de speciale tekens in de bestandsnaam intact zou willen houden.

aangepast door dionoid
Link naar bericht
Delen op andere sites

Omdat het kan? Bestandsnamen op Windows/Mac/Linux kunnen tegenwoordig gewoon UTF zijn, en daarmee kan je de bestandsnamen van de P2000 origineel houden. Alleen : / en \ mag niet.

aangepast door blanka
Link naar bericht
Delen op andere sites

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.

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in


×
×
  • Nieuwe aanmaken...