Welcome, Guest. Please login or register.

Author Topic: C64 Basic Upgrade  (Read 20745 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline LoadWB

  • Hero Member
  • *****
  • Join Date: Jul 2006
  • Posts: 2901
  • Country: 00
    • Show all replies
Re: C64 Basic Upgrade
« on: March 21, 2013, 05:04:05 AM »
What exactly do you want?  There were a whole mess of BASIC extensions available back in the day.  Some hid under ROM.  Most of them added new commands, one popular extension being a DOS wedge.  I remember one in particular published in COMPUTE! called BASIC 7 (or BASIC 6; the memory fails) which added a bunch of C128 BASIC-like commands and shortcuts, including programmable f-keys.
 

Offline LoadWB

  • Hero Member
  • *****
  • Join Date: Jul 2006
  • Posts: 2901
  • Country: 00
    • Show all replies
Re: C64 Basic Upgrade
« Reply #1 on: March 29, 2013, 02:28:53 PM »
The limited amount of available RAM in the C64 is only apparent to basic BASIC programs.  Using ML purely (or even in concert with BASIC) you can swap out the BASIC ROM and "open up" 4k of RAM.  You can also swap out I/O space for another 4k.  If you can get away with it, you can swap out the Kernal for yet another 4k.  Some memory has to be set aside for color and video memory; no biggie.

I wrote a BBS program which uses RAM under ROM and I/O for various tasks and modules.  The trick is to make sure you don't have a particular ROM swapped out when you decide to use a routine contained within (like floating point math while BASIC is out or disk access routines while Kernal is swapped out) or attempt to access I/O devices with that space swapped out.

If you've never programmed the 64 in machine language/assembly, you're missing out.  It's a ton of fun manipulating the hardware and running "on the metal."
 

Offline LoadWB

  • Hero Member
  • *****
  • Join Date: Jul 2006
  • Posts: 2901
  • Country: 00
    • Show all replies
Re: C64 Basic Upgrade
« Reply #2 on: April 03, 2013, 01:08:32 AM »
Quote from: ChaosLord;731037
FYI all 64K of the C64's RAM is accessible.  I wrote lots of BASIC programs and I always used all 64K of RAM.

The 38911 byte limit is only for newbs :)


TECHNICALLY all but two bytes are accessible.  $00 and $01 are on-chip registers on the 6510. :D
 

Offline LoadWB

  • Hero Member
  • *****
  • Join Date: Jul 2006
  • Posts: 2901
  • Country: 00
    • Show all replies
Re: C64 Basic Upgrade
« Reply #3 on: April 06, 2013, 12:20:37 AM »
Quote from: LoadWB;730710
The trick is to make sure you don't have a particular ROM swapped out when you decide to use a routine contained within (like floating point math while BASIC is out or disk access routines while Kernal is swapped out) or attempt to access I/O devices with that space swapped out.

I forgot to mention the IRQ and NMI handling.  If you don't have your own IRQ and NMI routines (or turn off the IRQ) when you swap out the Kernal, you're heading right straight into a lock-up when the interrupt gets vectored by, and usually into, uninitialized memory.