Login
Back to forumSee the full topicGo to last reply

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.



Back to top


Copyright © Plus/4 World Team, 2001-2024. Support Plus/4 World on Patreon