Ga naar inhoud

HAL9000

Users
  • Aantal items

    112
  • Registratiedatum

  • Laatst bezocht

Berichten die geplaatst zijn door HAL9000

  1. On 10/17/2023 at 10:24 PM, cancom said:

    En hoe wordt die UART aangestuurd: waar zitten de verbindingen met 't systeem?!

     

    5 volt uit de voeding en 3 draadjes gesoldeerd op de 'gewone' serial port:

    UART1.thumb.JPG.44c37d17b08282d5da0a1b086cfb3db0.JPGUART2.thumb.JPG.4668274f3e275c9cd2648a39c5e9c616.JPG

    Als ik het goed heb aarde aan pin 7, en de twee grijze draadjes pinnen 3 en 20.

  2. On 10/17/2023 at 10:24 PM, cancom said:

     

    Dat CHRIT zou kunnen staan voor Chriet Titulaer. Kan je die 128'er, en dat ECOL, uitlezen en hier de .bin zetten (of meteen 't PPP) ?

     

     

    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?

     

  3. 1 hour ago, blanka said:

    Is dat bord met MW... erop een vroege MiniWare uitbreiding? De combinatie van floppy/RTC/RAM/serieel was daar een van de producten, alleen ziet de versie die ik heb er een stuk strakker en leger uit.

    @HAL9000 wat is serienummer van die P2000 zonder T?

    IMG20231030094614.thumb.jpg.efa282eb19b1538b49dd9d0cc1597df5.jpg

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

  4. 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

    B_01.thumb.JPG.be2c93b3070df86e25535e2c8ac40bea.JPGB_09.thumb.JPG.42f6784909d472ebdecfd6d6a38951d5.JPG

     

    B_08.thumb.JPG.edcd89fdf52f42293498b810693c8226.JPGB_10.thumb.JPG.9aebbad1514ad42111c5d164c5c24f13.JPG

     

    B_02.thumb.JPG.de8dbcd4d4ccadd50d64da7c184eb2ae.JPGB_03.thumb.JPG.4dfe4c02787c2f452aacee778816d486.JPG

    Ik heb de print inmiddels wat schoongenaakt:

     

    B_06.thumb.JPG.80f7ef10b9c7ce7164b853a7773f6bdd.JPGB_04.thumb.JPG.319639ee9a670919dd4a304f17c9ce41.JPG

     

    komende week kijken of opstarten met bord wil lukken...

  5. 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

     

     1.thumb.JPG.4452c302da204dcdc9dee1f796af20c3.JPG 2.thumb.JPG.fda0b659f6e2597b915a186c56f95086.JPG

     

    3.thumb.JPG.302eea1fc16a1ebdd38ddad0865c35aa.JPG4.thumb.JPG.1488324eeba0db48054cde145167a2c0.JPG

     

    5.thumb.JPG.d6c0e439c6c56bd8efe9d7859105acc5.JPG

     

  6. 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. 

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

     

      

  8. 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 🙂

     

    18 minutes ago, Bertus said:

    Om even het absurde op te zoeken: ik zou de 00, 04 en 32 nog kunnen vervangen voor bijvoorbeeld een EECPLD zoals de ATF16V8B-15PU omdat de timing niet heel kritisch is (de chip heeft een tpd van 15 us, wat genoeg zal zijn voor de P2000T), maar dat zou ik dan weer persoonlijk een brug te ver vinden. Die chip is niet eenvoudig en behoeft een flasher. Meestal proberen we binnen de 74' serie blijven en dan specifiek die chips die nog actief geproduceerd worden.

    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.

    🙂 

  9. On 10/21/2023 at 9:09 PM, Bertus said:

     

    Zo gaan die dingen. 🙂 Terwijl ik beide schema's aan het bestuderen was kwam ik ook al op die conclusie uit. Ik heb een revisie gemaakt van mijn schema (en me laten inspireren door ook een 74HC158 te gebruiken). Ik kom hier op uit:

     

    <plaatje weggelaten>

     

     

    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?

  10.  

    11 hours ago, Bertus said:

     

    Vanaf wanneer moeten we ons gaan schamen? Enfin, nog een poging aan mijn zijde voor dit puzzelwerkje:

     

    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 🙂

  11. On 10/16/2023 at 5:24 PM, Bekkie said:

    Een knopje waarmee 80/40 schakels heb ik nooit van gehoord, ik denk eerder aan de soft-reset (NMI) waarbij het geheugen niet geleegd wordt maar de Z80 CPU wel op nul begint. Erg waardevol als je assembly aan het debuggen bent.

    Ik vond dit zojuist in PTC blad 134:

    IMG20231017175848.thumb.jpg.ca95c352cb58444325f32309313acc60.jpg

    Dus zou die knop daar best voor kunnen zijn, ipv NMI...

  12. 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:

    IMG20231016155415.thumb.jpg.d3d89a6e009e2cc42f1cdcdf7ba5ae3a.jpg

    IMG20231016155448.thumb.jpg.b6bf25102e56fbd33ff9a2cc9a2f9cbb.jpg

    Bij de andere foto's heb ik wat vragen.

    - is het een bekende uitbreiding, deze 'extra' UART?

    IMG20231016155948.thumb.jpg.62dad2a99a0c9b04f0b75b43a3d8191f.jpgIMG20231016160111.thumb.jpg.02c1eb19510a4400b791d437d3ef16ed.jpg
    - 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?

    IMG20231016160135.thumb.jpg.940ae973ee8cce11f27523eb07ecafd0.jpg
    - 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)

    IMG20231016155546.thumb.jpg.09d9677c1c3a347b69672d4bdb5b7fbb.jpgIMG20231016161038.thumb.jpg.06238d9f2403222cbab45d689d2b2144.jpg

    - 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? 

    IMG20231016160204.thumb.jpg.adb135999f4d4038d0d56424513ccc55.jpg

     

    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.

     

  13. On 4/4/2023 at 4:33 PM, Bekkie said:

    Beste dmr,

     

    Met "out 0,1" schakel je naar 80 karakter mode en met "out 0,0" weer terug naar 40. Om ook de volledige schermbreedte in Basic te kunnen gebruiken, moet ook de interpreter weten dat het scherm 80 karakters breed is. Dit kan met het commando "poke &H60B0,79" met "poke &H60B0,39" wordt de beeld scherm breedte weer 40 karakters.   

     

  14. 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. 

  15. 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 😉

  16. On 8/20/2023 at 11:41 PM, HAL9000 said:

    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.

     

    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.

     

     

     

     

  17. 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.

     

  18. 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?  

  19. 37 minutes ago, blanka said:

    ... dan is het logisch dat bit 0 van flags eigenlijk gewoon bit 8 is in de berekening, en bit 15 dus bepaalt of die waarde positief of negatief is. Dus kun je bit 8 uit de 32 bit berekening als bit 0 in de register 6 stoppen. En bit 15 als sign op plek 7.

    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.

  20. 5 hours ago, blanka said:

    Ik vroeg me af is er ook een omgekeerde tool, die de CAS terugzet naar een bandje. We hebben nu wel iets om een bas file in het geheugen te laden, maar de andere bestanden in de cas mis je dan altijd.

    Zou die tool van de Kogel nog op te voeren zijn naar 9600baud?

    Dank voor de CAS file! Goede vragen, hierbij mijn input:

    In principe wordt een blok data geheel ingelezen en treedt de (lees)fout vaak pas op bij een incorrecte checksum. Die fout negeren, toch het blok versturen en doorgaan is het enige wat nodig is... Ik denk dat het aanpassen van de tool niet heel ingewikkeld moet zijn, maar daarvoor moet  de tool nader bestudeerd worden, ook omdat er ook andere leesfouten kunnen optreden waarbij evt recovery van de data ingewikkelder is. Ik heb de disassembly van de monitor alweer een paar jaar geleden gemaakt dus niet alles is top-of-mind... 

    Opschroeven van de baudrate zou ook moeten kunnen, maar ook hier geldt: aanpassen hangt af van hoe Marcel ooit de transfer en timing heeft ingericht: vergt ook wat analyse.
    De laatste, 'het omgekeerde proces' moet zeker mogelijk zijn. De monitor schrijft een data (programma, array etc.)  zelf ook weg als losse blokken. Leuk om ook over na te denken.


     

  21. On 12/19/2021 at 10:49 AM, cancom said:

    Goed nieuws voor degene met een gebroken nek: binnenkort is bij Conrad een netschakelaar te verkrijgen die bijna identiek is aan de originele. Een verschilletje zit in de afstand tussen de montagegaten: 20mm i.p.v. 23mm, dus moeten de gaatjes (3mm) in de montageplaat iets uitgefreesd worden. Bewaar wel de originele "kap" en dan is dit een prima vervanger (ook bij deze worden beide aders geschakeld) ! Artikelnummer 701606.

     

    Ik heb deze besteld en sinds gisteren in huis, dank voor de tip @cancom! Vandaag de schakelaars in zowel de monitorkast als de computer vervangen en de P2000M is zo goed als nieuw!

  22. On 3/8/2020 at 1:08 AM, HAL9000 said:

    Monitor heeft display rot, maar verder werkt alles...

    IMG_20200307_153308__01.jpg

    Ja, het is een paar jaar geleden... Ondertussen werd steeds minder van het scherm leesbaar. Dit weekeinde heb ik naar aanleiding van deze post op een Duits forum: Gevaarlijke monitor ,de stoute schoenen aangetrokken. Heel voorzichtig (en deels in stukken) de op de beeldbuis geplakte glasplaat en de vergane kit verwijderd...  Ook de gelekte smurrie opgesopt. Zie hier het resultaat!

    forum_1.thumb.JPG.75cc18e03945c45e65a62e4c82bdcecb.JPG

    forum_3.thumb.JPG.034dadd9e097e13a35d915c8ff87be2f.JPGforum_4.thumb.JPG.52cab3edfc86c787c745c75ba37b897b.JPGforum_2.thumb.JPG.a507173c7e302d653a527bc0266b29c8.JPGforum_5.thumb.JPG.9ccab17ada77b7f6a5d63add7536b2ab.JPGforum_6.thumb.JPG.ebc8f2b319498d3e1d2d48b5356a1642.JPG

  23. On 7/22/2023 at 8:26 PM, Bertus said:

     

    Deze pagina's schieten mij te binnen. Wellicht is er meer, maar ik ben nog niet klaar met alles op het archief door te nemen.

    Ik zag net dat op pag 65 van het adresboekje ook een tabel staat met alle basic-keywords en adressen voor zowel cassette- als diskbasic.

     

     

×
×
  • Nieuwe aanmaken...