@Zyga - dzięki za wrzut. wszystko jest cacy
@Wegi - co do tego sterowania cartridge`m to masz racje, ale zacznę od
początku..
Najpierw za pomocą mdump zgrałem rom carta (zgrał mi się cały obszar $8000-bfff). Na początku byłem lame i myślałem, że plus to cart 16K, który podmienia oryginalny rom basica (dodatkowo zmyliła mnie końcowka nazwy eprom`a) ale doczytałem to i owo ;P
przejrzałem zgrany plik pod hexedytorem
i rzeczywiście Wegi, pierwsze 2K było trzykrotnie powtórzone w pozostałych 6K pierwszego 8K bloku. Wywaliłem zbędne 14K. Dodatkowo zrobiłem sobie 8K bina dla VICE.
Po odpaleniu w emu okazało się, że nie wszystko jest ok - tzn funkcje carta działały ale nie można było
np wgrać katalogu dysku. Zauważyłem też, że cart się nie wyłącza.
Asemblera znam na tyle, że pod monitorem udało mi sie jedynie stwierdzić, że
po paru skokach (standardowe IOINIT, RANTAS etc) robi coś na stronie zerowej, zmienia wektory itp a na końcu skacze
pod przygotowane wczesniej $02d5.
Tam znalazłem STA $DE00
i było to jedyne odwołanie, do I/O1, jakie znalazłem. Założyłem, że
właśnie tutaj cart powinien zostać wyłączony.
w opisie formatu crt
http://ist.uwaterloo.ca/~schepers/formats/CRT.TXT\' target=_blank>
http://ist.uwaterloo.ca/~schepers/formats/CRT.TXT znalazłem podobnego cartridge`a (tj 19. Magic Desk) który jest wyłączany, gdy $DE00 = $80.
Cała moja przeróbka jest wiec w skali mikro, bo tak:
.C:8089 A9 E5 LDA #$E5
.C:808b 8D D6 FD STA $FDD6
.C:808e 20 22 E4 JSR $E422
.C:8091 4C D5 02 JMP $02D5
.C:8094 AC 80 00 LDY $0080
.C:8097 E1 C5 SBC ($C5,X)
.C:8099 03 72 SLO ($72,X)
.C:809b 84 D5 STY $D5
.C:809d 02 JAM
.C:809e 2A ROL A
1.JMP $02d5 zamieniłem na JMP $9ffb (może nie potrzebnie tak daleko)
2.a tam z kolei czeka LDA #$80 i pominięte JMP $02d5
3.szybka konwersja mcart`em (przełącznik -md) i okazało się, że śmiga