From: Sam on

> At the moment, I can't figure out the problem. I'm not that good. I'm
> working on it a little at a time though..
>
> TIA

Hello DMackey,

The program load's another program (or game) and you have to fill in
the startaddress of that. After that it writes two files to disk:
Eprom-L (Low) and Eprom-H (High). After removing the first two bytes
of each file in a Hex-editor I burn the files in a 64K (27512) Eprom.
That's it.

You can find the program ">152blks" on this page (In German):
http://www.retro-donald.de/pages/hardware/basteleien/64k-modulkarte.php
There is also a layout of the Cartridge board who I use for this. It
works with bankswitching..

I'm also not that good but I think in this case the "RUN" command is
missing somewhere in the program but don't know how and where to place
it..

Regards, SAM
From: Sam on
And more information of the program ">152blks" on this page:
http://www.lemon64.com/forum/viewtopic.php?t=19305&view=next&sid=72e1de2abffb9fc53d1adbd3e3871449

SAM
From: iAN CooG on
Sam <siemappelman(a)quicknet.nl> wrote:
> Hello iAN,
>
> Thanks for the answer. You can find it here:
> http://www.siemappelman.nl/download/cartridge.bin

no file, 404

--
-=[]=--- iAN CooG/HVSC & C64Intros ---=[]=-
C= is better than C++


From: iAN CooG on
Sam <siemappelman(a)quicknet.nl> wrote:

> You can find it here:
> http://www.siemappelman.nl/download/cartridge.zip

ok, checking...
you should look at your files with an hex editor after you built them ;)

00000000: FF FF FF FF-FF FF FF FF-FF FF FF FF-FF FF FF FF
00000010: FF FF FF FF-FF FF FF FF-FF FF FF FF-FF FF FF FF
00000020: FF FF FF FF-FF FF FF FF-FF FF FF FF-FF FF FF FF

there is nothing on the cart where it should, first $4000 bytes are empty
($ff for an eprom burner means do nothing) =)

0000E000: 10 80 5E FE-C3 C2 CD 38-30 48 55 43-4B 59 00 00
0000E010: 8E 16 D0 20-A3 FD 20 50-FD EA EA EA-EA EA 20 15
0000E020: FD 20 5B FF-58 20 53 E4-20 BF E3 A2-FB 9A EA 78

here there's something that should be on the top, the reset vectors and the
CBM80 signature.
you probably swapped the banks or something like that.

here's a disassembly of the cartridge startup code with some comment to let
you understand (I hope) what it does

*= $8000

vartab = $2d
oldlin = $3b
inpptr = $43
eal = $ae
frekzp = $fb
z_src = $fc
z_dst = $fe
vicscn = $0400
vicregx = $d016
bordrclr = $d020
bckgrnd0 = $d021
colormem = $d800

t_8000 .word start

t_8002 .word $fe5e

t_8004 .byte $c3,$c2,$cd,$38,$30

t_8009 .text "HUCKY"

t_800e .byte $00,$00

start stx vicregx
jsr $fda3
jsr $fd50
nop
nop
nop
nop
nop
jsr $fd15
jsr $ff5b
cli
jsr $e453
jsr $e3bf
ldx #$fb
txs ; so far it's the a startup routine similar to
nop ; the one at $fce2, needed at every reset.
sei
lda #$00
sta bordrclr
sta bckgrnd0
jmp g_80e0 ; jumps to the relocation of the following
; code into the screen memory at $0400
nop
nop
nop
nop
nop

l_8040 lda #$00
sta z_src
lda #$88 ; this transfers $8800
sta z_src+1
lda #$00
sta z_dst
lda #$08 ; to $0800
sta z_dst+1
ldx #$18 ; for a total of $1800 bytes.
b_8052 ldy #$00
b_8054 lda (z_src),y
sta (z_dst),y
iny
bne b_8054
inc z_src+1
inc z_dst+1
dex
bne b_8052
nop
nop
nop
lda #$01
sta frekzp
b_8069 sta $de00 ; set next bank in cartridge
lda #$00
sta z_src
lda #$80 ; now copy from $8000 the whole bank
sta z_src+1
ldx #$20
b_8076 ldy #$00
b_8078 lda (z_src),y

sta oldlin ; this could have been written simply:
lda #$34 ; inc $01 ; $37 -> $38, all ram
sta $01 ; sta (z_dst),y
lda oldlin ; dec $01 ; $38 -> $37, normal ram/rom
sta (z_dst),y ;
lda #$37 ;
sta $01 ;

iny
bne b_8078
inc z_src+1
inc z_dst+1
dex
bne b_8076
inc frekzp
lda frekzp
cmp #$08
bne b_8069 ; loops 7 times, to copy all the banks
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cli
nop
nop
nop
lda #$08 ; this most probably disables the cart, letting
sta $de00 ; the memory at $8000-9fff to be visible as ram
nop
nop
nop
nop
nop
nop
nop
lda #<$ac2f ; this sets the end of program memory to $ac2f
sta eal ; which should be the program
sta vartab
lda #>$ac2f
sta eal+1
sta vartab+1
nop
nop
nop
nop
jmp $0810 ; start the program, so it's a packed prg
; starting with sys 2064

t_80d3 .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00

g_80e0 ldx #$00 ; transfer the copy routine from $8040 to $0400
b_80e2 lda l_8040,x
sta vicscn,x
inx
cpx #$a0
bne b_80e2
ldx #$00
lda #$00
b_80f1 sta colormem,x
inx
bne b_80f1
jmp vicscn ; and executes it there

brk
..end


--
-=[]=--- iAN CooG/HVSC & C64Intros ---=[]=-


From: iAN CooG on
Sam <siemappelman(a)quicknet.nl> wrote:

>>> you probably swapped the banks or something like that.
> I don't think so. I've made more cartridges who are working and the
> reset vectors and CBM80 signature are always at address 0000E000.

ok, keep your broken cart then. trying to explain something to lamers is
always a waste of time *shrug*

--
-=[]=--- iAN CooG/HVSC & C64Intros ---=[]=-
RAM DISK is NOT an installation procedure!