Okay... was ich bis jetzt gefunden habe ist das hier:
https://www.cpcwiki.eu/index.php/Programming:Reading_a_sector_from_a_discIch habe schon gemerkt, dass bei dem Spiel, welches ich reverse engineere, anscheinend die Lesezugriffe am BIOS vorbei getaegigt werden.
Ansonsten haette ein Breakpoint auf die entsprechende Funktion getriggert.
Anscheinend ist es wohl so, dass beim Amstrad einige RST Vektoren ueberschrieben werden koennen?
Das geht wohl so:
1. Man laedt die "Nummer"(keine Ahnung wie die Nomenklatur genau ist... sorry) in den speicher. Und legt die Adresse auf diese "Nummer" in das Register HL.
2. Man fuehrt einen CALL BCD4 aus
3. Man erhaelt eine Adresse im Register HL zurueck.
4. Man speichert die drei bytes ab diesem Register an einer anderen Stelle im Speicher, sagen wir 1337.
5. Man fuehrt anschliessend irgendwann spaeter ein RST 3 1337 aus.
Das ruft dann direkt den entsprechenden Interrupt zum Sektorenlesen aus.
Soweit so gut....
NUR: Wo sind diese "Nummern" dokumentiert?
Im Disassembler habe ich folgendes gesehen:
l0040h:
ld a,040h ;0040 3e 40 > @
ld (la127h+1),a ;0042 32 28 a1 2 ( .
xor a ;0045 af .
ld (l0df7h),a ;0046 32 f7 0d 2 . .
l0049h:
ld (l0538h),a ;0049 32 38 05 2 8 .
ld hl,l0e04h ;004c 21 04 0e ! . .
ld (l0534h),hl ;004f 22 34 05 " 4 .
call sub_bb4eh ;0052 cd 4e bb . N .
xor a ;0055 af .
call 0bd5bh ;0056 cd 5b bd . [ .
ld a,0c3h ;0059 3e c3 > .
ld (l0030h),a ;005b 32 30 00 2 0 .
ld hl,l093ah ;005e 21 3a 09 ! : .
ld (l0030h+1),hl ;0061 22 31 00 " 1 .
l0064h:
jr l008eh ;0064 18 28 . (
ld hl,l0df8h ;0066 21 f8 0d ! . .
call sub_bcd4h ;0069 cd d4 bc . . .
ld (l0e06h),hl ;006c 22 06 0e " . .
ld hl,l0e08h ;006f 21 08 0e ! . .
ld (hl),c ;0072 71 q
ld c,0c1h ;0073 0e c1 . .
ld b,07fh ;0075 06 7f . ^?
di ;0077 f3 .
out (c),c ;0078 ed 49 . I
ld de,lfe00h ;007a 11 00 fe . . .
ld hl,l1130h ;007d 21 30 11 ! 0 .
was machen diese beiden anderen obskuren funktionen bb4e und bd5b?
Weiterhin: In dem Beispiel oben habe ich einen rst 3 gesehen, in meinem Disassemblierten code taucht aber nirgendwo ein RST 3 auf. Was hat es damit auf sich?