Posted By
Gaia on 2006-05-04 09:55:10
| Re: How to make a crt dump
A program like this will take (I have tried it, it does compile with the plus4ide and runs fine, but there still might be minor bugs in it). You can download the pre-built PRG from here.
ORG $1001 - 2 DW $1001 V_1001 DB $0C, $10, $00, $00 DB $9E,"4109" BASEND DB $00, $00, $00 ; ; Main program ; SEI STA $FF3E ; make sure ROMs are enabled LDX #$03 ; initial bank to try STX $96 l4 LDA $96 ASL A ASL A ; shift left twice (*4) ORA $96 ; make sure ROMs are banked in pairs TAX ; use as index for banking STA $FDD0,X ; bank in ROM slot LDY #$02 l3 LDA $8007,Y ; read "CBM" signature CMP $FC56,Y ; does it match? BNE l2 ; no... DEY ; check next char of 'CBM' string BPL l3 ; not finished yet? BMI copy ; jump always l2 DEC $96 ; set next bank number BNE l4 ; repeat until $96 = 0 endit STA $FDD0 ; set back the standard BASIC and KERNAL CLI RTS ; ; Copy current ROM from $8000-$FFFF to RAM at $4000-$BFFF ; copy LDA #$80 TAY STA loop+2 LDA #$40 STA loop+5 l5 LDX #$00 loop LDA $8000,X STA $4000,X DEX BNE loop INC loop+2 INC loop+5 DEY BPL l5 JMP endit ;
The program begins with the upper slots and checks if there's a ROM in the given slot pair. If it finds one, it'll copy it to the RAM at $4000-$BFFF. That you can save in monitor to disk. If you want to investigate the contents first in monitor, turn on RAM in TEDMON by putting a value of $FF to address $07F8. There are values that are not belonging to the ROM, because the areas $FC00-$FF1F and $FF3E-$FF3F can not be banked out, but it's probably trash anyway.
|