home *** CD-ROM | disk | FTP | other *** search
/ PC Consument 1997 #6 / pc-consument-1997-6.iso / thoolen / 00000001.exe / rar / PAINT.BAS < prev    next >
BASIC Source File  |  1997-04-22  |  5KB  |  173 lines

  1. DECLARE SUB PALLET (a!, b!, g!, r!)
  2. DECLARE SUB LOOPJE (to$, mx%, my%, kn%, co%)
  3. DIM Punt%(18, 32)
  4. Klr = 63
  5. SCREEN 13
  6. FOR a = 0 TO 279
  7.    b = a
  8.    IF b > 255 THEN b = b - 255
  9.    COLOR b
  10.    PRINT CHR$(219);
  11. NEXT a
  12.  
  13. Klr$ = LTRIM$(STR$(Klr))
  14. Klr$ = STRING$(3 - LEN(Klr$), "0") + Klr$
  15. COLOR 63: LOCATE 25, 37: PRINT Klr$;
  16. COLOR Klr: PRINT CHR$(219);
  17.  
  18. 'Zie routine PALLET(a, r, g, b)
  19. FOR a = 0 TO 63: PALLET a, a, a, a: NEXT a
  20. FOR a = 64 TO 127: PALLET a, a - 64, 0, 0: NEXT a
  21. FOR a = 128 TO 191: PALLET a, 0, a - 128, a - 128: NEXT a
  22. FOR a = 192 TO 255: PALLET a, 0, 0, a - 192: NEXT a
  23.  
  24. Bouw:
  25. 'Punten
  26. FOR a = 1 TO 18: FOR b = 1 TO 32: COLOR Punt%(a, b): LOCATE a + 7, b: PRINT CHR$(219); : NEXT b: NEXT a
  27. LINE (256, 64)-(256, 200), 63
  28. Toets:
  29. Klr$ = LTRIM$(STR$(Klr))
  30. Klr$ = STRING$(3 - LEN(Klr$), "0") + Klr$
  31. COLOR 63: LOCATE 25, 37: PRINT Klr$;
  32. COLOR Klr: PRINT CHR$(219);
  33. 'Zie routine LOOPJE(to$, mx%, my%, kn%, co%)
  34. LOOPJE to$, mx%, my%, kn%, co%
  35. IF to$ = CHR$(27) THEN
  36.    SCREEN 0
  37.    WIDTH 80, 25
  38.    CLS
  39.    SYSTEM
  40. END IF
  41. IF to$ = CHR$(13) THEN
  42.    SCREEN 0
  43.    WIDTH 80, 25
  44.    CLS
  45.    LINE INPUT ".PIC-bestand: "; SGF$
  46.    SGF$ = LTRIM$(UCASE$(RTRIM$(SGF$)))
  47.    a = INSTR(SGF$, ".")
  48.    IF a = 0 THEN
  49.       PRINT "Geen extentie aangegeven"
  50.       PRINT SGF$; ".PIC van maken [J/N]?";
  51.       x = CSRLIN: y = POS(1)
  52.       a$ = ""
  53.       DO
  54.          LOCATE x, y, 1: PRINT a$;
  55.          IF a$ <> "" THEN BEEP
  56.          a$ = UCASE$(INPUT$(1))
  57.       LOOP WHILE a$ <> "J" AND a$ <> "N"
  58.       LOCATE x, y, 0: PRINT a$;
  59.       IF a$ = "J" THEN SGF$ = SGF$ + ".PIC"
  60.    END IF
  61.    PRINT
  62.    p1# = .0015625: x = CSRLIN
  63.    c# = 0
  64.    OPEN SGF$ FOR OUTPUT AS #1
  65.       FOR a = 0 TO 320
  66.          FOR b = 0 TO 200
  67.             c# = c# + 1
  68.             'Aantal tellen─┐
  69.             '1%──────┐     │
  70.             Proc# = p1# * c#
  71.             IF Proc# > 100 THEN Proc# = 100  'Loopt tot 100.81 vreemd genoeg
  72.             'Voor extra duidelijkheid─────────────────────────────┐
  73.             'Procent-getal─────────────────────────────────────┐  │
  74.             LOCATE x, 1: PRINT USING "Bezig met figuur opslaan###.## procent"; Proc#;
  75.             IF b < 19 AND a < 33 THEN c = Punt%(b, a) ELSE c = 0
  76.             PRINT #1, c;
  77.             IF b < 200 THEN PRINT #1, ",";  ELSE PRINT #1, ""
  78.          NEXT b
  79.       NEXT a
  80.       PRINT
  81.       PRINT "Bezig met pallet opslaan"
  82.       FOR a = 0 TO 63: PRINT #1, a; ","; a; ","; a: NEXT a
  83.       FOR a = 64 TO 127: PRINT #1, 0; ","; 0; ","; a - 64: NEXT a
  84.       FOR a = 128 TO 191: PRINT #1, a - 128; ","; a - 128; ","; 0: NEXT a
  85.       FOR a = 192 TO 255: PRINT #1, a - 192; ","; 0; ","; 0: NEXT a
  86.    CLOSE #1
  87.    SYSTEM
  88. END IF
  89. IF kn% = 1 THEN
  90.    IF mx% < 8 THEN
  91. 'Totale X-as──────┬─+1─┐
  92. 'Op X-as─────┐    │    │     ┌─────Op de Y-as
  93.       Klr = mx% * 40 - 41 + my%
  94.       IF Klr > 255 THEN Klr = Klr - 255
  95.    END IF
  96.    IF mx% > 7 AND my% < 33 THEN
  97.       x = mx% - 7
  98.       Punt%(x, my%) = Klr
  99.       GOTO Bouw
  100.    END IF
  101. END IF
  102. GOTO Toets
  103.  
  104. SUB LOOPJE (to$, mx%, my%, kn%, co%)
  105.    'ASCII────┘    │    │    │    └─────Toetsenbordcode
  106.    'Muis X-as─────┘    │    └─────Muisknop
  107.    '               Muis Y-as
  108.    COLOR 63
  109.    DEF SEG = &H40
  110.    tx& = PEEK(&H84) + 1
  111.    DEF SEG = 0
  112.    MouseSeg% = PEEK(51 * 4 + 2) + 256 * PEEK(51 * 4 + 3)
  113.    MouseCode% = PEEK(51 * 4) + 256 * PEEK(51 * 4 + 1) + 2
  114.    DEF SEG = MouseSeg%
  115.    ma% = 1: mb% = 0: mc% = 0: md% = 0
  116.    '* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * │
  117.    '  In QBasic werkt dit foutloos, in QuickBasic moet je QB /L typen     * │
  118.       CALL ABSOLUTE(ma%, mb%, mc%, md%, MouseCode%)'                      *
  119.    '* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ■
  120.    ma% = 3
  121.    CALL ABSOLUTE(ma%, mb%, my%, mx%, MouseCode%)
  122.    DEF SEG
  123.    DO
  124.       DEF SEG = MouseSeg%
  125.       ma% = 3
  126.       CALL ABSOLUTE(ma%, kn%, my%, mx%, MouseCode%)
  127.       DEF SEG
  128.       DEF SEG = 0
  129.       co% = PEEK(&H417)
  130.       IF co% >= 128 THEN co% = co% - 128
  131.       IF co% >= 64 THEN co% = co% - 64
  132.       IF co% >= 32 THEN co% = co% - 32
  133.       IF co% >= 16 THEN co% = co% - 16
  134.       DEF SEG
  135.       to$ = INKEY$
  136.       my% = my% / 16 + .5
  137.       mx% = mx% / 8 + .5
  138.       IF my% = 0 THEN my% = 1
  139.       IF mx% = 0 THEN mx% = 1
  140.       mx$ = LTRIM$(STR$(mx%))
  141.       my$ = LTRIM$(STR$(my%))
  142.       mx$ = STRING$(2 - LEN(mx$), "0") + mx$
  143.       my$ = STRING$(2 - LEN(my$), "0") + my$
  144.       LOCATE 24, 36: PRINT mx$; ","; my$;
  145.    LOOP WHILE kn% = 0 AND co% = 0 AND to$ = ""
  146.    DO
  147.       DEF SEG = MouseSeg%
  148.       ma% = 3
  149.       CALL ABSOLUTE(ma%, te%, my%, mx%, MouseCode%)
  150.       DEF SEG
  151.       my% = my% / 16 + .5
  152.       mx% = mx% / 8 + .5
  153.       IF my% = 0 THEN my% = 1
  154.       IF mx% = 0 THEN mx% = 1
  155.       mx$ = LTRIM$(STR$(mx%))
  156.       my$ = LTRIM$(STR$(my%))
  157.       mx$ = STRING$(2 - LEN(mx$), "0") + mx$
  158.       my$ = STRING$(2 - LEN(my$), "0") + my$
  159.       LOCATE 24, 36: PRINT mx$; ","; my$;
  160.    LOOP WHILE te% <> 0
  161.    DEF SEG = MouseSeg%
  162.    ma% = 2: mb% = 0: mc% = 0: md% = 0
  163.    CALL ABSOLUTE(ma%, mb%, mc%, md%, MouseCode%)
  164.    DEF SEG
  165. END SUB
  166.  
  167. SUB PALLET (a, b, g, r)
  168. 'Tinten blauw─────────┐         ┌────────Tinten groen
  169. 'Attribuut─┐          │         │   ┌──────Tinten rood
  170.    PALETTE a, 65536 * b + 256 * g + r
  171. END SUB
  172.  
  173.