Ga naar inhoud

HAL9000

Users
  • Aantal items

    116
  • Registratiedatum

  • Laatst bezocht

Alles dat geplaatst werd door HAL9000

  1. HAL9000

    Philips P2000T

    Ik meen ergens gelezen te hebben dat je hiermee de default baud-rate van de printer kan instellen. Welke waardes je kan selecteren weet ik niet uit mijn hoofd. Er is vast iemand in het forum die dat wel weet 🙂
  2. HAL9000

    Philips P2000T

    @dionoid Mijn geheugen is beter dan ik dacht 🙂 Zie voor de implementatie de file P2000.c regels 515 en verder...
  3. HAL9000

    Philips P2000T

    Hij start niet op met het video-bord erin: dan brandt een van de zekeringen door. Omdat ik zonder videobord niks kan zien heb ik niet geprobeerd op te starten met alleen het floppy-board 🙂 Maar inderdaad, daar zitten geen ram-chips op, en zal dus niet werken... maar eens op zoek naar wat rammetjes 😉
  4. HAL9000

    Philips P2000T

    Gisteren en vandaag eindelijk kunnen testen! De ene knop is inderdaad een terugspoel-onderbreker, de andere een hardwarematige switch naar 80 kolommen!
  5. HAL9000

    Philips P2000T

    5 volt uit de voeding en 3 draadjes gesoldeerd op de 'gewone' serial port: Als ik het goed heb aarde aan pin 7, en de twee grijze draadjes pinnen 3 en 20.
  6. HAL9000

    Philips P2000T

    Ik heb zojuist de 4 roms uitgelezen en een pull request gemaakt voor het PPP, niet mijn sterkste punt, github, hopelijk kan @dionoid mijn pull-request mergen! De CHRIT staat voor 'CHRIT KLAASSENS BASIC", ipv "PHILIPS CASSETTE BASIC" bij opstarten. op het eerste gezicht is alleen de naam veranderd maar ik heb nog geen volledige binary compare gedaan. Kent iemand Chrit Klaassens?
  7. HAL9000

    Philips P2000T

    Het viel me nu ook op dat het 'dopje' om bij de jumper op het moederbord te komen ook ontbreekt...
  8. HAL9000

    Philips P2000T

    Een andere P2000T bevatte ook een grote printplaat, ik vermoed een MW2200, met wat corrosie... Met die print erin start de P2000 niet op, en toont een egaal geel scherm. Zonder print start de computer wel, en kon ik verschillende rom's selecteren. NB: De P2000 is ooit in gebruik geweest bij een VIDITEL bbs in het noorden van het land. Hier wat foto's Ik heb de print inmiddels wat schoongenaakt: komende week kijken of opstarten met bord wil lukken...
  9. HAL9000

    Philips P2000T

    Vandaag een paar P2000's opengeschroefd. een daarvan had alleen 'P2000' op de kast staan, dus niet P2000T of P2000M. OP een sticker op de onderkant staat: Type P2032. Er waren een paar draadjes aan de onderkant van het toetsenbord gesoldeerd en er zit een nogal kaal moederbord in en 2 grote printplaten. 1 daarvan lijkt een P2000M-achtige videokaart, de andere kaart is een floppycontroller. Er zat maar 1 zekering op de voeding-verdeel print. Gelukkig had ik nog een paar zekeringen liggen, en ik heb ook meteen de aan-uit schakelaar vervangen. Bij opstarten brandde meteen een van de 3 zekeringen door. Als ik de monitorkaart losmaak van de voeding brandt de zekering niet door, dus ik vermoed dat er ergens sluiting zit op die kaart... Vragen aan jullie: Is deze configuratie 'bekend'? Tips over wat de sluiting/doorbranden van de zekering zou kunnen veroorzaken? Hier wat foto's: 1 = kast, 2 = draadjes op het toetsenbord, 3 = moederbord, 4 = monitorkaart, 5 = floppykaart
  10. HAL9000

    Philips P2000T

    Dat klopt! Het is alweer een tijd geleden maar ik meen me te herinneren dat de emulator deze 'illegale opcode' afvangt en dan op basis van de program counter bepaalt of er een cassette- dan wel printerroutine afgehandeld moet worden. Voor de cassette geldt dat in register A staat welke cassette actie uitgevoerd moet worden. Dus die opcodes zorgen ervoor dat in plaats van de ROM/Monitor code de code in de emulator zelf wordt aangeroepen.
  11. HAL9000

    Philips P2000T

    Ik heb even in de monitor disassembly gekeken. xor a ; switch to 1st bank (0) out (094h),a ld hl,RAM_bank3 ; start address (0xe0000) ld bc,020ffh ; test 32 pages of 256 bytes, all 8 bits call test_memory cp 002h ; failure past 1st byte? jr z,jr_z_boot_error ; boot_error is too far for a relative jump, do it in 2 steps :-) cp 001h ; 1st byte a failure? jr z,no_more_ram ; then we're done with RAM ld hl,RAM_bank3 ; double check memory with a bit-pattern call check_pattern jr nz,no_more_ram ; failed, done! ld a,001h ; switch to 2nd bank (1) out (094h),a ld hl,RAM_bank3 ; start address (0xe0000) ld bc,020ffh ; test 32 pages of 256 bytes, all 8 bits call test_memory l0303h: or a ; zero? jr nz,jr_nz_boot_error ; no, abort but boot_error is too far for a relative jump, do it in 2 steps :-) ld hl,memsize ; 3rd block of 16k memory is ok inc (hl) ; memsize <- 3 = 48k out (094h),a ; switch back to 1st bank (0) no_more_ram: ld a,(memsize) ; how many banks were found? cp 003h ; 3? jr nz,prep_status_display ; mem at 0xe000 is on the extension board. ; so when no mem is found at 0xe000 there are also no diskdrives. Er wordt hardcoded tweemaal een out(094h) met 0 en 1 gedaan. Daarna stopt de monitor met geheugen testen. Dus er MOET een tweede bank zijn, zoals @cancom al aangaf. Dat betekent dat alleen die eerste 16k wordt getest door de monitor, ook al maak je een uitbreiding met 256 x 8k geheugen. Is die 2x8k gevonden dan wordt ook geprobeerd of er Disks aan hangen: ; disk boot logic ; is a cartridge inserted that needs a disk (DOS) boot? ld a,(01000h) ; is a cartridge present? bit 0,a ; then this bit is set jr nz,prep_status_display ; no cartridge, so don't boot from disk bit 1,a ; cartridge needs dos? jr z,prep_status_display ; no so don't boot from disk ld a,004h ; Bit 2 = RESET command to FDC out (DSKCTRL),a ; send to FDC ld b,000h ; delayloop of 256 iterations fdc_test_delay: djnz fdc_test_delay in a,(DSKIO1) ; read fdc reply cp 080h ; hi bit set indicates FDC is ready call z,getdos ; it is set, so device is present. load DOS tracks xor a ; always switch FDC off again out (DSKCTRL),a ; just to make sure ; continue startup, wether DOS was loaded or not. prep_status_display: ld hl,0500eh ; screen address of base address for mon_status display ld (mon_status_io),hl ; save in status byte pointer Dit geeft minimale vertraging als er geen diskdrives zijn en loopt ook niet op met het aantal bytes/banks. Misschien checkt BASIC (of een andere cartridge) meer banks, met extra delay tot gevolg? <EDIT>: Ik heb BASIC1.1 net ook bekeken maar daar zit geen extended memory test in.
  12. HAL9000

    Philips P2000T

    Bedankt voor de uitgebreide uitleg, en ik had al even zitten googelen en de HEX-inverter (de '04') gespot maar ik dacht dat het een inverter was die iets met HEX getallen deed, en niet 6 maal NOT 🙂 Ooit een hele discussie gevolgd over het vervangen van de Commodore 64 PLA met een (EP)ROM. Daardoor had ik ook al bedacht dat zoiets een oplossing zou kunnen zijn, en zeker als je achteraf je logica moet corrigeren. Leuk dat jij die optie ook aanstipt, maar begrijpelijk dat hier een paar componenten minder weer andere complexiteit meeneemt. 🙂
  13. HAL9000

    Philips P2000T

    Voor jullie een eitje, voor mij minder... Ik tel in het schema 6 keer een NAND gate (in een 74HC00) die als inverter wordt gebruikt. Is dat met een speciale reden? bijvoorbeeld aantal componenten beperken oid?
  14. HAL9000

    Philips P2000T

    Ik vind het erg leuk om deze ontwerp-dialoog te volgen. Hardware is minder mijn ding maar hier leer ik veel van! Dus schamen is echt niet nodig 🙂
  15. HAL9000

    Philips P2000T

    Ik vond dit zojuist in PTC blad 134: Dus zou die knop daar best voor kunnen zijn, ipv NMI...
  16. HAL9000

    Philips P2000T

    Bedankt en ik zal die theorie over terugspoelstop en NMI zeker testen!
  17. HAL9000

    Philips P2000T

    Ik heb een paar jaar geleden een P2000T op de kop getikt, en iets te goed opgeborgen... toevallig vond ik hem net in een doos toen ik naar wat anders zocht. Ik heb wat foto's gemaakt van wat ik in de kast aantrof, zoals 80 kol. kaartje en extra geheugen: Bij de andere foto's heb ik wat vragen. - is het een bekende uitbreiding, deze 'extra' UART? - Op de kast zitten 2 drukknopjes. Een van de knoppen heeft een groen componentje tussen de polen en de draden lopen ergens de MDCR controller kaart in. Iemand een idee wat de functie kan zijn? - Er zit een CEKA(?) multi cartridge bij, met 4 roms. Is iemand bekend met 'CHRIT' Basic, die in de cartridge zit? (Ecol is al eerder in dit topic aan de orde geweest en is een educatieve programmeertaal) - het andere knopje op de kast zit tussen aarde en een van de aders van de flat cable naar de 80 kol. kaart. Wellicht om te forceren in 80 kol. te starten? NB: Mijn P2000->Monitor kabel is stuk (pennetje in din-plug afgebroken) dus ik heb hem nog niet kunnen testen. Ik hoop dat dit weekeinde te kunnen doen en de nieuwe plug heb ik al in huis.
  18. HAL9000

    Philips P2000T

  19. HAL9000

    Philips P2000T

    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.
  20. HAL9000

    Philips P2000T

    @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 😉
  21. HAL9000

    Philips P2000T

    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.
  22. HAL9000

    Philips P2000T

    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.
  23. HAL9000

    Philips P2000T

    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?
  24. HAL9000

    Philips P2000T

    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.
  25. HAL9000

    Philips P2000T

    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
×
×
  • Nieuwe aanmaken...