add rogue submodule and support for compiling, some cleanup
This commit is contained in:
parent
a060b65bb9
commit
3eb51f7d4e
9 changed files with 132 additions and 7 deletions
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
[submodule "rogue"]
|
||||
path = rogue
|
||||
url = https://gitlab.com/slederer/ecl-rogue-m.git
|
||||
|
|
@ -40,6 +40,4 @@ begin
|
|||
|
||||
loadPalette(pic);
|
||||
loadPic(pic);
|
||||
write('Press any key...');
|
||||
read(ch);
|
||||
end.
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ nativeprogs: nativecomp
|
|||
$(PCOMP) ../progs/xfer.pas
|
||||
$(SASM) ../lib/rommon.s
|
||||
$(SASM) -A ../lib/rommon.s ../lib/rom.mem
|
||||
|
||||
examples: nativecomp
|
||||
$(PCOMP) ../tests/readtest.pas
|
||||
$(PCOMP) ../tests/readchartest.pas
|
||||
|
|
@ -41,6 +42,7 @@ examples: nativecomp
|
|||
-$(PCOMP) ../examples/chase.pas
|
||||
$(PCOMP) ../tests/cchangetest.pas
|
||||
$(PCOMP) ../tests/tree.pas
|
||||
|
||||
-$(MAKE) -C ../rogue -f Makefile.tridoracpu
|
||||
|
||||
clean:
|
||||
rm -f pcomp sasm sdis libgen lsymgen *.o *.s
|
||||
|
|
|
|||
|
|
@ -39,3 +39,11 @@ py pcomp.py ..\tests\test133.pas
|
|||
py pcomp.py ..\examples\chase.pas
|
||||
py pcomp.py ..\tests\cchangetest.pas
|
||||
py pcomp.py ..\tests\tree.pas
|
||||
|
||||
if not exist ..\rogue\rogue.pas exit /b
|
||||
|
||||
cd ..\rogue
|
||||
..\pcomp\pcomp rogue.pas
|
||||
..\pcomp\sasm rogue.s
|
||||
|
||||
cd ..\pcomp
|
||||
|
|
|
|||
1
rogue
Submodule
1
rogue
Submodule
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 412f961abab7bf769d2dc7eadbc530a0285503ee
|
||||
8
tests/arraytest.pas
Normal file
8
tests/arraytest.pas
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
program arraytest;
|
||||
var arr:array[-5..5] of integer;
|
||||
var s:string[5];
|
||||
begin
|
||||
arr[-5] := 10;
|
||||
arr[5] := 11;
|
||||
writeln(arr[-5], ' ', arr[5]);
|
||||
end.
|
||||
49
tests/nestedtest.pas
Normal file
49
tests/nestedtest.pas
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
program NestedTest;
|
||||
var g:integer;
|
||||
|
||||
procedure first;
|
||||
var f:integer;
|
||||
|
||||
procedure second;
|
||||
var s:integer;
|
||||
|
||||
procedure third1;
|
||||
var t1:integer;
|
||||
begin
|
||||
t1 := 310;
|
||||
s := 31;
|
||||
writeln('t1:', t1);
|
||||
end;
|
||||
|
||||
procedure third2;
|
||||
var t2:integer;
|
||||
begin
|
||||
t2 := 320;
|
||||
s := 32;
|
||||
writeln('t2:', t2);
|
||||
if g <> 21 then
|
||||
begin
|
||||
g := 21;
|
||||
second;
|
||||
end;
|
||||
end;
|
||||
|
||||
begin
|
||||
f := 2;
|
||||
writeln('g:',g);
|
||||
third1;
|
||||
writeln('g:', g);
|
||||
third2;
|
||||
writeln('s:',s);
|
||||
end;
|
||||
|
||||
begin
|
||||
second;
|
||||
writeln('f:', f);
|
||||
end;
|
||||
|
||||
begin
|
||||
g := 0;
|
||||
first;
|
||||
writeln('g:', g);
|
||||
end.
|
||||
20
tests/settest2.pas
Normal file
20
tests/settest2.pas
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
program settest2;
|
||||
type weekday = (Mon,Tue,Wed,Thu,Fri,Sat,Sun);
|
||||
days = set of weekday;
|
||||
|
||||
var s:days;
|
||||
d:weekday;
|
||||
|
||||
begin
|
||||
s := [Sat,Sun]; (* set literal *)
|
||||
|
||||
d := Sun;
|
||||
if d in [Sat,Sun] then (* array literal *)
|
||||
writeln('weekend');
|
||||
|
||||
if d in s then
|
||||
writeln('also weekend');
|
||||
|
||||
d := Mon;
|
||||
s := s + [d];
|
||||
end.
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/python3
|
||||
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
|
||||
# Copyright 2021-2024 Sebastian Lederer. See the file LICENSE.md for details
|
||||
# Copyright 2021-2025 Sebastian Lederer. See the file LICENSE.md for details
|
||||
|
||||
import struct
|
||||
import sys
|
||||
|
|
@ -372,6 +372,31 @@ def writetoimg(img, pathname, infilepath):
|
|||
putfile(infilepath, filename, img, vol, vol.startBlock, slotno)
|
||||
|
||||
|
||||
def initfs(f, partno):
|
||||
part = getpartslot(f, partno)
|
||||
partstart = part.startBlock
|
||||
dir_slots = part.dirSize
|
||||
extent_size = part.extentSize
|
||||
slots_per_extent = extent_size // 64
|
||||
reserved_slots = dir_slots // slots_per_extent
|
||||
|
||||
print()
|
||||
print("Partition {} at {}".format(part.name, part.startBlock))
|
||||
|
||||
print("creating",reserved_slots, "reserved directory slots")
|
||||
for a in range(0,reserved_slots):
|
||||
d = createdirslot("DIR", SlotReserved, 0, 0, 0, 0, 0)
|
||||
putdirslot(f, partstart, a, d)
|
||||
|
||||
print("creating", dir_slots - reserved_slots, "free slots")
|
||||
|
||||
for a in range(reserved_slots, dir_slots):
|
||||
d = createdirslot("", SlotFree, 0, 0, 0, 0, 0)
|
||||
putdirslot(f, partstart, a, d)
|
||||
|
||||
return (part, partstart, reserved_slots)
|
||||
|
||||
|
||||
def create_image_with_stuff(imgfile):
|
||||
bootimage = "../lib/coreloader.prog"
|
||||
dir_slots = 256
|
||||
|
|
@ -381,22 +406,27 @@ def create_image_with_stuff(imgfile):
|
|||
|
||||
f = open(imgfile,"w+b")
|
||||
|
||||
b = createpart("PHYS", PartPhysical, 0, 12288, 4096, 0, 0)
|
||||
b = createpart("PHYS", PartPhysical, 0, 16384, 4096, 0, 0)
|
||||
#print(b)
|
||||
f.write(b)
|
||||
|
||||
with open(bootimage, "rb") as bf:
|
||||
bootdata = bf.read()
|
||||
bootBlocks = len(bootdata) // 512 + 1
|
||||
|
||||
b = createpart("BOOT", PartBoot, 16, 112, 0, 0, bootBlocks)
|
||||
f.write(b)
|
||||
|
||||
b = createpart("Testvolume 1", PartEnabled, 128, 3968, 8192, 248)
|
||||
f.write(b)
|
||||
|
||||
b = createpart("SYSTEM", PartEnabled, 4096, 4096, 8192, 256)
|
||||
f.write(b)
|
||||
|
||||
b = createpart("Examples", PartEnabled + PartLast, 8192, 4096, 8192, 256)
|
||||
b = createpart("Examples", PartEnabled, 8192, 4096, 8192, 256)
|
||||
f.write(b)
|
||||
|
||||
b = createpart("Rogue", PartEnabled + PartLast, 12288, 4096, 8192, 256)
|
||||
f.write(b)
|
||||
|
||||
part = getpartslot(f, 2)
|
||||
|
|
@ -572,7 +602,6 @@ def create_image_with_stuff(imgfile):
|
|||
slotnr = putfile("../examples/lines.pas", None , f, part, partstart, slotnr)
|
||||
|
||||
slotnr = putfile("../examples/pictviewer.pas", None , f, part, partstart, slotnr)
|
||||
# slotnr = putfile("viewpict.prog", None , f, part, partstart, slotnr)
|
||||
slotnr = putfile("../examples/ara.pict", "ara.pict" , f, part, partstart, slotnr)
|
||||
slotnr = putfile("../examples/shinkansen.pict", "shinkansen.pict" , f, part, partstart, slotnr)
|
||||
slotnr = putfile("../examples/snow_leopard.pict", "snow_leopard.pict" , f, part, partstart, slotnr)
|
||||
|
|
@ -581,6 +610,13 @@ def create_image_with_stuff(imgfile):
|
|||
|
||||
listdir(f, part)
|
||||
|
||||
part, partstart, slotnr = initfs(f, 5)
|
||||
slotnr = putfile("../rogue/rogue.init", None, f, part, partstart, slotnr)
|
||||
slotnr = putfile("../rogue/rogue.message", None, f, part, partstart, slotnr)
|
||||
slotnr = putfile("../rogue/rogue.prog", None, f, part, partstart, slotnr)
|
||||
|
||||
listdir(f, part)
|
||||
|
||||
write_bootimage(f, 16, bootdata)
|
||||
|
||||
f.close()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue