]> git.sur5r.net Git - cc65/commitdiff
Added the model-specific addresses that the CBM exec() needs.
authorGreg King <gregdk@users.sf.net>
Sun, 25 Aug 2013 04:43:23 +0000 (00:43 -0400)
committerGreg King <gregdk@users.sf.net>
Sun, 25 Aug 2013 04:43:23 +0000 (00:43 -0400)
asminc/c128.inc
asminc/c64.inc
asminc/cbm510.inc
asminc/cbm610.inc
asminc/pet.inc
asminc/plus4.inc
asminc/vic20.inc
libsrc/cbm/execvars.s [new file with mode: 0644]
libsrc/pet/mainargs.s

index 1fb8b397c91601910bc5bb36b390a5d029e6678b..aac8678bfd9e369aaf62bca74ab9c103c5eb3e0c 100644 (file)
@@ -6,6 +6,7 @@
 ; ---------------------------------------------------------------------------
 ; Zero page, Commodore stuff
 
+TXTPTR          := $3D          ; Pointer into BASIC source code
 TIME            := $A0          ; 60HZ clock
 FNAM_LEN        := $B7          ; Length of filename
 SECADR          := $B9          ; Secondary address
index f5dbcf549ffd8cedff67b2b6591b43c901adcef3..f450fcc0b4386be060980e26f906e8a9f4172f81 100644 (file)
@@ -6,6 +6,7 @@
 ; ---------------------------------------------------------------------------
 ; Zero page, Commodore stuff
 
+TXTPTR          := $7A          ; Pointer into BASIC source code
 TIME            := $A0          ; 60 HZ clock
 FNAM_LEN        := $B7          ; Length of filename
 SECADR          := $B9          ; Secondary address
index 827c507fc097a59fd97d1f557963ebc354a30101..f031a1e3595f5b9bf9c2c586812145b9d69664ad 100644 (file)
@@ -3,7 +3,8 @@
 ;
 ; Taken from a kernal disassembly done by myself in 2000/2001.
 ;
-; Ullrich von Bassewitz, 13.09.2001
+; 2001-09-13, Ullrich von Bassewitz
+; 2013-08-23, Greg King
 
 
 ;-----------------------------------------------------------------------------
@@ -12,6 +13,8 @@
 ExecReg         = $00
 IndReg          = $01
 
+TXTPTR          := $85          ; Far pointer into BASIC source code
+
 ; ---------------------------------------------------------------------------
 ; Screen size
 
@@ -21,7 +24,7 @@ YSIZE           = 25
 ;-----------------------------------------------------------------------------
 ; I/O Definitions
 
-; I/O  $d800: VIC
+; I/O  $d800: VIC-II
 
 VIC_SPR0_X      = $00
 VIC_SPR0_Y      = $01
@@ -75,7 +78,6 @@ VIC_BG_COLOR2   = $23
 VIC_BG_COLOR3   = $24
 
 
-
 ; I/O  $da00: SID 6581
 
 SID_S1Lo        = $00
@@ -112,7 +114,7 @@ SID_Noise       = $1B
 SID_Read3       = $1C
 
 
-; I/O  $db00: CIA 6526 Inter Process Communication
+; I/O  $db00: CIA 6526, Inter Process Communication
 ; I/O  $dc00: CIA 6526
 
 .struct CIA
@@ -176,7 +178,13 @@ SID_Read3       = $1C
 .endstruct
 
 
-; Out video memory address
+;-----------------------------------------------------------------------------
+; Our video memory address
+
+COLOR_RAM       := $D400        ; System bank
+
 
-COLOR_RAM   = $D400                     ; System bank
+;-----------------------------------------------------------------------------
 
+BASIC_BUF       := $FB5E        ; Bank 0 location of command-line
+BASIC_BUF_LEN   = 162           ; Maximum length of command-line
index 94256eeb1a360c0ea0387f8080bf479ef300b965..10d194ea7acf25c39e12a71375780684b49b215e 100644 (file)
@@ -9,8 +9,10 @@
 ; ---------------------------------------------------------------------------
 ; Zeropage stuff
 
-ExecReg         = $00
-IndReg          = $01
+ExecReg         := $00
+IndReg          := $01
+
+TXTPTR          := $85          ; Far pointer into BASIC source code
 
 ; ---------------------------------------------------------------------------
 ; Screen size
