Reparation av åskskadad Pullmax P209

Berätta om dina pågående projekt.
Användarvisningsbild
carpelux
Inlägg: 1879
Blev medlem: 13 oktober 2007, 12:33:33
Ort: Varnhem

Re: Reparation av åskskadad Pullmax P209

Inlägg av carpelux »

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.
GalFisk
Inlägg: 304
Blev medlem: 11 mars 2006, 23:53:11
Ort: Horndal

Re: Reparation av åskskadad Pullmax P209

Inlägg av GalFisk »

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.
Användarvisningsbild
rvl
Inlägg: 5834
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

Re: Reparation av åskskadad Pullmax P209

Inlägg av rvl »

>> 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. :)
Användarvisningsbild
rvl
Inlägg: 5834
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

Re: Reparation av åskskadad Pullmax P209

Inlägg av rvl »

Testade med https://github.com/maziac/z80dismblr
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.
Användarvisningsbild
rvl
Inlägg: 5834
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

Re: Reparation av åskskadad Pullmax P209

Inlägg av rvl »

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.

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

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

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))
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:

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
8.0 MHz / 64 / 52 = 2.4038 kHz. Råkar händelsevis bithastigheten i seriekommunikationen vara 2400 (eller 1200) bps?
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
GalFisk
Inlägg: 304
Blev medlem: 11 mars 2006, 23:53:11
Ort: Horndal

Re: Reparation av åskskadad Pullmax P209

Inlägg av GalFisk »

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.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
MiaM
Inlägg: 10032
Blev medlem: 6 maj 2009, 22:19:19

Re: Reparation av åskskadad Pullmax P209

Inlägg av MiaM »

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.
Användarvisningsbild
YD1150
Inlägg: 1944
Blev medlem: 29 oktober 2010, 22:41:10

Re: Reparation av åskskadad Pullmax P209

Inlägg av YD1150 »

Motorola hade en grafikkrets som hette MC6847.
MiaM
Inlägg: 10032
Blev medlem: 6 maj 2009, 22:19:19

Re: Reparation av åskskadad Pullmax P209

Inlägg av MiaM »

Sant. Googlade lite snabbt, verkar som att åtminstone Hitachi inte var second source för denna dock.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 6961
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Re: Reparation av åskskadad Pullmax P209

Inlägg av Marta »

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.
Användarvisningsbild
rvl
Inlägg: 5834
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

Re: Reparation av åskskadad Pullmax P209

Inlägg av rvl »

GalFisk skrev: 3 maj 2023, 12:31:32 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.
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.
2400bps.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
GalFisk
Inlägg: 304
Blev medlem: 11 mars 2006, 23:53:11
Ort: Horndal

Re: Reparation av åskskadad Pullmax P209

Inlägg av GalFisk »

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.
Användarvisningsbild
säter
Inlägg: 32582
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Reparation av åskskadad Pullmax P209

Inlägg av säter »

GalFisk skrev: 28 april 2023, 10:25:39 säter: ja, porten på kortet går till en brytare på maskinens frontpanel, som växlar anslutningen mellan dator och kassett.
Bra, då kan du testa den nya porten med bandspelaren.
Jag tänker om den nya datorn och hårdvarulåset inte fungerar som tänkt.
MiaM
Inlägg: 10032
Blev medlem: 6 maj 2009, 22:19:19

Re: Reparation av åskskadad Pullmax P209

Inlägg av MiaM »

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.
MOS 6545 kördes också med 2MHz bussklocka, åtminstone i CBM-II/B-maskinerna.

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.
GalFisk
Inlägg: 304
Blev medlem: 11 mars 2006, 23:53:11
Ort: Horndal

Re: Reparation av åskskadad Pullmax P209

Inlägg av GalFisk »

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.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Skriv svar