[Coco] Pyramid-2000 and Re: Cassette I/O Error Question

George Ramsower georgeramsower at gmail.com
Mon Feb 18 21:00:02 EST 2008


From: "Robert Gault"

> George Ramsower wrote:
>> I'm reminded of a question I had years ago about loading and saving 
>> machine language programs... At one time, I knew the peeks to find the 
>> start/end/execution addresses. Now I don't.
>> How about the "auto execute programs"? How woud you copy those?
>>
>> If you cloadm a program... errors or not, how do you csavem that same 
>> program to make a backup copy? Better yet, how would you save it to disk?
>>
>> I think this is a critical issue at this point in time.
>>
>> George
>>
>> ps: I would love to play some of those old text adventure games again. My 
>> tapes have all been wasted due to time.
>>
>>
>
> Start address:  PRINT PEEK(487)*256+PEEK(488)
> End address:    PRINT PEEK(126)*256+PEEK(127)
> EXEC address:   PRINT PEEK(157)*256+PEEK(158)
>
> So, CLOADM the program, find the above addresses, and see where the 
> program loads. If the program does not clobber the Disk system from 
> $600-$DFF, then you can just do the CLOADM with the disk controller 
> working and then SAVEM"Name",start,end,exec. However, the game may still 
> not run under a disk system as it may expect Extended Basic interrupt 
> vectors not Disk Basic vectors.
>
> The process gets more involved if the game clobbers the disk system in low 
> RAM. Then you will need to relocate the game during the CLOADM process and 
> create an ml program to shift it into the required location after a disk 
> load. Let's take the specific game Pyramid-2000 as an example.
>
> Pyramid-2000 loads at $600 and trashes the disk system. It also needs the 
> interrupt vectors altered. So here is how I have moved the game to a disk 
> system.
>
> Boot into a Disk system, setup the tape, and enter the following.
> 10 WIDTH32
> 20 PCLEAR8
> 30 CLOADM"",&H800
> 40 SAVEM"PYRAMID",&HE00,&H4721,0
>
> The above will free low RAM for the game, load it with an offset, and save 
> it to disk. You could also PCLEAR0 and load the game above Basic if there 
> is room.
>
> Now to get the game to run you need the following ml program, RELOC.BIN.
>  org $7d00
> start ldx #$e00
>  ldy #$600
> a@ ldd ,x++
>  std ,y++
>  cmpx #$7421
>  blo a@
>  ldx #$894c
>  stx $10d
>  ldx #$a0f6
>  stx $110
>  jmp $600
>  end start
>
> You LOADM"PYRAMID":LOADM"RELOC":EXEC
>
> If the tape game is an auto-start type, an offset CLOADM will prevent the 
> auto-start from working. However, there could be memory corruption 
> depending on where the auto-start routine ends up. It's a crap shoot where 
> success will be trial and much error.
>
> --
Thanks for the input. I asked this for the benifit of Charles Shrader who 
may be able to use this info, since he is dealing with tapes.

 My tapes are history. Darn.

George 




More information about the Coco mailing list