DEFINITION MODULE BASIC;
PROCEDURE RANDOM():CARDINAL;
PROCEDURE RANDOMIZE(SEED:CARDINAL);
PROCEDURE RND():REAL3;
PROCEDURE BEEP(PITCH,TIME:REAL);
PROCEDURE PAUSE(TICKS:CARDINAL);
PROCEDURE PLOT(X,Y:REAL);
PROCEDURE DRAW(X,Y:REAL);
PROCEDURE CIRCLE(X,Y,R:REAL);
PROCEDURE ARC(X,Y,Z:REAL);
PROCEDURE USR(X:CARDINAL):CARDINAL;
PROCEDURE BORDER(COLOUR:SHORTCARD);
VAR [0BD8FH] RETVAL:CARDINAL;
PROCEDURE FNARG(N:SHORTCARD):REAL;
PROCEDURE FNARGSTR(S:ARRAY OF CHAR;N:SHORTCARD);
END BASIC.
IMPLEMENTATION MODULE BASIC;
FROM SYSTEM IMPORT ADDRESS;
VAR [5C76H] SEED:CARDINAL;
PROCEDURE RANDOM():CARDINAL;HEX
2A (@SEED) AF 47 2C 20 04 24 20 01 3C 4F 5D 54 29
8F 29 8F 29 8F 19 89 29 8F 29 8F 19 89 29 8F 19
89 4F ED 42 38 01 2B 22 (@SEED) C9 END RANDOM;
PROCEDURE RANDOMIZE(SEED:CARDINAL);HEX
44 4D C3 52 19 END RANDOMIZE;
PROCEDURE RND():REAL3;
BEGIN RETURN RL3(RANDOM())/RL3(65536.0) END RND;
 
PROCEDURE BORDER(COLOUR:SHORTCARD);
HEX C3 97 22 END BORDER;
 
PROCEDURE BEEP(PITCH,TIME:REAL);HEX
06 02 CD (@4CH) C3 F8 03 END BEEP;
 
PROCEDURE PAUSE(TICKS:CARDINAL);HEX
44 4D C3 3D 1F END PAUSE;
 
PROCEDURE PLOT(X,Y:REAL);
HEX 06 02 CD (@4CH) C3 DC 22 END PLOT;
 
PROCEDURE DRAW(X,Y:REAL);
HEX 06 02 CD (@4CH) C3 77 24 END DRAW;
 
PROCEDURE CIRCLE(X,Y,R:REAL);
HEX 06 03 CD (@4CH) C3 2D 23 END CIRCLE;
 
PROCEDURE ARC(X,Y,Z:REAL);
HEX 06 03 CD (@4CH) C3 94 23 END ARC;
 
PROCEDURE USR(X:CARDINAL):CARDINAL;
HEX CD 24 16 60 69 C9 END USR;

VAR [5C0BH] DEFADD:ADDRESS;
PROCEDURE FNARG(N:SHORTCARD):REAL;HEX
47 2A (@DEFADD) 11 05 00 18 09 19 CD AB 28 FE 2C C2
8B 28 7E 23 FE 0E 20 F8 10 EF C3 B4 33 END FNARG;
PROCEDURE FNARGSTR(S:ARRAY OF CHAR;N:SHORTCARD);HEX
DD E1 3B F1 CD (@FNARG) CD F1 2B E1 E3 AF ED 42 30
03 09 44 4D E1 EB E5 E5 3B DD E5 ED B0 D8 12 C9
END FNARGSTR;
 
END BASIC.
