Move some more code out of the blank segment to make space for static data.

This commit is contained in:
Stephen Heumann 2017-07-14 19:45:40 -05:00
parent ad31ecfcae
commit ccd653ddb9
13 changed files with 30 additions and 24 deletions

View File

@ -8,7 +8,7 @@
* *
**************************************************************** ****************************************************************
* *
CnvSX start CnvSX start cg
rec equ 4 record containing values rec equ 4 record containing values
rec_real equ 0 disp to real value rec_real equ 0 disp to real value
rec_ext equ 8 disp to extended (SANE) value rec_ext equ 8 disp to extended (SANE) value
@ -42,7 +42,7 @@ rec_ext equ 8 disp to extended (SANE) value
* *
**************************************************************** ****************************************************************
* *
CnvSC start CnvSC start cg
rec equ 4 record containing values rec equ 4 record containing values
rec_real equ 0 disp to real value rec_real equ 0 disp to real value
rec_ext equ 8 disp to extended (SANE) value rec_ext equ 8 disp to extended (SANE) value
@ -85,6 +85,7 @@ rec_cmp equ 18 disp to comp (SANE) value
rtl rtl
end end
datachk off
**************************************************************** ****************************************************************
* *
* InitLabels - initialize the labels array * InitLabels - initialize the labels array
@ -95,7 +96,7 @@ rec_cmp equ 18 disp to comp (SANE) value
* *
**************************************************************** ****************************************************************
* *
InitLabels start InitLabels start cg
maxLabel equ 3200 maxLabel equ 3200
! with labelTab[0] do begin ! with labelTab[0] do begin

View File

@ -26,7 +26,7 @@ interface
uses CCommon, CGI; uses CCommon, CGI;
{$segment 'cg'} {$segment 'CG'}
type type
{pcode code generation} {pcode code generation}

View File

@ -18,7 +18,7 @@ unit CodeGeneratorInterface;
interface interface
{$segment 'cg'} {$segment 'CG'}
{$LibPrefix '0/obj/'} {$LibPrefix '0/obj/'}

View File

@ -11,7 +11,7 @@ unit DAG;
interface interface
{$segment 'cg'} {$segment 'CG'}
{$LibPrefix '0/obj/'} {$LibPrefix '0/obj/'}

View File

@ -15,7 +15,7 @@ interface
uses CCommon, MM, Scanner, Symbol, CGI; uses CCommon, MM, Scanner, Symbol, CGI;
{$segment 'scanner'} {$segment 'SCANNER'}
var var
inhibitHeader: boolean; {should .sym includes be blocked?} inhibitHeader: boolean; {should .sym includes be blocked?}

8
MM.asm
View File

@ -13,7 +13,7 @@
* *
**************************************************************** ****************************************************************
* *
Calloc start Calloc start cc
ptr equ 0 pointer to reserved memory ptr equ 0 pointer to reserved memory
@ -59,7 +59,7 @@ lb4 return 4:ptr return the pointer
* *
**************************************************************** ****************************************************************
* *
GCalloc start GCalloc start cc
ptr equ 0 pointer to reserved memory ptr equ 0 pointer to reserved memory
@ -107,9 +107,9 @@ lb4 return 4:ptr return the pointer
* *
**************************************************************** ****************************************************************
* *
Malloc start Malloc start cc
lda useGlobalPool lda |useGlobalPool
jne GMalloc jne GMalloc
jmp LMalloc jmp LMalloc
end end

2
MM.pas
View File

@ -39,6 +39,8 @@ interface
uses CCommon; uses CCommon;
{$segment 'CC'}
var var
localID,globalID: integer; {user ID's for the local & global pools} localID,globalID: integer; {user ID's for the local & global pools}

View File

@ -1,4 +1,5 @@
mcopy native.macros mcopy native.macros
datachk off
**************************************************************** ****************************************************************
* *
* Remove - remove an instruction from the peephole array * Remove - remove an instruction from the peephole array
@ -8,7 +9,7 @@
* *
**************************************************************** ****************************************************************
* *
Remove start Remove start CodeGen
elSize equ 12 size of an element elSize equ 12 size of an element
nPeepSize equ 128 size of array nPeepSize equ 128 size of array
ns equ 4 array element ns equ 4 array element

