
7.  ணࠬ஢   VGA  ᨪ
-----------------------------------------------------------------
     
     ᫥ ஡ 㦤 ணࠬ஢     VGA
 ᪠   ᬮਬ  㯠   VGA  
⮢ ୮ 몠  ணࠬ஢  ᨪ.  ஡
ᠭ 㭪権  VGA    ᬠਢ  쭥襬
몮 㦥  ਢ.
     
     ⥫쭮,       㤥   ᮤঠ   
᫥⥫쭮⥩ ᠭ 楤,    㭪権.  
⮣  ᬮਬ  "蠡"  ணࠬ    ᪮쪮  ਬ஢.
⮬ ணࠬ,    騩  ᨪ,  ᬮ   
⮣ 蠡 ந ᮡ⢥ ணࠬ,    
맮 BIOS    ᮧ ப ᯥ ᪨  
ᮮ⢥饬 몥.  㭪樨 BIOS ஡  ᬠਢ  
 3.1.
     
7.1  Turbo BASIC  PowerBASIC
-----------------------------------------------------------------
     
      ணࠬ஢   -०  19  (⭠筮
13)    ᨪ              ,
묨 ⥬,  뫨 ᯮ짮  ⮣  Turbo Pascal.
砫 ᬮਬ  Turbo  BASIC    ⠭ 
⮣ .
     
7.1.1   Turbo BASIC  PowerBASIC
-----------------------------------------------------------------
     
     騥 ਬ  ணࠬ  ॡ    ⥪  
Turbo BASIC.    ࠧ    ।祭   㦨   
ᠭ    Turbo BASIC.  ,   ᪮쪮
। ᯮ㥬  ,      ॡ   ⥫쭮
᭥.
     
-----------------------------------------------------------------
Def Seg...           ।  ᥣ   POKE.
     
Poke...              אַ  祭, 稭   ,
                     । । ⨬  ᫮.
     
for n=... to... next ᫮ 横  稪 n.
     
Reg...,...           ᢮ ६ 祭, ।
                      ॣ .
     
Call Interrupt...     祭  ॣ  १
                     뢠.
     
Screen...            祭 -० ( ० ⭠-
                     筮 13  ࠡ⠥).
     
Print"..."           뢮 ⥪ ( ப)  ࠭.
-----------------------------------------------------------------
                                                                 
     
7.1.2  ਬ ணࠬ  Turbo BASIC  PowerBASIC
-----------------------------------------------------------------
     
     ணࠬ INTBASIC 믮 , 祬 筠 
㭪 ணࠬ INTPASCAL,  ᠭ  Turbo Pascal:
     
Program inTPascal;
uses dos,crt,vga19;
var x,y,z,Color: integer;
begin
  VMode(19);
  directvideo:=false;
  Randomize;
  writeln(' 樮 ணࠬ  -० 19 ');
  writeln('    (c)  1990 Jan Rueggeberg    ');
  plot(319,199,100);
  for y := 24 to 100 do begin
   for x := 0 to 319 do begin
    z := x; if z>255 then z := z-255;
    Mem[$a000 + y*20:x] := z;
   end;
  end;
  for z := 0 to 10000 do begin
   x := Random(320);
   y := Random(184)+16;
   Color := Random(256);
   Mem[$a000 + y*20:x] := Color;
  end;
  ZeroKey; repeat until keypressed;
end.
     
                                                          
10 ProgramInTBasic:
20 EnableVModeHex13:
30  Screen 10    : Rem 祭 ० $11
35               : Rem    ॣ஢
40  Reg 1,&H0013
50  Call Interrupt &h10
60  PrintInVModeHex13:
70  Print" 樮 ணࠬ  -० 19"
80  Print"    (c) 1990 Jan Rueggeberg    "
90  SetPixel:               : Rem 뢮
100  Def Seg = &Ha000       : Rem   ࠭.
110  Poke 199*320 + 319,100 : Rem 饭 ᥫ  
115                         : Rem ࠢ 㣮 ࠭.
120   Rem  ^y-value  ^x-value
130  FillScreenWithStandardPalette:
140   for y = 24 to 100 step 1
150    for x = 0 to 319 step 1
160     z=x: if z>255 then z=z-255
170      poke y*320+x, z  : Rem Plot
180     next x
190    next y
200 RandomPlot:
210  Randomize WXYZ
220   for z=0 to 10000
230    x=int(rnd*320)
240    y=int(rnd*200)
250    TheColor=int(rnd*256)
260    poke y*320+x,TheColor : Rem Plot
270   next z
                                                     
     
7.2  Quick BASIC
-----------------------------------------------------------------
     
     㣨   ⮬   ᨪ,   騬   
権 몮   ᮪   ஢,       
ᨪ,  Quick BASIC.
     
     Quick BASIC ᨨ 4.5       ࠡ    
VGA-BIOS.
     
