File Name on Disk – WCANPAT.SRC
File
located in folder NateF\Files\ForWheels
NOTE: This info is included for informational purposes only. The patch has already been applied to the Wheels versions of GeoCanvas that are on the CD.
Return to Nate Fiedler Index
Return
to Main Index
; patch for geoCanvas 64/128 to use Wheels' expansion RAM.
;
uses the ca65 assembler, part of the cc65 programming suite.
;
http://www.cc65.org/
.out "Source Code (c) 2001-2002 by Todd S. Elliott"
.include "../include/geos/geossym.inc"
.include
"../include/geos/geossym2.inc"
.include
"../include/geos/diskdrv.inc"
.include
"../include/geos/jumptab.inc"
.include
"../include/geos/const.inc"
.include
"../include/geos/geosmac.ca65.inc"
.include
"../include/geos/wheelsym.inc"
; Patches the 64 and 128 versions of geoCanvas to provide memory
support under Wheels systems.
; Changes the date stamp of each
version from 4/22/94 to 9/2/02 as to differentiate between
; the
old version and the new version.
; This new version requires
Wheels 64 or 128 and requires at least 64Kb of free expansion RAM.
;
The patches are offered 'as is' for the geoCanvas 64 and 128
(4/22/94) versions and have
; absolutely no warranty, implied,
direct or otherwise.
; patch $1631 and $1710 with the following code- (64 version)
;
patch $047a, $1898, & $1995 with the following code- (128
version)
; jmp $4fe7
; patch $3e3d with the following code- (64 version)
; jmp
$3ea4
; patch $3ee3 with the following code- (128 version)
;
jmp $3f4a
; patch $3ddd with the following code- (128 version only)
;
nop:nop:nop (removes copy protection check)
; .org $3ea4 ; 64
version
.org $3f4a ; 128 version
lb3ea4:
lda #(0|64)
jsr GetNewKernal ; Call Wheels'
expansion RAM routines.
jsr GetRAMInfo ; get expansion RAM
information.
lda r2L ; verify RAM availability
beq @1 ; abort
if expansion RAM isn't available
lda r3L ; get RAM bank
; sta
$2410 ; for geoCanvas 64 usage
sta $26b6 ; for geoCanvas 128
usage
lda #$01 ; allocate at least 1 bank
sta r2L
jsr
RamBlkAlloc
txa ; check error
bne @1
ldx #24 ; move the
following routine into high memory
@2: lda lb4fe7,x
sta $4fe7,x
dex
bpl @2
jmp RstrKernal
; swap out Wheels Kernal and exit cleanly
;@1: jmp $3e55 ; 64
version
@1: jmp $3efb ; 128 version
lb4fe7: ; execute at $4fe7 - seems to be a safe place
lda
#(0|64)
jsr GetNewKernal ; get group 0 into memory.
jsr
GetRAMBam ; get the ram bam into the workspace.
; lda $2410 ; get
the expansion RAM bank that geoCanvas 64 has been using
lda $26b6
; get the expansion RAM bank that geoCanvas 128 has been using
sta
r6L ; and free up that bank.
jsr FreeRAMBlock ; and then free it
up.
jsr PutRAMBam ; write the modified ram bam.
jsr RstrKernal
; and restore the kernal and memory.
jmp EnterDeskTop ; and exits
geoCanvas 64
; Enjoy.
; 9/2/02 -Todd Elliott