Bugfix int range in sasm, create Makefile, portability fixes

This commit is contained in:
slederer 2024-10-06 22:55:35 +02:00
parent 8c84a4b877
commit 32e252e536
6 changed files with 61 additions and 3 deletions

6
.gitignore vendored
View file

@ -1,5 +1,6 @@
pcomp/*.s pcomp/*.s
progs/*.s progs/*.s
lib/stdlib.s
tests/*.s tests/*.s
examples/*.s examples/*.s
!runtime.s !runtime.s
@ -22,6 +23,11 @@ sine.pas
graph1.pas graph1.pas
graph2.pas graph2.pas
chase.pas chase.pas
pcomp/libgen
pcomp/lsymgen
pcomp/pcomp
pcomp/sasm
pcomp/sdis
**/tridoracpu.cache/ **/tridoracpu.cache/
**/tridoracpu.hw/ **/tridoracpu.hw/
**/tridoracpu.ip_user_files/ **/tridoracpu.ip_user_files/

View file

@ -276,4 +276,4 @@ SHELL_ERR:
FOUND_MSG: FOUND_MSG:
.BYTE " shell.prog ",0 .BYTE " shell.prog ",0
%include corelib.s %include "corelib.s"

47
pcomp/Makefile Normal file
View file

@ -0,0 +1,47 @@
PCOMP=./pcomp
SASM=./sasm
LSYMGEN=./lsymgen
LIBGEN=./libgen
.SUFFIXES:
.SUFFIXES: .pas .o
.pas:
fpc -Mobjfpc -gl $<
all: pcomp sasm sdis libgen lsymgen
libs: pcomp sasm
$(SASM) ../lib/coreloader.s
$(LSYMGEN) ../lib/coreloader.sym
$(PCOMP) -n ../lib/stdlib.pas
$(LIBGEN) ../lib/stdlib.s
$(LIBGEN) ../lib/runtime.s
$(LIBGEN) ../lib/float32.s
nativecomp: pcomp sasm libs
$(PCOMP) sasm.pas
$(PCOMP) pcomp.pas
$(PCOMP) lsymgen.pas
$(PCOMP) libgen.pas
nativeprogs: nativecomp
$(PCOMP) ../progs/shell.pas
$(PCOMP) ../progs/editor.pas
$(PCOMP) ../progs/reclaim.pas
$(PCOMP) ../progs/dumpdir.pas
$(PCOMP) ../progs/partmgr.pas
$(PCOMP) ../progs/xfer.pas
$(SASM) ../lib/rommon.prog
$(SASM) -A ../lib/rommon.prog ../lib/rom.mem
examples: nativecomp
$(PCOMP) ../tests/readtest.pas
$(PCOMP) ../tests/readchartest.pas
$(PCOMP) ../tests/timetest.pas
$(PCOMP) ../tests/test133.pas
-$(PCOMP) ../examples/chase.pas
$(PCOMP) ../tests/cchangetest.pas
$(PCOMP) ../tests/tree.pas
clean:
rm -f pcomp sasm sdis libgen lsymgen *.o *.s

View file

@ -26,6 +26,8 @@ py pcomp.py ..\progs\reclaim.pas
py pcomp.py ..\progs\dumpdir.pas py pcomp.py ..\progs\dumpdir.pas
py pcomp.py ..\progs\partmgr.pas py pcomp.py ..\progs\partmgr.pas
py pcomp.py ..\progs\xfer.pas py pcomp.py ..\progs\xfer.pas
sasm ..\lib\rommon.s
sasm -A ..\lib\rommon.s ..\lib\rom.mem
rem exit /b rem exit /b

View file

@ -2,7 +2,7 @@
procedure initPlatform; procedure initPlatform;
begin begin
outputPrefix := ''; outputPrefix := '';
includePrefix := '..\lib\'; includePrefix := '../lib/';
end; end;
procedure newString(var s:StringRef;len:integer); procedure newString(var s:StringRef;len:integer);

View file

@ -1185,7 +1185,10 @@ begin
intValue := getSymbolValue(value) intValue := getSymbolValue(value)
else else
intValue := convertNumber(value); intValue := convertNumber(value);
emitWord(intValue + current^.offset);
if intValue <> Unresolved then
intValue := intValue + current^.offset;
emitWord(intValue);
current := current^.prev; current := current^.prev;
end; end;