char Text [16384];
word pText;
word nText;
word nLine;
byte Code [16384];
word nCode;
word hFile;
char Heap [ 2048];
word pHeap;
word nHeap;
word nData;
word Name [ 128];
word Cls [ 128];
word Type [ 128];
word Size [ 128];
word Ofs [ 128];
word pName;
word nName;
word Stk [ 32];
word pStk;
char Buff [ 256];
word pBuff;
word open() is
inline $B4, $3D;
inline $B0, $00;
inline $BA, $4A, $C1;
inline $CD, $21;
end
word create() is
inline $B4, $3C;
inline $B9, $00, $00;
inline $BA, $50, $C1;
inline $CD, $21;
end
word read() is
inline $B4, $3F;
inline $8B, $1E, $08, $C1;
inline $B9, $00, $40;
inline $BA, $00, $41;
inline $CD, $21;
end
word write() is
inline $B4, $40;
inline $8B, $1E, $08, $C1;
inline $8B, $0E, $06, $C1;
inline $BA, $06, $81;
inline $CD, $21;
end
word close() is
inline $B4, $3E;
inline $8B, $1E, $08, $C1;
inline $CD, $21;
end
word Init() is
Heap[ 0]:='0';
Heap[ 1]:='1';
Heap[ 2]:='2';
Heap[ 3]:='3';
Heap[ 4]:='4';
Heap[ 5]:='5';
Heap[ 6]:='6';
Heap[ 7]:='7';
Heap[ 8]:='8';
Heap[ 9]:='9';
Heap[10]:='A';
Heap[11]:='B';
Heap[12]:='C';
Heap[13]:='D';
Heap[14]:='E';
Heap[15]:='F';
Heap[16]:='c';
Heap[17]:='h';
Heap[18]:='a';
Heap[19]:='r';
Heap[20]:= char(0);
Heap[21]:='b';
Heap[22]:='y';
Heap[23]:='t';
Heap[24]:='e';
Heap[25]:= char(0);
Heap[26]:='w';
Heap[27]:='o';
Heap[28]:='r';
Heap[29]:='d';
Heap[30]:= char(0);
Heap[31]:='b';
Heap[32]:='e';
Heap[33]:='g';
Heap[34]:='i';
Heap[35]:='n';
Heap[36]:= char(0);
Heap[37]:='i';
Heap[38]:='f';
Heap[39]:= char(0);
Heap[40]:='w';
Heap[41]:='h';
Heap[42]:='i';
Heap[43]:='l';
Heap[44]:='e';
Heap[45]:= char(0);
Heap[46]:='i';
Heap[47]:='n';
Heap[48]:='l';
Heap[49]:='i';
Heap[50]:='n';
Heap[51]:='e';
Heap[52]:= char(0);
Heap[53]:='r';
Heap[54]:='e';
Heap[55]:='t';
Heap[56]:='u';
Heap[57]:='r';
Heap[58]:='n';
Heap[59]:= char(0);
Heap[60]:='e';
Heap[61]:='n';
Heap[62]:='d';
Heap[63]:= char(0);
Heap[64]:='c';
Heap[65]:='.';
Heap[66]:='p';
Heap[67]:='r';
Heap[68]:='g';
Heap[69]:= char(0);
Heap[70]:='c';
Heap[71]:='.';
Heap[72]:='c';
Heap[73]:='o';
Heap[74]:='m';
Heap[75]:= char(0);
nHeap :=76;
Name[ 0]:=16;
Cls [ 0]:= 1;
Size[ 0]:= 1;
Name[ 1]:=21;
Cls [ 1]:= 1;
Size[ 1]:= 1;
Name[ 2]:=26;
Cls [ 2]:= 1;
Size[ 2]:= 2;
nName := 3;
pStk := 0;
nCode := 0;
nData := 16640;
end
word I;
word Push() is
Stk[pStk]:=I;
pStk:=pStk+1;
end
word Pop () is
pStk:=pStk-1;
I:=Stk[pStk];
end
word Stop() is
pStk:=0;
while nLine!=0 do
I:=nLine%10;
I:=I+48;
Push();
nLine:=nLine/10;
end
while pStk!=0 do
Pop();
inline $92;
inline $B4, $02;
inline $CD, $21;
end
inline $B8, $00, $4C;
inline $CD, $21;
end
word E;
word J;
word K;
word N;
word val () is
E:=10;
J:= 0;
if Buff[0]='$' then
E:=16;
J:= 1;
end
N:=0;
while Buff[J]!=char(0) do
K:=0;
while Heap[K]!=Buff[J] do
if K=E then
Stop();
end
K:=K+1;
end
N:=E*N;
N:=N+K;
J:=J+1;
end
return N;
end
char Read() is
if pText