Reparation av åskskadad Pullmax P209
Re: Reparation av åskskadad Pullmax P209
Jag tog även en titt i skrotlådan, och där fanns det ett kort med en DS14C89AN. Tog loss och testade det och det fungerar.
Om du vill så skickar jag det till dig, PM med adress.
Om du vill så skickar jag det till dig, PM med adress.
Re: Reparation av åskskadad Pullmax P209
rvl: intressant att se vad koden gör, posta gärna mer sånt om du gräver vidare. Vad använder du för disassembler?
säter: ja, porten på kortet går till en brytare på maskinens frontpanel, som växlar anslutningen mellan dator och kassett.
carpelux: tack så mycket, återkommer med resultat.
säter: ja, porten på kortet går till en brytare på maskinens frontpanel, som växlar anslutningen mellan dator och kassett.
carpelux: tack så mycket, återkommer med resultat.
Re: Reparation av åskskadad Pullmax P209
>> Vad använder du för disassembler?
Det var rent handarbete, så får nog gräva fram nån disassembler, om det ska bli väsentligt mycket mer.
Det var rent handarbete, så får nog gräva fram nån disassembler, om det ska bli väsentligt mycket mer.

Re: Reparation av åskskadad Pullmax P209
Testade med https://github.com/maziac/z80dismblr
IN och OUT finns på följande adresser:
IN och OUT finns på följande adresser:
Kod: Markera allt
5B08 out (0017h),a ; 23
5D52 out (0012h),a ; 18
5D87 out (c),a ; 8034h RAM
5D8A out (c),a ; 8034h RAM
5D94 out (c),a ; 8034h RAM
5DC0 out (c),a ; 8034h RAM
5DCE out (c),a ; 8034h RAM
5E2F out (0012h),a ; 18
5E42 out (c),d ; 5EC5h... (18,35,67,32,33,64,65)
7857 out (0012h),a ; 18
79F1 out (0022h),a ; 34
79F4 out (0022h),a ; 34
7A1C out (0042h),a ; 66
7A1F out (0042h),a ; 66
7A3F out (0012h),a ; 18
7A59 out (0002h),a ; 2
7A69 out (c),d ; 7CB6h... (1,3,4,5,6,7,12,13,19,23,18,35,67,32,33,64,65)
5B10 in a,(0014h) ; 20
5DC4 in l,(c) ; RAM
5DC6 in h,(c)
5DD3 in e,(c)
5DD5 in d,(c)
7806 in a,(0011h) ; 17
78B9 in a,(0011h) ; 17
78C5 in a,(0010h) ; 16
7908 in a,(0011h) ; 17
792A in a,(0019h) ; 25
7935 in a,(001Ah) ; 26
7940 in a,(001Bh) ; 27
794B in a,(001Ch) ; 28
7956 in a,(0020h) ; 32
7959 in a,(0020h) ; 32
7966 in a,(0021h) ; 33
7969 in a,(0021h) ; 33
7987 in a,(0040h) ; 64
798A in a,(0040h) ; 64
7997 in a,(0041h) ; 65
799A in a,(0041h) ; 65
79AF in a,(0011h) ; 17
79C6 in a,(0019h) ; 25
79CB in a,(001Ah) ; 26
79D0 in a,(0019h) ; 25
79FB in a,(001Ah) ; 26
7A2E in a,(0011h) ; 17
7A47 in a,(0003h) ; 3
7A4D in a,(0002h) ; 2
7A52 in a,(0003h) ; 3
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Reparation av åskskadad Pullmax P209
Det finns fler OUT instruktioner som inte kom med i den första disassembleringen, när disassemblern tolkade koden som data. Detta på grund av att koden kallas med ett litet enkelt trick.
Notera:
push hl
ret
Så till exempel här finns ett gäng med OUT (NN), A edit: JUMP (D3 är OUT, C3 är JUMP). Hursom, så hoppar det ut i tillsvidare okartlagd kod.
Har förutom SIO identifierat CTC och CPU. Bredvid CPUn sitter en komponent vars poweranslutnigar stämmer in på 6845/6545 för CRT-videogenerereing.
Efter RAM-check med två enkla komplementära bitmönster kollas en simpel checksumma för EPROM-data mellan 0x0100 och 0x7EFF och den (0xE9) ser ut att stämma.
7CB6-7D59 innehåller data (turvis data och port tills det blir FFh) för OUT instruktioner tidigt efter reset.
Detta kunde vara initiering av CTC:
8.0 MHz / 64 / 52 = 2.4038 kHz. Råkar händelsevis bithastigheten i seriekommunikationen vara 2400 (eller 1200) bps?
Kod: Markera allt
; Subroutine: Size=55, CC=11.
; Called by: SUB010[20B7h].
; Calls: -
6570 SUB095:
6570 ld b,01h ; 1
6572 jr .sub095_l1 ; 6582h
; Subroutine: Size=55, CC=11.
; Called by: LBL06[04B7h].
; Calls: -
6574 SUB096:
6574 ld b,02h ; 2
6576 jr .sub095_l1 ; 6582h
; Subroutine: Size=55, CC=11.
; Called by: SUB014[2131h].
; Calls: -
6578 SUB097:
6578 ld b,03h ; 3
657A jr .sub095_l1 ; 6582h
; Subroutine: Size=55, CC=11.
; Called by: SUB027[47D7h], LBL12[07E9h], LBL15[0929h].
; Calls: -
657C SUB098:
657C ld b,04h ; 4
657E jr .sub095_l1 ; 6582h
; Subroutine: Size=53, CC=11.
; Called by: LBL04[027Dh], LBL10[05CCh].
; Calls: -
6580 SUB099:
6580 ld b,05h ; 5
6582 .sub095_l1:
6582 pop hl
6583 ld de,0003h ; 3
6586 ld a,(DATA045) ; 8052h
6589 cp 01h ; 1
658B jr z,.sub095_l3 ; 65B3h
658D add hl,de
658E dec b
658F jr z,.sub095_l2 ; 65AEh
6591 cp 02h ; 2
6593 jr z,.sub095_l3 ; 65B3h
6595 add hl,de
6596 dec b
6597 jr z,.sub095_l2 ; 65AEh
6599 cp 04h ; 4
659B jr z,.sub095_l3 ; 65B3h
659D add hl,de
659E dec b
659F jr z,.sub095_l2 ; 65AEh
65A1 cp 08h ; 8
65A3 jr z,.sub095_l3 ; 65B3h
65A5 add hl,de
65A6 dec b
65A7 jr z,.sub095_l2 ; 65AEh
65A9 cp 10h ; 16
65AB jr z,.sub095_l3 ; 65B3h
65AD add hl,de
65AE .sub095_l2:
65AE cp 20h ; 32, ' '
65B0 jr z,.sub095_l3 ; 65B3h
65B2 add hl,de
65B3 .sub095_l3:
65B3 push hl
65B4 ret
push hl
ret
Så till exempel här finns ett gäng med OUT (NN), A edit: JUMP (D3 är OUT, C3 är JUMP). Hursom, så hoppar det ut i tillsvidare okartlagd kod.
Kod: Markera allt
07E9 call SUB098 ; 657Ch
07EC jp LBL13 ; 07FEh
07EF defb C3h ; 195, -61 JP 080Dh
07F0 defb 0Dh ; 13 *
07F1 defb 08h ; 8
07F2 defb C3h ; 195, -61
07F3 defb 1Ch ; 28 *
07F4 defb 08h ; 8
07F5 defb C3h ; 195, -61
07F6 defb 2Bh ; 43, '+' *
07F7 defb 08h ; 8
07F8 defb C3h ; 195, -61
07F9 defb 47h ; 71, 'G' *
07FA defb 05h ; 5
07FB defb C3h ; 195, -61
07FC defb E6h ; 230, -26 *
07FD defb 07h ; 7
Kod: Markera allt
"""
; Data accessed by:
; 00ACh(in SUB001)
00FF DATA002:
00FF defb E9h ; 233, -23 CORRECT ( 3870697 % 256 )
"""
ep0 = 'P1mmgas.bin'
ep1 = 'P2gas.bin'
with open(ep0, 'b+r') as f:
rom = f.read()
with open(ep1, 'b+r') as f:
rom += f.read()
a=0
i=0x0100
while i<0x7f00:
a += rom[i]
i += 1
print(hex(a%256))
Detta kunde vara initiering av CTC:
Kod: Markera allt
7CDE defb 00h ; 0 0000 0000
7CDF defb 04h ; 4
7CE0 defb 45h ; 69, 'E' 0100 0101
7CE1 defb 04h ; 4
7CE2 defb 34h ; 52, '4' 0011 0100
7CE3 defb 04h ; 4
7CE4 defb 45h ; 69, 'E' 0100 0101
7CE5 defb 05h ; 5
7CE6 defb 34h ; 52, '4' 0011 0100
7CE7 defb 05h ; 5
7CE8 defb 25h ; 37, '%' 0010 0101
7CE9 defb 06h ; 6
7CEA defb 80h ; 128, -128 1000 0000
7CEB defb 06h ; 6
7CEC defb 45h ; 69, 'E' 0100 0101
7CED defb 07h ; 7
7CEE defb 04h ; 4 0000 0100
7CEF defb 07h ; 7
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Reparation av åskskadad Pullmax P209
Intressant, särskilt identifikationen av olika kretsar på kortet.
PC pratar med styrboxen/"dongeln" med en signal på 2-3 kHz, så 2.4 kHz låter rimligt.
Jag pillade lite själv med Reko decompiler och såg allt det där I/O-andet nära slutet.
Här är PC-programvaran (både demoversionen och fullversionen) bifogad ifall någon vill pilla i den också. Ska man köra den behöver COM-filen laddas förstc, därav BAT-filerna. Det är en TSR som såvitt jag förstått reserverar 16k RAM och skriver några värden här och där i det reserverade minnet. EXE-filerna har dekomprimerats med exepack för att vara lättare att dekompilera.
PC pratar med styrboxen/"dongeln" med en signal på 2-3 kHz, så 2.4 kHz låter rimligt.
Jag pillade lite själv med Reko decompiler och såg allt det där I/O-andet nära slutet.
Här är PC-programvaran (både demoversionen och fullversionen) bifogad ifall någon vill pilla i den också. Ska man köra den behöver COM-filen laddas förstc, därav BAT-filerna. Det är en TSR som såvitt jag förstått reserverar 16k RAM och skriver några värden här och där i det reserverade minnet. EXE-filerna har dekomprimerats med exepack för att vara lättare att dekompilera.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Reparation av åskskadad Pullmax P209
6845/6545 är nog en väldigt bra gissning. Känner inte till nån annan krets med snarlik pinout.
6845 var väl den enda bygga-egen-videogrej-krets som verkligen var garanterat tillräckligt tillgänglig för denna typ av bygge, alltså garanterat att den går att köpa under överskådlig tid och att det finns en säker second source osv.
Sidospår:
Jag kan på sätt och vis förstå att tillverkare av andra kretsar inte var sugna på att sälja dem till generella applikationer för de använde dem i sina egna produkter och/eller hade kanske avtal med vissa storkunder. Men de skjöt sig nog i foten en del, de kunde sålt sina kretsar men till ett pris som varit lönsamt för den som t.ex. byggde industriprylar, men som varit för dyrt för att konkurrera på hemdatormarknaden. 6845 sparade visserligen in ett helt gäng räknare, komparatorer osv jämfört med att bygga med diskret logik, men man behövde ändå mux:ar, skiftregister, separat teckengenerator-ROM-krets med mera. Som jämförelse så fanns t.ex. TMS 9918/9928/9929 som satt i Texas TI 99/4A, Colecovision, Spectravideo, MSX och kanske fler maskiner. Den ansluts till processorns buss rakt av, på andra ben på denna krets ansluts dram för bildminnet och man får ut kompositvideo (NTSC) eller komponentvideo (PALversionen av kretsen). Visst, i en applikation som detta så hade det varit onödigt dyrt att ha minsta rimliga sortens dram och den indirekta adresseringen av bildminnet var väl en nackdel för mjukvaran, men den förenklade hårdvaran hade varit guld i detta fall.
Skulle säga att Commodore hade säkerligen kunnat sälja kretsar till denna typ av applikation ifall de sålt VIC-II separat. Fast då har ju en kund problemet med avsaknad av second source, och jag tvivlar på att Commodore hade varit intresserade av att göra batcher av kretsar som garanterat uppfyller industriella kvalitetskrav.
6845 var väl den enda bygga-egen-videogrej-krets som verkligen var garanterat tillräckligt tillgänglig för denna typ av bygge, alltså garanterat att den går att köpa under överskådlig tid och att det finns en säker second source osv.
Sidospår:
Jag kan på sätt och vis förstå att tillverkare av andra kretsar inte var sugna på att sälja dem till generella applikationer för de använde dem i sina egna produkter och/eller hade kanske avtal med vissa storkunder. Men de skjöt sig nog i foten en del, de kunde sålt sina kretsar men till ett pris som varit lönsamt för den som t.ex. byggde industriprylar, men som varit för dyrt för att konkurrera på hemdatormarknaden. 6845 sparade visserligen in ett helt gäng räknare, komparatorer osv jämfört med att bygga med diskret logik, men man behövde ändå mux:ar, skiftregister, separat teckengenerator-ROM-krets med mera. Som jämförelse så fanns t.ex. TMS 9918/9928/9929 som satt i Texas TI 99/4A, Colecovision, Spectravideo, MSX och kanske fler maskiner. Den ansluts till processorns buss rakt av, på andra ben på denna krets ansluts dram för bildminnet och man får ut kompositvideo (NTSC) eller komponentvideo (PALversionen av kretsen). Visst, i en applikation som detta så hade det varit onödigt dyrt att ha minsta rimliga sortens dram och den indirekta adresseringen av bildminnet var väl en nackdel för mjukvaran, men den förenklade hårdvaran hade varit guld i detta fall.
Skulle säga att Commodore hade säkerligen kunnat sälja kretsar till denna typ av applikation ifall de sålt VIC-II separat. Fast då har ju en kund problemet med avsaknad av second source, och jag tvivlar på att Commodore hade varit intresserade av att göra batcher av kretsar som garanterat uppfyller industriella kvalitetskrav.
Re: Reparation av åskskadad Pullmax P209
Sant. Googlade lite snabbt, verkar som att åtminstone Hitachi inte var second source för denna dock.
Re: Reparation av åskskadad Pullmax P209
Hitachi hade även en egen som hette 6345/6445 för motorola/intel. Den hade tristate på adresserna, som kunde användas som alternativ till data selectors.
Den fanns också för lite högre bus klocka. 2MHz för motorola. Intel-versionen var 4MHz. Teckenklockn 4.5MHz på alla.
Den fanns också för lite högre bus klocka. 2MHz för motorola. Intel-versionen var 4MHz. Teckenklockn 4.5MHz på alla.
Re: Reparation av åskskadad Pullmax P209
AD-omvandlaren har sin text kvar och verkar inte kräva nån initialisering, utan den börjar automatiskt i tur och ordning fylla ett 8x8 bit dualport-RAM med omvandlingar, bara den först vaknar ordentligt. Och så är där en 8255 (det är väl inte hål på den strax under texten?) vid IDC-kontakten, så det är rimligt att anta att den slipade grannen på andra sidan kontakten också är en sån.
Reko var en ny bekantskap, testade den på DOS-programmet, men tror inte jag ska gräva så mycket där.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Reparation av åskskadad Pullmax P209
Inget hål på 8255:an, bara lite damm som ser konstigt ut på fotot.
Jag gillar Reko för att den är enkel, men ogillar den för att man inte kan exportera eller kopiera koden den visar, och ibland kraschar den.
Jag har använt debuggern Insight (https://www.bttr-software.de/products/insight/) som är trevlig. Jag skulle vilja använda Dosbox' egen debugger istället, då den kan köra i ett eget fönster bredvid programmet självt, men det är dåligt med dokumentation kring den så den är svårare att använda.
Kretsen har kommit i posten, men jag har inte tid att byta den förrän om ca. en vecka. Den ska få sitta i en IC-sockel, så den kan bytas lättare ifall något liknande skulle hända i framtiden.
Jag gillar Reko för att den är enkel, men ogillar den för att man inte kan exportera eller kopiera koden den visar, och ibland kraschar den.
Jag har använt debuggern Insight (https://www.bttr-software.de/products/insight/) som är trevlig. Jag skulle vilja använda Dosbox' egen debugger istället, då den kan köra i ett eget fönster bredvid programmet självt, men det är dåligt med dokumentation kring den så den är svårare att använda.
Kretsen har kommit i posten, men jag har inte tid att byta den förrän om ca. en vecka. Den ska få sitta i en IC-sockel, så den kan bytas lättare ifall något liknande skulle hända i framtiden.
Re: Reparation av åskskadad Pullmax P209
MOS 6545 kördes också med 2MHz bussklocka, åtminstone i CBM-II/B-maskinerna.Marta skrev: ↑4 maj 2023, 08:23:22Hitachi hade även en egen som hette 6345/6445 för motorola/intel. Den hade tristate på adresserna, som kunde användas som alternativ till data selectors.
Den fanns också för lite högre bus klocka. 2MHz för motorola. Intel-versionen var 4MHz. Teckenklockn 4.5MHz på alla.
Undrar hur tristatevarianten var tänkt att använda, hade 680x-processorerna tristate?
Jämför att MOS/Commodore tog fram 6510 med flera mestadels som en 6502-kompatibel processor med tristate på adress- och dataledningar, för att kunna användas ihop med VIC-II som också har tristate. Som bonus så behövdes I/O-kretsar som matchade den något ändrade timingen varpå de också tog fram 6526-kretsarna.
Re: Reparation av åskskadad Pullmax P209
Nu är chippet bytt och kortet åter i maskinen. Datorn tycker fortfarande att boxen inte är ansluten, och oscilloskopet jag hade med hade slut på batteri, så jag kikar mer på det problemet till veckan. Läraren som har hand om maskinen ska då även kolla om man kan spara program på kassett, och förhoppningsvis snurrar bandspelaren som den ska.
Här kommer lite bilder jag tog åt er på forumet när jag var där.
Här kommer lite bilder jag tog åt er på forumet när jag var där.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.