Jump to content

HAL9000

User
  • Content Count

    20
  • Joined

  • Last visited

About HAL9000

  • Rank
    Pong

Profiel

  • Geslacht
    Man
  • Locatie
    Steenderen
  • Console
    C64
  • Twitter
    @ferencn

Profile Fields

  • Interesses
    Emulators, P2000, assembly

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Ik heb ondertussen de MDCR aan de praat in mijn eigen emulator, was na dat gedisassembleer niet meer heel ingewikkeld... Nu ben ik bezig met het scroll register. out &h3x , offset. Ik zie dat als je waardes groter dan 40 stuurt, die niet 'wrappen' maar dat er wat vreemd gedrag optreedt. En bij een waarde van 128 en hoger wordt het hele scherm wit. Weet iemand of dat gedrag ergens is gedocumenteerd?
  2. Door jullie foto's herinnerde ik me opeens dat ik ook een paar printplaatjes had aangetroffen in een doos met P2000 spul. 3 stuks 8-in-1 printje: en 5 Centronics boards: In de doos zaten ook 4 niet-zo-standaard P2000 insteekmodules: Misschien dat de Centronics print een kopie is van die op de foto... Ik ga dat vanavond eens bekijken!
  3. Pull request is gemaakt, @dionoid is nu aan zet. hier een preview: https://github.com/p2000t/documentation/pull/4/commits/3571d9ca7a28ff7461443b5cbc5d2b026e1b9142
  4. Ik zie dat de 'read_rev_byte' routine ook wordt aangeroepen om bytes te skippen als de tape vooruit loopt (in de block_forward code), dus jouw hypothese dat RDC op RDA staat als REV actief is, lijkt niet te kloppen. Volgens mijn analyse worden 8 data-bit transities geskipt in beide richtingen... Dat zou een oorzaak kunnen zijn van het zo nu en dan niet goed kunnen 'doorladen', omdat de skip forward zich in jouw implementatie net iets anders gedraagt. NB: Ik heb inmiddels de hele monitor gedisassembleerd en ge reverse engineered, en zal de .asm files toevoegen aan de github rep
  5. Leesbaarder: de ^= bit; if (de & 0x01) de ^= 0x4002; // we rotate the bits, and lo bit of de wraps to hi bit uint16_t hibit = (de & 0x01) ? 0x8000 : 0; de = hibit|(de>>1);
  6. Deze code was ik ook al op gestuit, in de inlees routine, had ik even geparkeerd. Mooi dat jij die uit elkaar hebt geplozen... Iets verderop wordt DE (checksum dus op dat moment!) weer gebruikt: ; data handling routine 'read payload' ; it stores the data byte at destination. ; HL, BC, DE contain dest, count and data ; not sure yet what DE means here ?? when all bytes were read (DE == 0) ???? ; ????? read_payload: exx ; save databyte, destination and count, get DE ; next byte a filler or payload? ld a,d ; DE contains ????? or e ; jr nz,set_ca
  7. Mooi werk!!! Kleine aanvulling: volgens mij (en mijn disassembly) telt de P2000 geen bits, maar seconden: ; cas_Rewind (address 0x0bb4) ; rewinds tape for a maximum duration of 103 seconds. ; a verified data tape rewinds within 90-something seconds ; if EOT is not reached within 103 seconds, the tape is either broken ; or too long (not a supported tape) ; inputs: none ; outputs: Cassette error contains no error, 'A' or 'I' cas_Rewind: call write_disabled ; writing? ret nz ; yes! so don't rewind ld a,KBIEN|REV
  8. Mooi! dit helpt enorm alles beter te begrijpen... Ik vond ook nog deze (bijlage) philips_8920_405_10601_mdcr_sm.pdf
  9. Geen hardware, klopt! Ik had eerder geschreven dat ik vermoedde dat de motor meteen uitgezet zou worden. Ik had voor de waarde van de out &h44 gelezen en niet &h4, wat @pokowaka schreef. Bij waarde &h44 wordt de motor wel meteen door de interrupt, als bijwerking van het (weer) aanzetten van KBIEN, uitgezet. Dat heb ik net even getest. 2000M: Ik heb een complete set, 2 kasten en in de monitorkast met daarin 2 drives, een stapel floppen en wat kopie├źn van handleidingen erbij, zie fotootje. En je hebt gelijk, het is een inbouw- en niet een insteekkaa
  10. Nee, helaas... Ik heb wel een P2000M staan. Hopelijk is die interface vergelijkbaar met de insteekkaart voor de P2000T...
  11. Ik zat als een havik op te letten en heb meteen het deurtje opengedaan, motor bleef draaien zonder dat de tape m tegenhield. En Pokowaka heeft geen hardware, anders had ik die testjes niet hoeven doen denk ik... Ik zal eens kijken of er een controller in een van mijn apparaten zit... is dat aan de buitenkant te zien?
  12. jouw testjes: dec hex binair -------------------- print inp(&h20) zonder cassette : 187 0xBB 1011 1011 print inp(&h20) cassette zonder stopje: 171 0xAB 1010 1011 print inp(&h20) cassette met stopje : 163 0xA3 1010 0011 ^ ^ CIP_| |_ WEN CIP is blijkbaar ook 'inverted', en 0 als er een cassette is en 1 als er geen cassette is. WEN = 0 als er geschreven kan worden en 1 als da
  13. Wedervraag: welke bronnen gebruik jij? en aan allen: Ik zoek documentatie/informatie over de floppy drives die je op de P2000T kon aansluiten... Mijn P2000T heb ik op de kop getikt zonder drives/floppen iemand?
  14. We zijn elkaar ook al tegengekomen op Circuits Online. Ik wil best wel jouw testjes doen Ik kan ook alvast wat van mijn eigen bevindingen delen, want ik ben ook aan het uitzoeken hoe de P2000 een data blok van cassette leest. Hoe het schrijven gaat staat voor daarna op de planning. Allereerst: de Monitor ROM routines die met de cassette werken zetten de interrupt uit, om te voorkomen dat de interrupt de cassette control lijnen reset. Wanneer je dus vanuit de prompt of in BASIC de cassette aanstuurt werkt dat ook alleen maar als je de interrupt uitzet...
×
×
  • Create New...