Implementation
Procedure ROMEnable;
CONST ROMSOff= -12289;
ROMOn= -16128;
Type Window= packed array [0..0] OF 0..255;
Var ADDR: integer;
P: ^Window;
Begin
ADDR:=ROMSOff;
MoveLeft(ADDR,P,2);
P^[0]:=0;
ADDR:=ROMOn;
MoveLeft(ADDR,P,2);
P^[0]:=0
End;
Procedure SetByteValue;
Type Window= packed array [0..0] OF 0..255;
Var ADDR: integer;
P: ^Window;
Begin
ROMEnable;
ADDR:=LOC;
MoveLeft(ADDR,P,2);
P^[0]:=Value
End;
Function ByteValue;
Type Window= packed array [0..0] OF 0..255;
Var ADDR: integer;
P: ^Window;
Begin
ROMEnable;
ADDR:=LOC;
MoveLeft(ADDR,P,2);
ByteValue:=P^[0]
End;
Procedure Send;
CONST PrintUnit= 6;
Begin
UnitWrite(PrintUnit,CH,1,0,12)
End;
Procedure SetUnitDirect;
CONST MaxByte= 255;
Direction= -12529;
Begin
SetByteValue(Direction,MaxByte)
End;
Procedure SetBiDirect;
CONST MinByte= 0;
Direction= -12529;
Begin
SetByteValue(Direction,MinByte)
End;
Function UniDirect;
CONST MaxByte= 255;
MinByte= 0;
Direction= -12529;
Begin
Case ByteValue(Direction) Of
MinByte: UniDirect:=False;
MaxByte: UniDirect:=True
End
End;
Procedure SetNegative;
CONST MinByte= 0;
Flip= -12524;
Begin
SetByteValue(Flip,Minbyte)
End;
Procedure SetPositive;
CONST MaxByte= 255;
Flip= -12524;
Begin
SetByteValue(Flip,MaxByte)
End;
Function Negative;
CONST MaxByte= 255;
MinByte= 0;
Flip= -12524;
Begin
Case ByteValue(Flip) Of
MinByte: Negative:=True;
MaxByte: Negative:=False
End
End;
Procedure SetPage;
CONST GraphPage =-12525;
Begin
If Page=2 Then Page:=64
Else Page:=32;
SetByteValue(GraphPage,Page)
End;
Procedure SetDark;
CONST INTEN= -12528;
Begin
If Darkness<0 Then Darkness:=0;
If Darknes>7 Then Darkness:=7;
SetByteValue(INTEN,Darkness)
End;
Function Dark;
CONST INTEN= -12528;
Begin
Dark:=ByteValue(INTEN)
End;
Procedrue SetForm;
CONST FormLength= -12531;
Begin
If Length<0 Then Length:=0;
If Length>255 Then Length:=255;
SetByteValue(Formlength,length)
End;