@@ -29,7 +31,8 @@ YSIZE           = 25
         DATA    .byte
 .endstruct
 
-; I/O  $db00: CIA 6526 Inter Process Communication
+
+; I/O  $db00: CIA 6526, Inter Process Communication
 ;
 ;       IPCcia          =       $db00
 
@@ -68,7 +71,6 @@ YSIZE           = 25
 ;       cia             =       $dc00
 
 
-
 ; I/O  $dd00: ACIA 6551
 ;
 ;       acia            =       $dd00
@@ -108,3 +110,7 @@ YSIZE           = 25
 ;       tpi2            =       $df00
 
 
+;-----------------------------------------------------------------------------
+
+BASIC_BUF       := $FA5E        ; Bank 1 location of command-line
+BASIC_BUF_LEN   = 162           ; Maximum length of command-line
index a3dadf48dab0bc38558d886ac452fe713942263d..1ebf391f9f5a41b8c3ce4f410660067a676600e0 100644 (file)
@@ -7,6 +7,7 @@
 ; Zero page, Commodore stuff
 
 MEMSIZE         := $34          ; Size of memory installed
+TXTPTR          := $77          ; Pointer into BASIC source code
 TIME            := $8D          ; 60HZ clock
 KEY_COUNT       := $9E          ; Number of keys in input buffer
 RVS             := $9F          ; Reverse flag
@@ -24,6 +25,9 @@ SCR_LINELEN     := $D5          ; Screen line length
 CURS_Y          := $D8          ; Cursor row
 FNADR           := $DA          ; Pointer to file name
 
+BASIC_BUF       := $200         ; Location of command-line
+BASIC_BUF_LEN   = 81            ; Maximum length of command-line
+
 KEY_BUF         := $26F         ; Keyboard buffer
 
 ;----------------------------------------------------------------------------
index 014c18e602e77bb7cc11708da3bf83bb1e3a4eed..17e250508b71e63fe43bca93c39ff2d90663abf1 100644 (file)
@@ -7,6 +7,7 @@
 ; Zero page, Commodore stuff
 
 TMPPTR          := $22          ; Temporary ptr used by BASIC
+TXTPTR          := $3B          ; Pointer into BASIC source code
 TIME            := $A3          ; 60HZ clock
 FNAM_LEN        := $AB          ; Length of filename
 LFN             := $AC          ; Logical file number
index 6780d067d3d6a55337e659ad15da27c27764eeab..c42db4258c4048f015b767a8e4ec4ac664aa527b 100644 (file)
@@ -6,6 +6,7 @@
 ; ---------------------------------------------------------------------------
 ; Zero page, Commodore stuff
 
+TXTPTR          := $7A          ; Pointer into BASIC source code
 TIME            := $A0          ; 60HZ clock
 FNAM_LEN        := $B7          ; Length of filename
 SECADR          := $B9          ; Secondary address
diff --git a/libsrc/cbm/execvars.s b/libsrc/cbm/execvars.s
new file mode 100644 (file)
index 0000000..02eabc1
--- /dev/null
@@ -0,0 +1,28 @@
+;
+; Platform-specific variables for the exec program-chaining function
+;
+
+.if     .defined (__C128__)
+        .include        "c128.inc"
+.elseif .defined (__C16__)
+        .include        "c16.inc"
+.elseif .defined (__C64__)
+        .include        "c64.inc"
+.elseif .defined (__CBM510__)
+        .include        "cbm510.inc"
+.elseif .defined (__CBM610__)
+        .include        "cbm610.inc"
+.elseif .defined (__PET__)
+        .include        "pet.inc"
+.elseif .defined (__PLUS4__)
+        .include        "plus4.inc"
+.else
+        .include        "vic20.inc"
+.endif
+
+        .export         _txtptr:zp, _basbuf, _basbuf_len:zp
+
+_txtptr         :=      TXTPTR
+
+_basbuf         :=      BASIC_BUF
+_basbuf_len     =       BASIC_BUF_LEN
index 9a63f50c2febbc8062819d8a0e591940957fc869..0d5b18987da51455e7455340fe896a2ba58abfcb 100644 (file)
@@ -13,7 +13,6 @@
 MAXARGS  = 10                   ; Maximum number of arguments allowed
 REM      = $8f                  ; BASIC token-code
 NAME_LEN = 16                   ; maximum length of command-name
-BASIC_BUF= $200
 
 
 ;---------------------------------------------------------------------------