[zxspectrum] IF1 ROM

  • From: "Alessandro" <apoppi@xxxxxxxx>
  • To: <zxspectrum@xxxxxxxxxxxxx>
  • Date: Sun, 3 Jun 2007 18:17:14 +0200

Ciao,
mi stavo studiando la rom dell'interfaccia I per vedere se ho qualche possibilita` di usare due banchi da 16K della flashrom per implementarne una versione che faccia a meno del "page".

L'idea e` quella di mettere una rom sinclair gommosa in un banco e la rom IF1 nell'altro (mi restano 8K liberi nel secondo banco), poi vedere se intervenendo il meno possibile posso far saltare l'esecuzione da una all'altra come se l'hardware eseguisse una vera paginazione.

La rom IF1 viene attivata su opcode fetch a $0008 e $1708
La rom originale viene attivata su opcode fetch a $0700.

Chiedo agli esperti di emulatori se per caso mi sta sfuggendo qualche altro indirizzo.

La cosa piu` ostica e` la $700, che contiene un RET (C9) e contestualmente salta nell'altra rom, perche` non c'e' poi nemmeno un byte libero (a $701 inizia altra roba che forse e` meglio non muovere). Pero` ci sono una trentina di bytes liberi prima di $700. Dato che 701 contiene un RST 10, che e` $D7, potrei mettere un JR ($18) su $700 in modo da far saltare indietro. Purtroppo salta in un punto in cui c'e' roba, ma visto che non e` referenziata da alcuna label e probabilmente nessun programma fa riferimento alla coda di una routine, potrei muovere avanti qualche byte e recuperare lo spazio che mi serve grazie a quello libero subito dopo. Oltretutto ho a disposizione mezzo banco (8K) completamente libero per eventuali pocci.

Il resto e` invece tutto da vedere, ma questa possibilita` di risolvere il problema $700 (se non sto dimenticando qualcosa) mi sta facendo venire voglia di andare avanti.

Ciao!


Other related posts: