Ruud wrote: > You see, enough procedures that have to be given a name yet. That's why > the commented disassembly of the 8032 is needed first: knowing what these > subroutines do will shed a lot of light on the DB ROM routines using these > subroutines. Dr Watson's course in assembly programming for the C64 (Derek Bush & Peter Holmes) has a nice cross-reference memory map at the end with C64, VIC, Basic 2 and Basic 4 addresses. I'm sure other books like PET Revealed, PET Subroutines or some COMPUTE! book might have additional clues. http://commodore.bombjack.org/books/commodore/books/Dr_Watson_C64_Assembler_docs.zip I'll admit I haven't followed this thread very closely. Does the Data Becker replace the regular BASIC V4 ROM with its own BASIC, or are most of the calls you mentioned calls into regular ROM? I'll assume we're talking about a regular 8032 with Basic 4, which according to Dr Watson's listing yields the following hits: .eq P_BB24 = $BB24 No match, but $BB23 is the entry point to OUTSTR, print string pointed to by (INDEX1) of length (A). .eq P_C92D = $C92D GETADR, convert FLPT value in (FAC) to an unsigned integer (0 to 65535) and place result in (LINNUM) and (Y/A). .eq P_C99D = $C99D FADD, floating point addition: (FAC) = MFLPT at (A/Y) + (FAC). .eq P_CB5E = $CB5E FMULT, multiply (FAC) by MFLPT pointed to by (A/Y), answer in FAC. .eq P_CCD8 = $CCD8 MOVFM, load FAC with MFLPT pointed to by (A/Y). .eq P_CD0D = $CD0D No match, but $CD0A is the entry point to MOVMF, store (FAC) into location pointed to by (X/Y). .eq P_CD61 = $CD61 SIGN, find sign of (FAC), result in A - $01 = positive, $00 = zero, $FF = negative. .eq P_CD8E = $CD8E ABS, perform ABS function. .eq P_CD91 = $CD91 FCOMP, compare (FAC) with MFLPT pointed to by (A/Y). Result returned in A: $01 = (FAC) > MFLTP value, $00 = equal, $FF = FAC) < MFLPT .eq P_CF83 = $CF83 NUMPRT, display integer stored in (X/A). .eq P_D534 = $D534 Not found .eq P_E015 = $E015 .eq P_E018 = $E018 .eq P_E01B = $E01B Not found .eq P_F0D5 = $F0D5 LISTNK, OR (A) to convert device number to a LISTEN address for the IEEE bus and transmits this as a command. This is the Kernal routine pointed to by LISTEN ($ED0C on the C64) .eq P_F143 = $F143 .eq P_F1D9 = $F1D9 Not found .eq P_F2E0 = $F2E0 NCLOSE, Close specified file - 64/VIC jump to kernal routine ($E1CA on the C64) .eq P_F563 = $F563 NOPEN, Open specified file - 64/VIC jump to kernal routine ($E1C1 on the C64) Hopefully this will speed up the disassembly a bit. Best regards Anders Carlsson Message was sent through the cbm-hackers mailing listReceived on 2017-09-05 14:00:08
Archive generated by hypermail 2.2.0.