home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / MOS / BIOS.I < prev    next >
Encoding:
Modula Implementation  |  1990-11-10  |  3.4 KB  |  166 lines

  1. IMPLEMENTATION MODULE BIOS;
  2. (*$Z-,Y+,S-,N+,R-,L-*)
  3.  
  4. (*
  5.    TT 21.07.89  BConOut löscht High-Byte der auszugebenden Zeichen, weil
  6.                 sonst abscheinend Busfehler bei ESC-Sequenzen auftreten
  7.                 können.
  8.    TT 20.07.90  DriveMap: SETs verkehrt
  9. *)
  10.  
  11. FROM SYSTEM IMPORT ADDRESS, LONGWORD, ASSEMBLER, CAST;
  12.  
  13. PROCEDURE BConStat (dev: Device): BOOLEAN;
  14.   BEGIN
  15.     ASSEMBLER
  16.         MOVE.W  -(A3),-(A7)
  17.         MOVE.W  #$01,-(A7)
  18.         TRAP    #13
  19.         ADDQ.L  #4,A7
  20.         ANDI    #1,D0
  21.         MOVE    D0,(A3)+
  22.     END;
  23.   END BConStat;
  24.  
  25. PROCEDURE BCosStat (dev: Device): BOOLEAN;
  26.   BEGIN
  27.     ASSEMBLER
  28.         MOVE.W  -(A3),-(A7)
  29.         MOVE.W  #$08,-(A7)
  30.         TRAP    #13
  31.         ADDQ.L  #4,A7
  32.         ANDI    #1,D0
  33.         MOVE    D0,(A3)+
  34.     END;
  35.   END BCosStat;
  36.  
  37. PROCEDURE BConIn (dev: Device): LONGCARD;
  38.   BEGIN
  39.     ASSEMBLER
  40.         MOVE.W  -(A3),-(A7)
  41.         MOVE    #2,-(A7)
  42.         TRAP    #13
  43.         ADDQ.L  #4,A7
  44.         MOVE.L  D0,(A3)+
  45.     END
  46.   END BConIn;
  47.  
  48. PROCEDURE BConOut (dev: Device; ch: CHAR);
  49.   BEGIN
  50.     ASSEMBLER
  51.         SUBQ.L  #1,A3
  52.         MOVEQ   #0,D0
  53.         MOVE.B  -(A3),D0
  54.         MOVE.W  D0,-(A7)
  55.         MOVE.W  -(A3),-(A7)
  56.         MOVE    #3,-(A7)
  57.         TRAP    #13
  58.         ADDQ.L  #6,A7
  59.     END
  60.   END BConOut;
  61.  
  62. PROCEDURE RWAbs (mode: RW; buffer: ADDRESS;
  63.                  blocks, blkno, drive0: CARDINAL): LONGINT;
  64.   BEGIN
  65.     ASSEMBLER
  66.         MOVE.L  -(A3),-(A7)
  67.         MOVE.L  -(A3),-(A7)
  68.         MOVE.L  -(A3),-(A7)
  69.         MOVE.W  #$04,-(A7)
  70.         TRAP    #13
  71.         ADDA.W  #14,A7
  72.         MOVE.L  D0,(A3)+
  73.     END;
  74.   END RWAbs;
  75.  
  76. PROCEDURE SetException (excno: CARDINAL; proc: ADDRESS);
  77.   BEGIN
  78.     ASSEMBLER
  79.         MOVE.L  -(A3),-(A7)
  80.         MOVE.W  -(A3),-(A7)
  81.         MOVE    #5,-(A7)
  82.         TRAP    #13
  83.         ADDQ.L  #8,A7
  84.     END
  85.   END SetException;
  86.  
  87. PROCEDURE GetException (excno: CARDINAL): ADDRESS;
  88.   BEGIN
  89.     ASSEMBLER
  90.         MOVE.L  #-1,-(A7)
  91.         MOVE.W  -(A3),-(A7)
  92.         MOVE    #5,-(A7)
  93.         TRAP    #13
  94.         ADDQ.L  #8,A7
  95.         MOVE.L  D0,(A3)+
  96.     END
  97.   END GetException;
  98.  
  99. PROCEDURE TimerCalibration (): LONGCARD;
  100.   BEGIN
  101.     ASSEMBLER
  102.         MOVE    #6,-(A7)
  103.         TRAP    #13
  104.         ADDQ.L  #2,A7
  105.         MOVE.L  D0,(A3)+
  106.     END
  107.   END TimerCalibration;
  108.  
  109. PROCEDURE GetBPB (drive0: CARDINAL): BPBPtr;
  110.   BEGIN
  111.     ASSEMBLER
  112.         MOVE.W  -(A3),-(A7)
  113.         MOVE    #7,-(A7)
  114.         TRAP    #13
  115.         ADDQ.L  #4,A7
  116.         MOVE.L  D0,(A3)+
  117.     END
  118.   END GetBPB;
  119.  
  120. PROCEDURE MediaChange (drive0: CARDINAL): MCState;
  121.   BEGIN
  122.     ASSEMBLER
  123.         MOVE.W  -(A3),-(A7)
  124.         MOVE    #9,-(A7)
  125.         TRAP    #13
  126.         ADDQ.L  #4,A7
  127.         MOVE.W  D0,(A3)+
  128.     END
  129.   END MediaChange;
  130.  
  131. PROCEDURE DriveMap (): DriveSet;
  132.   BEGIN
  133.     ASSEMBLER
  134.         MOVE    #10,-(A7)
  135.         TRAP    #13
  136.         ADDQ.L  #2,A7
  137.         MOVE.L  D0,(A3)+
  138.     END
  139.   END DriveMap;
  140.  
  141. PROCEDURE SetKBShift (keys: KBShifts);
  142.   BEGIN
  143.     ASSEMBLER
  144.         SUBQ.L  #1,A3
  145.         MOVE.B  -(A3),D0
  146.         MOVE    D0,-(A7)
  147.         MOVE    #11,-(A7)
  148.         TRAP    #13
  149.         ADDQ.L  #4,A7
  150.     END
  151.   END SetKBShift;
  152.  
  153. PROCEDURE GetKBShift (): KBShifts;
  154.   BEGIN
  155.     ASSEMBLER
  156.         MOVE    #-1,-(A7)
  157.         MOVE    #11,-(A7)
  158.         TRAP    #13
  159.         ADDQ.L  #4,A7
  160.         MOVE.B  D0,(A3)+
  161.         CLR.B   (A3)+
  162.     END
  163.   END GetKBShift;
  164.  
  165. END BIOS.
  166.