home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_disks / 100-199 / ff158.lzh / MemBoardTest / mdraw.mod < prev    next >
Text File  |  1988-10-02  |  4KB  |  137 lines

  1. IMPLEMENTATION MODULE mdraw;
  2.  
  3.  
  4. FROM SYSTEM IMPORT ADDRESS;
  5. FROM myscreen IMPORT RP;
  6. FROM Pens IMPORT SetAPen, SetDrMd, RectFill,Move;
  7. FROM Text IMPORT Text;
  8. FROM GraphicsLibrary IMPORT DrawingModes,DrawingModeSet,Jam1;
  9. FROM Strings IMPORT String;
  10.  
  11.    PROCEDURE initmatrix; 
  12.    VAR i:CARDINAL;
  13.        tx: String;
  14.        testadr : LONGCARD;
  15.    BEGIN
  16.       SetAPen(RP,4);
  17.       testadr := 0;
  18.       WHILE testadr < 1000000H DO
  19.          drawpixel(ADDRESS(testadr),4);
  20.          INC(testadr,10000H);
  21.          END; (* while *)
  22.       FOR i:=0 TO 9 DO
  23.          tx[0]:=CHR(i + ORD('0'));
  24.          Move(RP,310,65+i*15);
  25.          Text(RP,tx,1);
  26.          END; (* for *)
  27.       FOR i:=0 TO 5 DO
  28.          tx[0]:=CHR(i + ORD('A'));
  29.          Move(RP,310,215+i*15);
  30.          Text(RP,tx,1);
  31.          END; (* for *)
  32.       FOR i:=0 TO 9 DO
  33.          tx[0]:=CHR(i + ORD('0'));
  34.          Move(RP,330+i*20,45);
  35.          Text(RP,tx,1);
  36.          END; (* for *)
  37.       FOR i:=0 TO 5 DO
  38.          tx[0]:=CHR(i + ORD('A'));
  39.          Move(RP,530+i*20,45);
  40.          Text(RP,tx,1);
  41.          END; (* for *)
  42.       SetAPen(RP,1);
  43.    END initmatrix;
  44.  
  45.  
  46.    PROCEDURE drawpixel(adr:ADDRESS; colour:CARDINAL);
  47.    VAR ex,wy:CARDINAL;
  48.    BEGIN
  49.       ex:=CARDINAL(adr DIV 1048576);
  50.       wy:=CARDINAL((adr MOD 1048576) DIV 65536);
  51.       SetAPen(RP,colour);
  52.       SetDrMd(RP,DrawingModeSet(Complement));
  53.       RectFill(RP,330+ex*20,60+wy*15,330+ex*20+5,60+wy*15+5);
  54.    END drawpixel;
  55.  
  56.    PROCEDURE drawbar(xstart,ystart,length : CARDINAL);
  57.    BEGIN
  58.       RectFill(RP,xstart,ystart-length,xstart+5,ystart);
  59.    END drawbar;
  60.          
  61.    
  62.    PROCEDURE drawstats;
  63.    
  64.    VAR j : CARDINAL;
  65.        tx : String;
  66.        adrmaximum,datamaximum : LONGCARD;  
  67.    BEGIN
  68.       SetAPen(RP,0);
  69.       RectFill(RP,0,300,639,399);
  70.       
  71.       adrmaximum:=0;
  72.       FOR j:= 0 TO 23 DO
  73.          IF LONGCARD(addressbits[j]) > adrmaximum THEN
  74.             adrmaximum := LONGCARD(addressbits[j]);
  75.             END; (* if *)
  76.          END; (* for *)
  77.  
  78.       datamaximum:=0;
  79.       FOR j:= 0 TO 15 DO
  80.          IF LONGCARD(databits[j]) > datamaximum THEN
  81.             datamaximum := LONGCARD(databits[j]);
  82.             END; (* if *)
  83.          END; (* for *)
  84.          
  85.       tx[1]:=CHR(0);
  86.       
  87.       SetAPen(RP,6);
  88.       FOR j:= 0 TO 23 DO
  89.          IF addressbits[j] > 0 THEN
  90.             drawbar(50+j*10,380,CARDINAL(TRUNC(FLOAT(addressbits[j]) * 80.0
  91.                                                              / FLOAT(adrmaximum))));
  92.             END; (* if *)
  93.          Move(RP,50+j*10,399);
  94.          tx[0]:=CHR((j MOD 10) + ORD('0'));
  95.          Text(RP,tx,1);
  96.  
  97.          Move(RP,50+j*10,390);
  98.          tx[0]:=CHR((j DIV 10) + ORD('0'));
  99.          Text(RP,tx,1);
  100.  
  101.          END; (* for *)
  102.          
  103.       SetAPen(RP,6);
  104.       FOR j:= 0 TO 15 DO
  105.          IF databits[j] > 0 THEN
  106.             drawbar(350+j*10,380,CARDINAL(TRUNC(FLOAT(databits[j]) * 80.0
  107.                                                              / FLOAT(datamaximum))));
  108.             END; (* if *)  
  109.          Move(RP,350+j*10,399);
  110.          tx[0]:=CHR((j MOD 10) + ORD('0'));
  111.          Text(RP,tx,1);
  112.  
  113.          Move(RP,350+j*10,390);
  114.          tx[0]:=CHR((j DIV 10) + ORD('0'));
  115.          Text(RP,tx,1);
  116.  
  117.          END; (* for *)
  118.                      
  119.       
  120.       SetAPen(RP,2);
  121.       SetDrMd(RP,Jam1);
  122.       Move(RP,100,340);
  123.       
  124.       tx:='BAD ADDRESS BITS';
  125.       Text(RP,tx,16);
  126.  
  127.       Move(RP,370,340);
  128.       
  129.       tx:='BAD DATA BITS';
  130.       Text(RP,tx,13);
  131.  
  132.       SetDrMd(RP,DrawingModeSet(Complement));
  133.  
  134.    END drawstats;
  135.  
  136. END mdraw.
  137.