7.2.1   Quick BASIC
-----------------------------------------------------------------
     
       ⮨  몠  Quick  BASIC  ⮨    稨
⠭ ,     ணࠬ஢ 
஢ ॣ஢.  ਬ,      ३    -०
19  (⭠筮  13)  ।⢥ 
SCREEN 13.
     
     㬥, ⠪  ࠧ           ᥬ
㭪 VGA-BIOS.  ਬ,  ᫮  樨    ன,
ᠭ   6,  ॡ ணࠬ஢  ᮮ⢥
ॣ஢.
     
        ᪮쪮   ,  ਬ PSET 
CIRCLE,    ᯮ짮  ० 19.
     
      PSET  ᮮ⢥    Plot    ७
   ᪠.     ॡ אַ  祭 
   POKE.
     
      CIRCLE      ᮡ,    ன   
ᮢ⨬  ० 19:
     
     樥 ᦠ         x      y  ࠢ  5:6,  
ᮮ⢥ ࠧ襭  EGA 320*200  ᥫ.    
ࠢ   祭   ᯮ짮  VGA,   ࠬ
Aspect, ࠢ 1.
     
7.7.2  ਬ ணࠬ  Quick BASIC
-----------------------------------------------------------------
     
10  ProgramInQBasic:
12
14  '$INCLUDE: 'qbx.bi'
20  DEFINT A-Z
25  DIM InRegs AS RegType, Outregs AS RegType
30
40  EnableVMode19:
50   SCREEN 11: REM ० IBM $11 (17 筮) ⠭ ॣ
60   SCREEN 13: REM 梥 ० (VGA/MCGA) $13 (19 筮)
70
80  WriteInVModeHex13:
85    COLOR (1)
90    PRINT "  -० 19  QuickBASIC V4.5 "
100   PRINT "  (c) 1990  Jan  &  Helke  Rueggeberg  "
110
120  SetPixels:
130   PSET (319, 199), 100
140
150 FillScreenWithStandardPalette:
160  FOR y = 100 TO 150 STEP 1
170   FOR x = 2 TO 317 STEP 1
180    VColor = x / 320 * 256 + RND * 2: IF VColor > 255 THEN VColor = VColor - 255
190    PSET (x, y), VColor
200   NEXT x
210  NEXT y
220
230 RandomPlot:
240  RANDOMIZE WXYZ
250  FOR z = 2 TO 400
260   x = INT(RND * 320)
270   y = INT(RND * 184) + 16
280   VColor = INT(RND * 256)
290   PSET (x, y), VColor
300  NEXT z
310
400 DrawCircles:
410  FOR x = 240 TO 2 STEP -1
420   CIRCLE (x / 2 + 40, x / 3 + 40), x / 5, 256 - x, 0, x / 43, 1
423   CIRCLE (x / 2 + 41, x / 3 + 40), x / 5, 256 - x, 0, x / 43, 1
425   CIRCLE (x / 2 + 80, -x / 3 + 160), x / 5, x, -x / 43, 0, 1
428   CIRCLE (x / 2 + 81, -x / 3 + 160), x / 5, x, -x / 43, 0, 1
430   REM Unlike book and default parameters in mode 19,       ^  ^
440   REM parameter aspect -> x/y -> 1/1 = 1                   ^  ^
450  NEXT x
460
470 Entry1:
480 F1 = 1: B1 = 15: G1 = 2: R1 = 11
485 F2 = 255: B2 = 42: G2 = 58: R2 = 63
487 Counter = 1
490
500 Blend:
510  nr = F2 - F1
520   FOR x = 0 TO nr
530    IF nr > 0 THEN Blue = (B1 * (nr - x) + B2 * (x)) / nr
540    IF nr > 0 THEN Green = (G1 * (nr - x) + G2 * (x)) / nr
550    IF nr > 0 THEN Red = (R1 * (nr - x) + R2 * (x)) / nr
570    VColornumber = F1 + x
580    GOTO VGAPalette
585    DoubleBack:
590  NEXT x
595
600 Entry2:
610  VColornumber = 1: Blue = 25: Green = 32: Red = 29
620 Counter = 2
630
700 VGAPalette:
710  IF Blue > 63 THEN Blue = 63: IF Blue < 0 THEN Blue = 0
720  IF Green > 63 THEN Green = 63: IF Green < 0 THEN Green = 0
730  IF Red > 63 THEN Red = 63: IF Red < 0 THEN Red = 0
740    AL = &H10: AH = &H10
742   InRegs.ax = AH * 256 + AL
744   InRegs.bx = VColornumber
746    CL = Blue: CH = Green
748   InRegs.cx = CH * 256 + CL
750    DH = Red
752   InRegs.dx = DH * 256 + 0
760  CALL Interrupt(&H10, InRegs, Outregs)
765
770 IF Counter = 1 THEN GOTO DoubleBack:
780 IF Counter = 2 THEN END
790
800 END

     
     
     
     
