[zxspectrum] Re: R: Re: Riguardavo le Better Bytes Utility Disc x

  • From: Enrico Maria Giordano <e.m.giordano@xxxxxxxxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Sun, 22 Mar 2015 18:38:18 +0100



Il 22/03/2015 18:04, Stefano Bodrato ha scritto:

Se comprendo bene il disassemblato del Discovery l'ultima "AND A"
potrebbe rispondere alla tua domanda.
Se ricordo bene il tuo codice si basa sulla stessa call, anche se non è
troppo evidente.

1191 LOAD_NEXT LD   H,B               HL := current block.
               LD   L,C
               INC  BC                BC := next block.
               LD   (5C9E),BC         Store it in the descriptor
               LD   BC,+0200          Signal: load a full block.
               LD   A,(IX+07)         A := drive-number.
               PUSH DE                DE = startaddress to load.
               CALL 0FE5,CAL_PHY      Load the block.
               POP  HL                HL := startaddress to load
               LD   C,(IX+12)         BC := block-size.
               LD   B,(IX+13)
               ADD  HL,BC             HL := new startaddress.
               EX   DE,HL             Pass it to DE.
               AND  A                 Signal: success.
               RET

Uhm... io però questo test non so neanche dove metterlo perché la lettura del settore è fatta così:

RDS CALL 5896
    LD   A,1
    LD   B,2
    LD   C,0
    LD   HL,(SCT)
    LD   DE,STA
    CALL CPH
    JP   5960

Non mi chiedere dove la trovai a suo tempo, però funziona benissimo. Come vedi termina con una jump e non so se si può mettere qualcosa tra CALL CPH e la jump, come ad esempio:

    CALL CPH
    AND  A
    JR   NZ,ERR
    JP   5960

o qualcosa di simile. Il problema è che non avendo l'Opus non posso fare prove e se non trovo qualcosa di sicuro mi sa che è impossibile per me implementare questo controllo dell'errore... :-(

EMG

--
EMAG Software Homepage: http://www.emagsoftware.it
The EMG Music page: http://www.emagsoftware.it/emgmusic
The EMG's ZX-Spectrum Page: http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: http://www.emagsoftware.it/tbosg

Other related posts: