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.
  |