Philips P2000T kenner gezocht

bprosman

Golden Member

Op 28 september 2020 15:41:22 schreef Ferenc:
Zeker!
Ik heb al een pull-request open staan op de github-repository: disassembly pull request
Je kan alvast kijken, en als een git-repo te hoogdrempelig is kan ik uiteraard ook hier een zipje delen ;)

Nee hoor github is prima, dank en zeer leerzaam !!

De jongere generatie loopt veel te vaak zijn PIC achterna.

Op 28 september 2020 09:58:24 schreef Ferenc:
[...]

en het write protect voeler pinnetje indrukt (geen cassette, write enabled!)

[...]
Wanneer dat bitje aanstaat, sturen cassette operaties status bytes naar de COMM port. Dat gebeurt tijdens GAP-Writes (bij schrijven) of Skips (bij lezen).

Dat eerste komt nooit voor...

En v.w.b. 't tweede: hang voor de aardigheid eens een logicprobe (deed ik) of een scoop aan de Tx-pen: and the rest is silence.

If the computer really is intelligent nobody will recognise the fact. Because we aren't. - Chad C. Mulligan

Ik geloof je direct, alleen de software zegt wat anders, en probeert wel degelijk bytes naar de COMM poort te sturen.
Dat ze daar uiteindelijk niet aankomen kan allerlei (hardware) redenen hebben, een leuke puzzel om eens uit te zoeken.

Ik heb ooit een chinese (kopie van een) SALAE logic analyzer gekregen, nog nooit wat mee gedaan, eens kijken of ik die aan de praat kan krijgen...

Ik heb het op een andere manier getest, en ik zie, zoals verwacht :-) bytes verschijnen op de comm port!

Wat heb ik gedaan:
Mijn laptop met een serial-usb kabeltje aan de serial port van de P2000 gehangen en een serial port monitor programma gestart. Dat laten luisteren op de juiste poort op 2400 baud, 8 databits, No Parity, geen flow control en 1 stopbit.

Vervolgens de P2000 met een BASIC cartridge erin aangezet, het cassetteklepje opengedaan en de P2000 gereset met alleen het LINKER voeler-pinnetje:

ingedrukt. En toen kwam er 1 byte, hex 0xCE op mijn laptop binnen:

De bits worden geinverteerd verzonden, CE = 11001110, geinverteerd 00110001 = hex 31 = ascii '1', zoals ik al had afgeleid uit de disassembly.
Daarna heb ik een cassette met 4 BAS bestanden in de cassettedrive gestopt en op shift-ZOEK gedrukt. De P2000 spoelde terug en vond 4 bestanden:

Op de laptop kwamen tijdens dat proces de volgende bytes binnen:

Uitleg codes op de COMM port:

code:


BA          -> 0x45                = 'E'         : end of tape na terugspoelen.
98 FF       -> 0x67 0x00           = 'g' 0       : rewind invoked, no error
9d FF 9d ff -> 0x62 0x00 0x62 0x00 = 'b' 0 'b' 0 : 2 maal block read, ok       (file 1)
99 FF       -> 0x66 0x00           = 'f' 0       : forward block skip, ok 
9d FF 9d ff -> 0x62 0x00 0x62 0x00 = 'b' 0 'b' 0 : 2 maal block read, ok       (file 2)
99 FF       -> 0x66 0x00           = 'f' 0       : forward block skip, ok 
9d FF 9d ff -> 0x62 0x00 0x62 0x00 = 'b' 0 'b' 0 : 2 maal block read, ok       (file 3)
9d FF 9d ff -> 0x62 0x00 0x62 0x00 = 'b' 0 'b' 0 : 2 maal block read, ok       (file 4)
99 FF       -> 0x66 0x00           = 'f' 0       : forward block skip, ok
9C B2       -> 0x63 0x4D           = 'c' 'N'     : mark error, mark not found  (no more files)

Er worden dus 4 files gevonden (block read paren). Hoe de 'ZOEK' functie precies werkt is iets om nader uit te zoeken ;-)

Op 2 oktober 2020 17:07:25 schreef Ferenc:
ik zie, zoals verwacht :-) bytes verschijnen op de comm port!

Hm, hoezo gaf de logicprobe geen sjoege; dan toch niet in pulse-mode?

Nou ja, geeft niks. Ik heb geen zin om ook nog eens de scoop eraan te hangen. Want ik vermoed dat de lui van Philips ook gedacht kunnen hebben: wat maakt het uit?

Wat opvalt aan al die bytes is bit 7. Mijn Gemini-10X printer gaat totaal niet reageren want er zit geen enkel commando-byte bij. Ofwel: die blijkbaar ontvangen bytes vanaf de printerpoort worden simpelweg genegeerd. So, who cares?

Mogelijk hebben de programmeurs het maar erbij gelaten om in het "monitor"-programma e.e.a. netjes af te vangen -voor een gedeelde poort- omdat 4kB nou eenmaal niet veel is. En er moest gewerkt worden met de beschikbare hardware.

Maar goed, puzzel maar naar hartelust verder naar elk bitje.

If the computer really is intelligent nobody will recognise the fact. Because we aren't. - Chad C. Mulligan

Ik denk, net als jij, dat die output op de printerpoort niet voor de printer, maar voor een andere tool die ook via RS232 werd aangesloten, was bedoeld...

Ik heb ondertussen de MDCR aan de praat in mijn eigen emulator, en kan .cas bestanden lezen en schrijven, dat was na al dat gedisassembleer niet meer heel ingewikkeld...

Nu ben ik bezig met het scroll register: out &h3x ,offset.
Simpel voor waardes van 0-40, maar ik zie dat als je waardes groter dan 40 stuurt, die niet simpel 'wrappen' maar dat er wat vreemd gedrag optreedt.
En bij een waarde van 128 en hoger wordt het hele scherm wit.

Voordat ik dubbel werk doe: Weet iemand of dat gedrag ergens is gedocumenteerd? Of misschien logisch is als je weet welke chip die waarde gebruikt?

Alweer bedankt!

Op 19 oktober 2020 17:44:12 schreef Ferenc:
als je weet welke chip die waarde gebruikt?

Zie de FSM ofwel Field Support Manual: https://github.com/p2000t/documentation/tree/master/hardware/FieldSupp…

Of hier: bericht 31-8-2020, "FSM pages 4-11 through 4-14.pdf".
Het gaat niet om maar 1 chip, zie sheet 3.

If the computer really is intelligent nobody will recognise the fact. Because we aren't. - Chad C. Mulligan

Dank voor de pointers.
Ik heb weinig tot geen kaas gegeten van dit soort schema's lezen.

Maar deed toch een poging: als ik het goed begrijp uit de sheets, dan worden de row count (5 bits) uit de SAA5020 en bits 4, 5 en 6 van het scroll register (via screen refresh counter) gebruik als adres in een 256 byte rom, die vervolgens 7 video ram adres lijnen AV4-10 oplevert. AV0-3 komen via een andere route tot stand.

Die ROM doet vermoeden dat er misschien iets meer gebeurt dan een simpele optelling van de scroll-waarde en videoregel startadres.

Ik zou graag een onderzoek doen onder de forumleden naar de P2000T computers die jullie in gebruik hebben. Je kunt meedoen via deze link:

https://forms.office.com/e/DfeWmtRZXz

Als je meerdere P2000T computers hebt, dan mag je m meerdere keren invullen. Je kunt dan in de enquête een groot deel van de vragen die algemeen zijn een tweede keer overslaan.

Ik zal jullie van de respons op de hoogte houden. Alvast hartelijk dank voor het invullen.