[zxspectrum] Re: [OT] Commodore BASIC as a Scripting Language for UNIX and Windows - now Open Source

  • From: Massimo Raffaele <massimo.raffaele@xxxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Wed, 29 Oct 2008 19:57:03 +0100



Mah, se la cosa è stata fatta bene (come il Simon's Basic) occupano una
parte della (tanta) memoria non sfruttata/sfruttabile dal Basic.

Fammi capire: nel C64 c'è della memoria libera e il basic non la usa? Perché mai?
EMG

Sì, ci sono 64KB RAM configurabili in vari modi. I programmi in linguaggio macchina possono all'occorrenza sfruttarli tutti, ma il Basic è limitato a 38 KB per qualche motivo che onestamente non so. Errata Corrige: in una delle mail precedenti avevo parlato di paginazione. Ovviamente ho sparato una s******. Intendevo che la memoria del C64 è configurabile (ha diverse configurazioni, che possono "tagliar fuori" zone per sfruttare gli indirizzi altrimenti occupati dalla ROM interna e/o esterna ecc.)...

Cito dalla "COMMODORE 64 Programmer's Reference Guide":

COMMODORE 64 MEMORY MAPS

   The following table lists the various memory configurations available
 on the COMMODORE 64, the states of the control lines which select each
 memory map, and the intended use of each map.
   The leftmost column of the table contains addresses in hexadecimal
 notation. The columns aside it introduce all possible memory
 configurations. The default mode is on the left, and the absolutely most
 rarely used Ultimax game console configuration is on the right. Each
 memory configuration column has one or more four-digit binary numbers as
 a title. The bits, from left to right, represent the state of the /LORAM,
 /HIRAM, /GAME and /EXROM lines, respectively. The bits whose state does
 not matter are marked with "X". For instance, when the Ultimax video game
 configuration is active (the /GAME line is shorted to ground, /EXROM kept
 high), the /LORAM and /HIRAM lines have no effect.



          LHGE   LHGE   LHGE   LHGE   LHGE   LHGE   LHGE   LHGE   LHGE

          1111   101X   1000   011X   001X   1110   0100   1100   XX01
 10000  default                00X0                             Ultimax
 -------------------------------------------------------------------------
  F000
         Kernal  RAM    RAM   Kernal  RAM   Kernal Kernal Kernal ROMH(*
  E000
 -------------------------------------------------------------------------
  D000    IO/C   IO/C  IO/RAM  IO/C   RAM    IO/C   IO/C   IO/C   I/O
 -------------------------------------------------------------------------
  C000    RAM    RAM    RAM    RAM    RAM    RAM    RAM    RAM     -
 -------------------------------------------------------------------------
  B000
         BASIC   RAM    RAM    RAM    RAM   BASIC   ROMH   ROMH    -
  A000
 -------------------------------------------------------------------------
  9000
          RAM    RAM    RAM    RAM    RAM    ROML   RAM    ROML  ROML(*
  8000
 -------------------------------------------------------------------------
  7000

  6000
          RAM    RAM    RAM    RAM    RAM    RAM    RAM    RAM     -
  5000

  4000
 -------------------------------------------------------------------------
  3000

  2000    RAM    RAM    RAM    RAM    RAM    RAM    RAM    RAM     -

  1000
 -------------------------------------------------------------------------
  0000    RAM    RAM    RAM    RAM    RAM    RAM    RAM    RAM    RAM
 -------------------------------------------------------------------------


Max


Other related posts: