Add Linux printer support to the emulator
This commit is contained in:
parent
b4d569d5ee
commit
17cd71f9ed
24
emulator.pas
24
emulator.pas
|
@ -1,6 +1,6 @@
|
||||||
program Emulator;
|
program Emulator;
|
||||||
|
|
||||||
uses Crt;
|
uses Crt{$ifdef printer}, Printer{$endif};
|
||||||
|
|
||||||
const
|
const
|
||||||
IO = $ffff;
|
IO = $ffff;
|
||||||
|
@ -22,6 +22,14 @@ begin
|
||||||
IP := 0;
|
IP := 0;
|
||||||
RP := $fff0;
|
RP := $fff0;
|
||||||
|
|
||||||
|
//Initialise the printer
|
||||||
|
{$ifdef printer}
|
||||||
|
AssignLst (Lst, '| lpr');
|
||||||
|
rewrite (Lst);
|
||||||
|
Ch := ansichar ($d);
|
||||||
|
write (Lst, Ch);
|
||||||
|
{$endif}
|
||||||
|
|
||||||
//Read a program file and check for errors
|
//Read a program file and check for errors
|
||||||
if ParamCount <> 1 then begin
|
if ParamCount <> 1 then begin
|
||||||
writeln ('Usage: emulator program');
|
writeln ('Usage: emulator program');
|
||||||
|
@ -135,6 +143,13 @@ begin
|
||||||
Ch := ansichar (R [X]);
|
Ch := ansichar (R [X]);
|
||||||
write (Ch);
|
write (Ch);
|
||||||
end
|
end
|
||||||
|
//Printer
|
||||||
|
{$ifdef printer}
|
||||||
|
else if Addr = $fffe then begin
|
||||||
|
Ch := ansichar (R [X]);
|
||||||
|
write (Lst, Ch);
|
||||||
|
end
|
||||||
|
{$endif}
|
||||||
//Regular store
|
//Regular store
|
||||||
else Mem [Addr] := R [X];
|
else Mem [Addr] := R [X];
|
||||||
end
|
end
|
||||||
|
@ -197,6 +212,11 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end
|
end;
|
||||||
|
|
||||||
|
//Close the printer
|
||||||
|
{$ifdef printer}
|
||||||
|
close (Lst);
|
||||||
|
{$endif}
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
12
readme.md
12
readme.md
|
@ -5,6 +5,14 @@ Thingamajig is a RISC-y and MISC-y homebrew computer architecture. Its
|
||||||
git repository can be found at
|
git repository can be found at
|
||||||
https://ahti.space/git/crazyettin/Thingamajig.
|
https://ahti.space/git/crazyettin/Thingamajig.
|
||||||
|
|
||||||
|
Included Software
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
The repository includes an emulator implementation of Thingamajig as
|
||||||
|
well as an assembler and a disassembler, all written in FreePascal. It
|
||||||
|
also includes couple of simple example programs for Thingamajig written
|
||||||
|
in Assembly.
|
||||||
|
|
||||||
Registers and Memory
|
Registers and Memory
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
|
@ -82,6 +90,10 @@ address FFFF. The emulator emulates a dumb terminal for this.
|
||||||
|
|
||||||
Arbitrary devices can be mapped to the other reserved addresses.
|
Arbitrary devices can be mapped to the other reserved addresses.
|
||||||
|
|
||||||
|
The emulator can be compiled in Linux with support for a dot matrix
|
||||||
|
printer with the argument -dprinter. The printer must be set as the
|
||||||
|
default in CUPS and will be mapped to address FFFE in the emulator.
|
||||||
|
|
||||||
Initial Program Loader
|
Initial Program Loader
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue