home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / oberon / jacob-v0.1 / jacob-v0 / jacob / SYSTEM.def < prev   
Encoding:
Text File  |  1996-04-04  |  1.7 KB  |  47 lines

  1. DEFINITION SYSTEM;
  2.  
  3. CONST 
  4.  
  5. (*
  6.  * register codings for GETREG/PUTREG
  7.  *)
  8.  
  9.    eax=0; ebx=1; ecx=2; edx=3; esi=4; edi=5; ebp=6; esp=7; eflags=8;
  10.    st0=9; st1=10; st2=11; st3=12; st4=13; st5=14; st6=15; st7=16; 
  11.       
  12. (*
  13.  * condition code codings for CC
  14.  *)
  15.  
  16.    cf = 00001H; (* Carry Flag             *)
  17.    pf = 00004H; (* Parity Flag            *)
  18.    af = 00010H; (* Auxiliary carry Flag   *)
  19.    zf = 00040H; (* Zero Flag              *)
  20.    sf = 00080H; (* Sign Flag              *)
  21.    tf = 00100H; (* Trap Flag              *)
  22.    if = 00200H; (* Interrupt enable Flag  *)
  23.    df = 00400H; (* Direction Flag         *)
  24.    of = 00800H; (* Overflow Flag          *)
  25.    nt = 04000H; (* Nested Task flag       *)
  26.    rf = 10000H; (* Resume Flag            *)
  27.    vm = 20000H; (* Virtual 8086 Mode flag *)
  28.    ac = 40000H; (* Alignment Check flag   *)
  29.  
  30. TYPE BYTE; PTR;
  31.  
  32. PROCEDURE ADR(VAR v: ARRAY OF BYTE): LONGINT;
  33. PROCEDURE BIT(a, n: LONGINT): BOOLEAN; 
  34. PROCEDURE CC(n: SHORTINT): BOOLEAN; 
  35. PROCEDURE LSH(x: {SHORTINT,INTEGER,LONGINT,CHAR,BYTE}; n: LONGINT): TYPE(x); (* n>=0 --> shift left *)
  36. PROCEDURE ROT(x: {SHORTINT,INTEGER,LONGINT,CHAR,BYTE}; n: LONGINT): TYPE(x); (* n>=0 --> rotate left *)
  37. PROCEDURE VAL(T:TYPE; VAR x: ARRAY OF BYTE): TYPE(T);
  38.  
  39. PROCEDURE GET(a: LONGINT; VAR v: {BOOLEAN,CHAR,SHORTINT,INTEGER,LONGINT,REAL,LONGREAL,SET,PTR,PROCEDURE});
  40. PROCEDURE PUT(a: LONGINT; x: {BOOLEAN,CHAR,SHORTINT,INTEGER,LONGINT,REAL,LONGREAL,SET,PTR,PROCEDURE});
  41. PROCEDURE GETREG(n: SHORTINT; VAR v: {BOOLEAN,CHAR,SHORTINT,INTEGER,LONGINT,REAL,LONGREAL,SET,PTR,PROCEDURE});
  42. PROCEDURE PUTREG(n: SHORTINT; x: {BOOLEAN,CHAR,SHORTINT,INTEGER,LONGINT,REAL,LONGREAL,SET,PTR,PROCEDURE});
  43. PROCEDURE MOVE(a0, a1, n: LONGINT);
  44. PROCEDURE NEW(VAR v:PTR; n: LONGINT);
  45.  
  46. END SYSTEM.
  47.