_  __   _  _         _ _     _      _           _           
  __| |/ /_ | || |     __| (_)___| | __ (_)_ __   __| | _____  __
 / _` | '_ \| || |_   / _` | / __| |/ / | | '_ \ / _` |/ _ \ \/ /
| (_| | (_) |__   _| | (_| | \__ \   <  | | | | | (_| |  __/>  < 
 \__,_|\___/   |_|    \__,_|_|___/_|\_\ |_|_| |_|\__,_|\___/_/\_\
                                                                 
            

DOODLE.C

FILE INFORMATION

FILENAME(S): DOODLE.C

FILE TYPE(S): SEQ

FILE SIZE: 1.8K

FIRST SEEN: 2025-11-30 21:15:11

APPEARS ON: 1 disk(s)

FILE HASH

85682b39db24cbacccacef532bcd078c1cfe54f6f7152e88da4d610334b06f9b

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
TRANSACTOR DISK DOODLE.C SEQ DuncanTwain 27 1 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 43 48 41 52 20 D0 4C 4F  54 D4 59 50 45 3B 0D 0D  |CHAR .LOT.YPE;..|
00000010: 4D 41 49 4E 20 28 29 0D  DB 0D 20 20 20 43 48 41  |MAIN ()...   CHA|
00000020: 52 20 2A D0 4F 49 4E 54  45 52 2C 20 CB 45 59 2C  |R *.OINTER, .EY,|
00000030: 20 D3 54 4F 52 45 31 2C  20 D3 54 4F 52 45 32 2C  | .TORE1, .TORE2,|
00000040: 20 D3 54 4F 52 45 33 3B  0D 20 20 20 55 4E 53 49  | .TORE3;.   UNSI|
00000050: 47 4E 45 44 20 49 4E 54  20 CC 4F 4F 50 2C 20 D8  |GNED INT .OOP, .|
00000060: 2C 20 D9 3B 0D 0D 20 20  20 48 49 47 48 4D 45 4D  |, .;..   HIGHMEM|
00000070: 20 28 30 58 C3 C3 30 30  29 3B 0D 0D 20 20 20 D0  | (0X..00);..   .|
00000080: 4F 49 4E 54 45 52 20 3D  20 30 58 C4 C4 30 30 3B  |OINTER = 0X..00;|
00000090: 0D 20 20 20 2A D0 4F 49  4E 54 45 52 20 3D 20 28  |.   *.OINTER = (|
000000A0: D3 54 4F 52 45 31 20 3D  20 2A D0 4F 49 4E 54 45  |.TORE1 = *.OINTE|
000000B0: 52 29 20 26 20 32 35 32  3B 0D 20 20 20 D0 4F 49  |R) & 252;.   .OI|
000000C0: 4E 54 45 52 20 3D 20 30  58 C4 30 31 31 3B 20 20  |NTER = 0X.011;  |
000000D0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000000E0: 20 20 2F 2A 20 D4 55 52  4E 20 4F 4E 20 C7 52 41  |  /* .URN ON .RA|
000000F0: 50 48 49 43 53 20 2A 2F  0D 20 20 20 2A D0 4F 49  |PHICS */.   *.OI|
00000100: 4E 54 45 52 20 3D 20 28  D3 54 4F 52 45 32 20 3D  |NTER = (.TORE2 =|
00000110: 20 2A D0 4F 49 4E 54 45  52 29 20 DF 20 33 32 3B  | *.OINTER) . 32;|
00000120: 0D 20 20 20 D0 4F 49 4E  54 45 52 20 3D 20 30 58  |.   .OINTER = 0X|
00000130: C4 30 31 38 3B 0D 20 20  20 D3 54 4F 52 45 33 20  |.018;.   .TORE3 |
00000140: 3D 20 2A D0 4F 49 4E 54  45 52 3B 0D 20 20 20 2A  |= *.OINTER;.   *|
00000150: D0 4F 49 4E 54 45 52 20  3D 20 30 58 33 38 3B 0D  |.OINTER = 0X38;.|
00000160: 0D 20 20 20 D0 4F 49 4E  54 45 52 20 3D 20 30 58  |.   .OINTER = 0X|
00000170: 30 32 38 41 3B 20 20 20  20 20 20 20 20 20 20 20  |028A;           |
00000180: 20 20 20 20 20 20 20 20  20 2F 2A 20 D4 55 52 4E  |         /* .URN|
00000190: 20 4F 4E 20 4B 45 59 20  52 45 50 45 41 54 20 2A  | ON KEY REPEAT *|
000001A0: 2F 0D 20 20 20 2A D0 4F  49 4E 54 45 52 20 3D 20  |/.   *.OINTER = |
000001B0: 31 32 38 3B 0D 20 20 20  C6 41 53 54 CB 45 59 53  |128;.   .AST.EYS|
000001C0: 20 28 29 3B 0D 0D 20 20  20 C3 4C 45 41 52 20 28  | ();..   .LEAR (|
000001D0: 30 58 C3 C3 30 30 2C 20  31 30 30 30 2C 20 39 33  |0X..00, 1000, 93|
000001E0: 29 3B 20 20 20 20 20 20  20 20 20 20 20 20 2F 2A  |);            /*|
000001F0: 20 C3 4C 45 41 52 20 43  4F 4C 4F 52 20 53 43 52  | .LEAR COLOR SCR|
00000200: 45 45 4E 20 2A 2F 0D 20  20 20 C3 4C 45 41 52 20  |EEN */.   .LEAR |
00000210: 28 30 58 C5 30 30 30 2C  20 38 30 30 30 2C 20 30  |(0X.000, 8000, 0|
00000220: 29 3B 20 20 20 20 20 20  20 20 20 20 20 20 20 2F  |);             /|
00000230: 2A 20 C3 4C 45 41 52 20  42 49 54 4D 41 50 20 2A  |* .LEAR BITMAP *|
00000240: 2F 0D 20 20 20 D0 4C 4F  54 D4 59 50 45 20 3D 20  |/.   .LOT.YPE = |
00000250: 31 3B 0D 20 20 20 D8 20  3D 20 31 36 30 3B 0D 20  |1;.   . = 160;. |
00000260: 20 20 D9 20 3D 20 31 30  30 3B 0D 20 20 20 D0 4C  |  . = 100;.   .L|
00000270: 4F 54 20 28 D8 2C D9 29  3B 0D 20 20 20 57 48 49  |OT (.,.);.   WHI|
00000280: 4C 45 20 28 28 CB 45 59  20 3D 20 57 41 49 54 4B  |LE ((.EY = WAITK|
00000290: 45 59 28 29 29 20 21 3D  20 33 29 0D 20 20 20 DB  |EY()) != 3).   .|
000002A0: 0D 20 20 20 20 20 20 53  57 49 54 43 48 20 28 CB  |.      SWITCH (.|
000002B0: 45 59 29 0D 20 20 20 20  20 20 DB 0D 20 20 20 20  |EY).      ..    |
000002C0: 20 20 20 20 20 43 41 53  45 20 27 49 27 3A 0D 20  |     CASE 'I':. |
000002D0: 20 20 20 20 20 20 20 20  43 41 53 45 20 27 C9 27  |        CASE '.'|
000002E0: 3A 20 D0 4C 4F 54 20 28  D8 2C 2D 2D D9 29 3B 20  |: .LOT (.,--.); |
000002F0: 20 20 20 20 20 20 20 2F  2A 20 C1 4C 4C 4F 57 20  |       /* .LLOW |
00000300: 55 53 45 52 20 54 4F 20  44 52 41 57 20 4C 49 4E  |USER TO DRAW LIN|
00000310: 45 53 20 20 2A 2F 0D 20  20 20 20 20 20 20 20 20  |ES  */.         |
00000320: 20 20 20 20 20 20 20 20  20 20 42 52 45 41 4B 3B  |          BREAK;|
00000330: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 2F  |               /|
00000340: 2A 20 42 59 20 55 53 49  4E 47 20 54 48 45 20 C9  |* BY USING THE .|
00000350: 2C 20 CA 2C 20 CB 2C 20  CD 20 20 20 2A 2F 0D 20  |, ., ., .   */. |
00000360: 20 20 20 20 20 20 20 20  43 41 53 45 20 27 4D 27  |        CASE 'M'|
00000370: 3A 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |:               |
00000380: 20 20 20 20 20 20 20 2F  2A 20 44 49 41 4D 4F 4E  |       /* DIAMON|
00000390: 44 2E 20 20 2D 2C 20 2B  2C 20 41 4E 44 20 2F 20  |D.  -, +, AND / |
000003A0: 53 45 54 20 2A 2F 0D 20  20 20 20 20 20 20 20 20  |SET */.         |
000003B0: 43 41 53 45 20 27 CD 27  3A 20 D0 4C 4F 54 20 28  |CASE '.': .LOT (|
000003C0: D8 2C 2B 2B D9 29 3B 20  20 20 20 20 20 20 20 2F  |.,++.);        /|
000003D0: 2A 20 43 4C 45 41 52 2C  20 53 45 54 2C 20 4F 52  |* CLEAR, SET, OR|
000003E0: 20 46 4C 49 50 20 4D 4F  44 45 20 20 2A 2F 0D 20  | FLIP MODE  */. |
000003F0: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000400: 20 20 42 52 45 41 4B 3B  20 20 20 20 20 20 20 20  |  BREAK;        |
00000410: 20 20 20 20 20 20 20 2F  2A 20 52 45 53 50 45 43  |       /* RESPEC|
00000420: 54 49 56 45 4C 59 2E 20  20 D3 D4 CF D0 20 45 58  |TIVELY.  .... EX|
00000430: 49 54 53 20 2A 2F 0D 20  20 20 20 20 20 20 20 20  |ITS */.         |
00000440: 43 41 53 45 20 27 4A 27  3A 0D 20 20 20 20 20 20  |CASE 'J':.      |
00000450: 20 20 20 43 41 53 45 20  27 CA 27 3A 20 D0 4C 4F  |   CASE '.': .LO|
00000460: 54 20 28 2D 2D D8 2C D9  29 3B 0D 20 20 20 20 20  |T (--.,.);.     |
00000470: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 42 52  |              BR|
00000480: 45 41 4B 3B 0D 20 20 20  20 20 20 20 20 20 43 41  |EAK;.         CA|
00000490: 53 45 20 27 4B 27 3A 0D  20 20 20 20 20 20 20 20  |SE 'K':.        |
000004A0: 20 43 41 53 45 20 27 CB  27 3A 20 D0 4C 4F 54 20  | CASE '.': .LOT |
000004B0: 28 2B 2B D8 2C D9 29 3B  0D 20 20 20 20 20 20 20  |(++.,.);.       |
000004C0: 20 20 20 20 20 20 20 20  20 20 20 20 42 52 45 41  |            BREA|
000004D0: 4B 3B 0D 20 20 20 20 20  20 20 20 20 43 41 53 45  |K;.         CASE|
000004E0: 20 27 2D 27 3A 20 D0 4C  4F 54 D4 59 50 45 20 3D  | '-': .LOT.YPE =|
000004F0: 20 30 3B 0D 20 20 20 20  20 20 20 20 20 20 20 20  | 0;.            |
00000500: 20 20 20 20 20 20 20 D0  4C 4F 54 20 28 D8 2C 20  |       .LOT (., |
00000510: D9 29 3B 0D 20 20 20 20  20 20 20 20 20 20 20 20  |.);.            |
00000520: 20 20 20 20 20 20 20 42  52 45 41 4B 3B 0D 20 20  |       BREAK;.  |
00000530: 20 20 20 20 20 20 20 43  41 53 45 20 27 2B 27 3A  |       CASE '+':|
00000540: 20 D0 4C 4F 54 D4 59 50  45 20 3D 20 31 3B 0D 20  | .LOT.YPE = 1;. |
00000550: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000560: 20 20 D0 4C 4F 54 20 28  D8 2C 20 D9 29 3B 0D 20  |  .LOT (., .);. |
00000570: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000580: 20 20 42 52 45 41 4B 3B  0D 20 20 20 20 20 20 20  |  BREAK;.       |
00000590: 20 20 43 41 53 45 20 27  2F 27 3A 20 D0 4C 4F 54  |  CASE '/': .LOT|
000005A0: D4 59 50 45 20 3D 20 32  3B 0D 20 20 20 20 20 20  |.YPE = 2;.      |
000005B0: 20 20 20 20 20 20 20 20  20 20 20 20 20 D0 4C 4F  |             .LO|
000005C0: 54 20 28 D8 2C 20 D9 29  3B 0D 20 20 20 20 20 20  |T (., .);.      |
000005D0: DD 0D 20 20 20 DD 0D 0D  20 20 20 D3 4C 4F 57 CB  |..   ...   .LOW.|
000005E0: 45 59 53 20 28 29 3B 0D  0D 20 20 20 D0 4F 49 4E  |EYS ();..   .OIN|
000005F0: 54 45 52 20 3D 20 30 58  C4 C4 30 30 3B 0D 20 20  |TER = 0X..00;.  |
00000600: 20 2A D0 4F 49 4E 54 45  52 20 3D 20 D3 54 4F 52  | *.OINTER = .TOR|
00000610: 45 31 3B 0D 20 20 20 D0  4F 49 4E 54 45 52 20 3D  |E1;.   .OINTER =|
00000620: 20 30 58 C4 30 31 31 3B  20 20 20 20 20 20 20 20  | 0X.011;        |
00000630: 20 20 20 20 20 20 20 20  20 20 20 20 2F 2A 20 D2  |            /* .|
00000640: 45 53 54 4F 52 45 20 D4  45 58 54 20 4D 4F 44 45  |ESTORE .EXT MODE|
00000650: 20 2A 2F 0D 20 20 20 2A  D0 4F 49 4E 54 45 52 20  | */.   *.OINTER |
00000660: 3D 20 D3 54 4F 52 45 32  3B 0D 20 20 20 D0 4F 49  |= .TORE2;.   .OI|
00000670: 4E 54 45 52 20 3D 20 30  58 C4 30 31 38 3B 0D 20  |NTER = 0X.018;. |
00000680: 20 20 2A D0 4F 49 4E 54  45 52 20 3D 20 D3 54 4F  |  *.OINTER = .TO|
00000690: 52 45 33 3B 0D DD 0D 0D  0D 23 44 45 46 49 4E 45  |RE3;.....#DEFINE|
000006A0: 20 C7 C5 D4 C9 CE 20 20  30 58 C6 C6 C5 34 0D 0D  | .....  0X...4..|
000006B0: 43 48 41 52 20 41 2C 20  58 2C 20 59 2C 0D 20 20  |CHAR A, X, Y,.  |
000006C0: 20 20 20 2A 4E 55 4D 4B  45 59 53 20 3D 20 31 39  |   *NUMKEYS = 19|
000006D0: 38 3B 0D 0D 2F 2A 20 D7  41 49 54 53 20 46 4F 52  |8;../* .AITS FOR|
000006E0: 20 55 53 45 52 20 54 4F  20 50 52 45 53 53 20 41  | USER TO PRESS A|
000006F0: 20 4B 45 59 20 2A 2F 0D  0D 49 4E 54 20 57 41 49  | KEY */..INT WAI|
00000700: 54 4B 45 59 20 28 29 0D  0D DB 0D 20 20 20 57 48  |TKEY ()....   WH|
00000710: 49 4C 45 20 28 2A 4E 55  4D 4B 45 59 53 20 3D 3D  |ILE (*NUMKEYS ==|
00000720: 20 30 29 0D 20 20 20 20  20 20 3B 0D 20 20 20 53  | 0).      ;.   S|
00000730: 59 53 20 28 C7 C5 D4 C9  CE 2C 20 26 41 2C 20 26  |YS (....., &A, &|
00000740: 58 2C 20 26 59 29 3B 0D  20 20 20 52 45 54 55 52  |X, &Y);.   RETUR|
00000750: 4E 20 41 3B 0D DD 0D                              |N A;...         |
CHAR PLOTTYPE;..MAIN ()...   CHAR *POINT
ER, KEY, STORE1, STORE2, STORE3;.   UNSI
GNED INT LOOP, X, Y;..   HIGHMEM (0XCC00
);..   POINTER = 0XDD00;.   *POINTER = (
STORE1 = *POINTER) & 252;.   POINTER = 0
XD011;                    /* TURN ON GRA
PHICS */.   *POINTER = (STORE2 = *POINTE
R) . 32;.   POINTER = 0XD018;.   STORE3 
= *POINTER;.   *POINTER = 0X38;..   POIN
TER = 0X028A;                    /* TURN
 ON KEY REPEAT */.   *POINTER = 128;.   
FASTKEYS ();..   CLEAR (0XCC00, 1000, 93
);            /* CLEAR COLOR SCREEN */. 
  CLEAR (0XE000, 8000, 0);             /
* CLEAR BITMAP */.   PLOTTYPE = 1;.   X 
= 160;.   Y = 100;.   PLOT (X,Y);.   WHI
LE ((KEY = WAITKEY()) != 3).   ..      S
WITCH (KEY).      ..         CASE 'I':. 
        CASE 'I': PLOT (X,--Y);        /
* ALLOW USER TO DRAW LINES  */.         
          BREAK;               /* BY USI
NG THE I, J, K, M   */.         CASE 'M'
:                      /* DIAMOND.  -, +
, AND / SET */.         CASE 'M': PLOT (
X,++Y);        /* CLEAR, SET, OR FLIP MO
DE  */.                   BREAK;        
       /* RESPECTIVELY.  STOP EXITS */. 
        CASE 'J':.         CASE 'J': PLO
T (--X,Y);.                   BREAK;.   
      CASE 'K':.         CASE 'K': PLOT 
(++X,Y);.                   BREAK;.     
    CASE '-': PLOTTYPE = 0;.            
       PLOT (X, Y);.                   B
REAK;.         CASE '+': PLOTTYPE = 1;. 
                  PLOT (X, Y);.         
          BREAK;.         CASE '/': PLOT
TYPE = 2;.                   PLOT (X, Y)
;.      ..   ...   SLOWKEYS ();..   POIN
TER = 0XDD00;.   *POINTER = STORE1;.   P
OINTER = 0XD011;                    /* R
ESTORE TEXT MODE */.   *POINTER = STORE2
;.   POINTER = 0XD018;.   *POINTER = STO
RE3;.....#DEFINE GETIN  0XFFE4..CHAR A, 
X, Y,.     *NUMKEYS = 198;../* WAITS FOR
 USER TO PRESS A KEY */..INT WAITKEY ().
...   WHILE (*NUMKEYS == 0).      ;.   S
YS (GETIN, &A, &X, &Y);.   RETURN A;...
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL