From: Greg King Date: Sun, 25 Aug 2013 04:43:23 +0000 (-0400) Subject: Added the model-specific addresses that the CBM exec() needs. X-Git-Tag: V2.15~236^2~3 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=d0fb1fe0ae489c23ff753011575331be05fb25a3;p=cc65 Added the model-specific addresses that the CBM exec() needs. --- diff --git a/asminc/c128.inc b/asminc/c128.inc index 1fb8b397c..aac8678bf 100644 --- a/asminc/c128.inc +++ b/asminc/c128.inc @@ -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 diff --git a/asminc/c64.inc b/asminc/c64.inc index f5dbcf549..f450fcc0b 100644 --- a/asminc/c64.inc +++ b/asminc/c64.inc @@ -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 diff --git a/asminc/cbm510.inc b/asminc/cbm510.inc index 827c507fc..f031a1e35 100644 --- a/asminc/cbm510.inc +++ b/asminc/cbm510.inc @@ -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 diff --git a/asminc/cbm610.inc b/asminc/cbm610.inc index 94256eeb1..10d194ea7 100644 --- a/asminc/cbm610.inc +++ b/asminc/cbm610.inc @@ -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 diff --git a/asminc/pet.inc b/asminc/pet.inc index a3dadf48d..1ebf391f9 100644 --- a/asminc/pet.inc +++ b/asminc/pet.inc @@ -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 ;---------------------------------------------------------------------------- diff --git a/asminc/plus4.inc b/asminc/plus4.inc index 014c18e60..17e250508 100644 --- a/asminc/plus4.inc +++ b/asminc/plus4.inc @@ -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 diff --git a/asminc/vic20.inc b/asminc/vic20.inc index 6780d067d..c42db4258 100644 --- a/asminc/vic20.inc +++ b/asminc/vic20.inc @@ -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 index 000000000..02eabc12e --- /dev/null +++ b/libsrc/cbm/execvars.s @@ -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 diff --git a/libsrc/pet/mainargs.s b/libsrc/pet/mainargs.s index 9a63f50c2..0d5b18987 100644 --- a/libsrc/pet/mainargs.s +++ b/libsrc/pet/mainargs.s @@ -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 ;---------------------------------------------------------------------------