home *** CD-ROM | disk | FTP | other *** search
/ Atari FTP / ATARI_FTP_0693.zip / ATARI_FTP_0693 / Tex / td187src.lzh / MAGICBIO.D < prev    next >
Text File  |  1991-06-08  |  5KB  |  146 lines

  1. (*######################################################################
  2.  
  3.   MAGIC         Modula's  All purpose  GEM  Interface  Cadre
  4.                                                         
  5. ########################################################################
  6.  
  7.   BIOS          Basic Input Output System       Interface for Modula-2
  8.  
  9. ########################################################################
  10.   V2.01 23.12.90  Jens Pirnay           Korrektur von PD
  11.   V2.0  17.10.90  Peter Hellinger       Anpassung an neues MagicSys
  12.   V1.0  (C) by Peter Hellinger
  13. ######################################################################*)
  14.  
  15. DEFINITION MODULE MagicBIOS;
  16.  
  17. FROM SYSTEM     IMPORT  ADDRESS;
  18. FROM MagicSys   IMPORT  Nil, Null,
  19.                         Bit0, Bit1, Bit2, Bit3, Bit4, Bit5, Bit6, Bit7,
  20.                         Bit8, Bit9, Bit10, Bit11, Bit12, Bit13, Bit14, Bit15,
  21.                         LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL, sBITSET,
  22.                         lWORD, lINTEGER, lCARDINAL, lBITSET;
  23.  
  24. TYPE    PtrPD =         POINTER TO PD;
  25.         PD =            RECORD
  26.                          pLowtpa:       ADDRESS;
  27.                          pHitpa:        ADDRESS;
  28.                          pTbase:        ADDRESS;
  29.                          pTlen:         lCARDINAL;
  30.                          pDbase:        ADDRESS;
  31.                          pDlen:         lCARDINAL;
  32.                          pBbase:        ADDRESS;
  33.                          pBlen:         lCARDINAL;
  34.                          pDta:          ADDRESS;
  35.                          pParent:       PtrPD;
  36.                          res1:          ADDRESS;
  37.                          pEnv:          ADDRESS;
  38.                          devx:          ARRAY [0..5] OF Byte;
  39.                          res2:          Byte;
  40.                          defdrv:        Byte;
  41. (** Tippfehler: ==>      pUndef:        ARRAY [0..17] OF Byte; **)
  42.                          pUndef:        ARRAY [0..71] OF Byte;
  43.                          pCmdlin:       ARRAY [0..126] OF CHAR;
  44.                         END;
  45.  
  46.  
  47. TYPE    PtrMD =         POINTER TO MD;
  48.         MD =            RECORD
  49.                          mLink:   PtrMD;
  50.                          mStart:  ADDRESS;
  51.                          mLength: lCARDINAL;
  52.                          mOwn:    PtrPD;
  53.                         END;
  54.  
  55.  
  56. TYPE    PtrMPB =        POINTER TO MPB;
  57.         MPB =           RECORD                  (* memory parameter block *)
  58.                          mpMfl:   PtrMD;        (* memory free list *)
  59.                          mpMal:   PtrMD;        (* memory allocated list *)
  60.                          moRover: PtrMD;        (* roving pointer *)
  61.                         END;
  62.  
  63. PROCEDURE Getmpb (VAR mpb: ADDRESS);
  64.  
  65.  
  66. CONST   PRT =           0;
  67.         AUX =           1;
  68.         CON =           2;
  69.         MIDI =          3;
  70.         IKBD =          4;
  71.         RAWCON =        5;
  72.  
  73. PROCEDURE Bconstat (device: sINTEGER): BOOLEAN;
  74.  
  75. PROCEDURE Bconin (device: sINTEGER): lCARDINAL;
  76.  
  77. PROCEDURE Bconout (device: sINTEGER; c: CHAR);
  78.  
  79.  
  80. CONST   DrvA =           0;
  81.         DrvB =           1;
  82.         DrvC =           2;
  83.         DrvD =           3;
  84.         DrvE =           4;
  85.         DrvF =           5;
  86.         DrvG =           6;
  87.         DrvH =           7;
  88.         DrvI =           8;
  89.         DrvJ =           9;
  90.         DrvK =          10;
  91.         DrvL =          11;
  92.         DrvM =          12;
  93.         DrvN =          13;
  94.         DrvO =          14;
  95.         DrvP =          15;
  96.  
  97. CONST   Read =          0;
  98.         Write =         1;
  99.         ReadNoMC =      2;
  100.         WriteNoMC =     3;
  101.  
  102. PROCEDURE Rwabs (rw: sINTEGER; buf: ADDRESS; count, recno, dev: sINTEGER): lINTEGER;
  103.  
  104. PROCEDURE Setexc (vecnum: sINTEGER; vec: ADDRESS): ADDRESS;
  105.  
  106. PROCEDURE Tickcal (): lCARDINAL;
  107.  
  108.  
  109. TYPE    PtrBPB =        POINTER TO BPB;
  110.         BPB =           RECORD
  111.                          recsiz: sCARDINAL;
  112.                          clsiz:  sCARDINAL;
  113.                          clsizb: sCARDINAL;
  114.                          rdlen:  sCARDINAL;
  115.                          fsiz:   sCARDINAL;
  116.                          fatrec: sCARDINAL;
  117.                          datrec: sCARDINAL;
  118.                          numcl:  sCARDINAL;
  119.                          bflags: sCARDINAL;
  120.                         END;
  121.  
  122.  
  123. PROCEDURE Getbpb (drive: sINTEGER): ADDRESS;
  124.  
  125. PROCEDURE Bcostat (device: sINTEGER): BOOLEAN;
  126.  
  127. PROCEDURE Mediach (dev: sINTEGER): sINTEGER;
  128.  
  129. PROCEDURE Drvmap (): lBITSET;
  130.  
  131.  
  132. CONST   KRSHIFT =       Bit0;   (* Tastatur-Status *)
  133.         KLSHIFT =       Bit1;
  134.         KCTRL =         Bit2;
  135.         KALT =          Bit3;
  136.         KCAPS =         Bit4;
  137.         KRMOUSE =       Bit5;
  138.         KLMOUSE =       Bit6;
  139.         KRESERVED =     Bit7;
  140.  
  141. PROCEDURE Kbshift (keys: sBITSET): sBITSET;
  142.  
  143.  
  144. END MagicBIOS.
  145.  
  146.