home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1987 / 12 / util6502.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1987-09-29  |  1.6 KB  |  63 lines

  1. (* ------------------------------------------------- *)
  2. (*                     UTIL6502.PAS                  *)
  3. (*  systemspezifische Funktionen fuer Apple II mit   *)
  4. (*  Videxkompatibler 80-Zeichenkarte, z.B. IBS AP16  *)
  5. (*  Vorher muss die entsprechende 6502-Schnitt-      *)
  6. (*  stelle definiert werden (z.B. $I IBSAPP22.PAS).  *)
  7.  
  8. PROCEDURE CurOff;
  9. CONST CurReg = $c0b0;  RegAdr = $c0b1;
  10. BEGIN
  11.   Write6502(CurReg,$0a);  Write6502(RegAdr,32);
  12. END;
  13.  
  14. PROCEDURE CurOn;
  15. CONST CurReg = $c0b0;  RegAdr = $c0b1;
  16. BEGIN
  17.   Write6502(CurReg,$0a);  Write6502(RegAdr,96);
  18.   Write6502(CurReg,$0b);  Write6502(RegAdr,8);
  19. END;
  20.  
  21. PROCEDURE German;
  22. BEGIN
  23.   Switch6502($c05e);
  24. END;
  25.  
  26. PROCEDURE ASCII;
  27. BEGIN
  28.   Switch6502($c05f);
  29. END;
  30.  
  31. FUNCTION WhereX : BYTE;     (* funktioniert auch   *)
  32. BEGIN                       (* auf Apple //e       *)
  33.   WhereX := Succ(Read6502($57b));
  34. END;
  35.  
  36. FUNCTION WhereY : BYTE;
  37. BEGIN
  38.   WhereY := Succ(Read6502($5fb));
  39. END;
  40.  
  41. (* folgendes nur Videx-kompatible 80-Zeichenkarte: *)
  42. FUNCTION ScreenAddr (x,y : BYTE) : INTEGER;
  43. CONST ScreenStart = $6fb;
  44. VAR   za          : INTEGER;
  45. BEGIN
  46.   za := (Read6502(ScreenStart) SHL 4
  47.          + Pred(x) + Pred(y) * 80) MOD 2048;
  48.   Switch6502((za SHR 9) SHL 2 + $c0b0);
  49.   ScreenAddr := (za MOD $200) + $cc00;
  50. END;
  51.  
  52. FUNCTION ScreenChar (x,y : BYTE) : CHAR;
  53. BEGIN
  54.   ScreenChar := Chr(Read6502(ScreenAddr(x,y)) AND $7f);
  55. END;
  56.  
  57. PROCEDURE WriteScreen (x,y : BYTE; ch : CHAR);
  58. BEGIN
  59.   Write6502(ScreenAddr(x,y),Ord(ch))
  60. END;
  61. (* ------------------------------------------------- *)
  62. (*                     UTIL6502.PAS                  *)
  63.