View File

@ -30,7 +30,7 @@ interface
uses CCommon, CGI, CGC, ObjOut; uses CCommon, CGI, CGC, ObjOut;
{$segment 'CodeGen'} {$segment 'CODEGEN'}
type type
labelptr = ^labelentry; {pointer to a forward ref node} labelptr = ^labelentry; {pointer to a forward ref node}

View File

@ -1,4 +1,5 @@
mcopy objout.macros mcopy objout.macros
datachk off
**************************************************************** ****************************************************************
* *
* CnOut - write a byte to the constant buffer * CnOut - write a byte to the constant buffer
@ -8,7 +9,7 @@
* *
**************************************************************** ****************************************************************
* *
CnOut start CnOut start CodeGen
maxCBuffLen equ 191 max index into the constant buffer maxCBuffLen equ 191 max index into the constant buffer
lda cBuffLen if cBuffLen = maxCBuffLen then lda cBuffLen if cBuffLen = maxCBuffLen then
@ -39,7 +40,7 @@ lb1 phb cBuff[cBuffLen] := i;
* *
**************************************************************** ****************************************************************
* *
CnOut2 start CnOut2 start CodeGen
maxCBuffLen equ 191 max index into the constant buffer maxCBuffLen equ 191 max index into the constant buffer
lda cBuffLen if cBuffLen+1 >= maxCBuffLen then lda cBuffLen if cBuffLen+1 >= maxCBuffLen then
@ -71,7 +72,7 @@ lb1 phb cBuff[cBuffLen] := i;
* *
**************************************************************** ****************************************************************
* *
COut start COut start CodeGen
phb OutByte(b); phb OutByte(b);
pla pla
@ -95,7 +96,7 @@ COut start
* *
**************************************************************** ****************************************************************
* *
Out2 start Out2 start CodeGen
phb OutWord(w); phb OutWord(w);
pla pla
@ -118,7 +119,7 @@ Out2 start
* *
**************************************************************** ****************************************************************
* *
Out start Out start CodeGen
phb OutByte(b); phb OutByte(b);
pla pla
@ -141,7 +142,7 @@ Out start
* *
**************************************************************** ****************************************************************
* *
OutByte private OutByte private CodeGen
lda objLen if objLen+segDisp = buffSize then lda objLen if objLen+segDisp = buffSize then
clc clc
@ -200,7 +201,7 @@ lb2a lda #$8000 handle a segment overflow
* *
**************************************************************** ****************************************************************
* *
OutWord private OutWord private CodeGen
lda objLen if objLen+segDisp+1 = buffSize then lda objLen if objLen+segDisp+1 = buffSize then
sec sec

View File

@ -34,7 +34,7 @@ interface
uses CCommon, CGI, CGC; uses CCommon, CGI, CGC;
{$segment 'CodeGen'} {$segment 'CODEGEN'}
procedure CloseObj; procedure CloseObj;

View File

@ -1,4 +1,5 @@
mcopy scanner.macros mcopy scanner.macros
datachk off
**************************************************************** ****************************************************************
* *
* Convertsl - Convert a string to a long integer * Convertsl - Convert a string to a long integer
@ -14,7 +15,7 @@
* *
**************************************************************** ****************************************************************
* *
Convertsl start Convertsl start scanner
val equ 0 return value val equ 0 return value
@ -100,7 +101,7 @@ rkModifiers ds 2
* *
**************************************************************** ****************************************************************
* *
NextCh start NextCh start scanner
eofChar equ 0 end of file character eofChar equ 0 end of file character
eolChar equ 13 end of line character eolChar equ 13 end of line character

View File

@ -31,7 +31,7 @@ interface
uses CCommon, Table, CGI, MM; uses CCommon, Table, CGI, MM;
{$segment 'scanner'} {$segment 'SCANNER'}
type type
pragmas = {kinds of pragmas} pragmas = {kinds of pragmas}