Ciao a tutti,
giorni fa ho aperto un nuovo topic sulla sezione Aiuto e Domande, sperando che qualcuno sapesse il motivo per cui non riesco a caricare il gioco 'Cave of the word wizard' sul mio 1541 ultimate II plus. Detto questo ho deciso di aprire un nuovo topic qui, perché alla fine vorrei entrare un po' più nei dettagli tecnici (codice assembly), sperando che ci sia qualcuno che se ne intende.
Partirò dai dettagli:
Vorrei caricare il suddetto gioco, la versione GB64, sul mio 1541UII+. Il file da caricare è 'cave of word wiz', il primo file che trovo all'interno dell'immagine del primo disco. Questo file tenta di caricarne un secondo, 'boot1', ma secondo me non riesce a trovarlo.
Allora ho disassemblato il codice e sono andato a vedere che tipo di caricamento fa, ed ho visto che si tratta di una classica kernel load (SETLFS, SETNAM, LOAD). Mi sono accorto che il device 8 è cablato dentro il codice, per cui, volessi caricare il gioco da unità 9, otterrei la risposta DEVICE NOT PRESENT. Di seguito la chiamata:
LDA #$93
JSR $FFD2
LDA #$06
STA $D020
STA $D021
STA $0286
LDA #$08
LDX #$08
LDY #$01
JSR $FFBA
LDA #$08
LDX #$60
LDY #$01
JSR $FFBD
LDA #$00
LDX #$00
LDY #$40
JSR $FFD5
JMP $8408
Su vice 3.1, se trascino l'immagine D64 su di esso, il gioco carica. Se invece monto l'immagine, faccio LOAD"$",8 e poi LOAD"*",8,1 non funziona, sia abilitando l'opzione true drive emulation, sia disabilitandola.
Facendo il dump della memoria da vice riesco a vedere il file che tenta di caricare 0:BOOT1.
0161: $30 048 '0'
0162: $3A 058 ':'
0163: $42 066 'B'
0164: $4F 079 'O'
0165: $4F 079 'O'
0166: $54 084 'T'
0167: $31 049 '1'
0168: $2A 042 '*'
Ho sostituito il device 8 con il più conveniente $BA e riassemblato il codice, ma la situazione è sempre la stessa. Qualche idea?