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

AUTOMATA.SRC

FILE INFORMATION

FILENAME(S): AUTOMATA.SRC

FILE TYPE(S): SEQ

FILE SIZE: 4.6K

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

APPEARS ON: 1 disk(s)

FILE HASH

5703d02b7cfaba071b8615708c20701564b359f0eeb3d5f01eb32e22bc844ec3

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
TRANSACTOR DISK AUTOMATA.SRC SEQ DuncanTwain 25 4 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 3B 20 20 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |;  *************|
00000010: 2A 2A 2A 2A 2A 2A 0D 3B  20 20 2A 2A 20 20 20 20  |******.;  **    |
00000020: 20 20 20 20 20 20 20 20  20 20 20 2A 2A 0D 3B 20  |           **.; |
00000030: 20 2A 2A 20 20 20 43 45  4C 4C 55 4C 41 52 20 20  | **   CELLULAR  |
00000040: 20 20 2A 2A 0D 3B 20 20  2A 2A 20 20 20 41 55 54  |  **.;  **   AUT|
00000050: 4F 4D 41 54 41 20 20 20  20 2A 2A 0D 3B 20 20 2A  |OMATA    **.;  *|
00000060: 2A 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |*               |
00000070: 2A 2A 0D 3B 20 20 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |**.;  **********|
00000080: 2A 2A 2A 2A 2A 2A 2A 2A  2A 0D 3B 0D 3B 0D 3B 0D  |*********.;.;.;.|
00000090: 3B 20 20 47 45 4F 4D 45  54 52 49 43 20 20 43 4F  |;  GEOMETRIC  CO|
000000A0: 4D 50 55 54 45 52 0D 3B  20 20 20 20 20 20 20 20  |MPUTER.;        |
000000B0: 41 52 54 46 4F 52 4D 53  0D 3B 0D 3B 20 20 20 20  |ARTFORMS.;.;    |
000000C0: 20 20 20 20 46 4F 52 20  20 54 48 45 0D 3B 20 20  |    FOR  THE.;  |
000000D0: 43 4F 4D 4D 4F 44 4F 52  45 20 20 36 34 20 26 20  |COMMODORE  64 & |
000000E0: 31 32 38 0D 3B 0D 3B 20  20 20 20 20 42 59 20 20  |128.;.;     BY  |
000000F0: 49 41 4E 20 20 41 44 41  4D 0D 3B 20 20 20 20 20  |IAN  ADAM.;     |
00000100: 56 41 4E 43 4F 55 56 45  52 20 20 42 43 0D 3B 0D  |VANCOUVER  BC.;.|
00000110: 3B 20 20 20 20 20 4D 41  52 43 48 20 20 20 20 31  |;     MARCH    1|
00000120: 39 38 37 0D 3B 0D 3B 0D  3B 20 54 48 45 20 53 43  |987.;.;.; THE SC|
00000130: 52 45 45 4E 20 49 4D 41  47 45 20 49 53 20 50 4C  |REEN IMAGE IS PL|
00000140: 4F 54 54 45 44 20 31 0D  3B 20 4C 49 4E 45 20 41  |OTTED 1.; LINE A|
00000150: 54 20 41 20 54 49 4D 45  2E 20 20 45 41 43 48 20  |T A TIME.  EACH |
00000160: 50 49 58 45 4C 0D 3B 20  44 45 50 45 4E 44 53 20  |PIXEL.; DEPENDS |
00000170: 4F 4E 20 54 48 45 20 53  55 4D 20 4F 46 20 54 48  |ON THE SUM OF TH|
00000180: 45 20 33 0D 3B 20 50 49  58 45 4C 53 20 41 42 4F  |E 3.; PIXELS ABO|
00000190: 56 45 2C 20 55 53 49 4E  47 20 41 20 50 52 45 53  |VE, USING A PRES|
000001A0: 45 54 0D 3B 20 43 4F 44  45 20 53 55 50 50 4C 49  |ET.; CODE SUPPLI|
000001B0: 45 44 20 42 59 20 54 48  45 20 55 53 45 52 2E 0D  |ED BY THE USER..|
000001C0: 3B 0D 20 5A 50 20 20 20  20 20 3D 20 24 41 36 20  |;. ZP     = $A6 |
000001D0: 3B 38 20 42 59 54 45 53  20 54 45 4D 50 4F 52 41  |;8 BYTES TEMPORA|
000001E0: 52 59 0D 20 52 4F 57 53  20 20 20 3D 20 24 41 36  |RY. ROWS   = $A6|
000001F0: 0D 20 43 4F 4C 55 4D 4E  20 3D 20 24 41 37 0D 20  |. COLUMN = $A7. |
00000200: 42 49 54 53 20 20 20 3D  20 24 41 38 0D 20 41 56  |BITS   = $A8. AV|
00000210: 41 4C 20 20 20 3D 20 24  41 39 0D 20 42 56 41 4C  |AL   = $A9. BVAL|
00000220: 20 20 20 3D 20 24 41 41  0D 20 41 44 52 45 41 44  |   = $AA. ADREAD|
00000230: 20 3D 20 24 46 41 20 3B  52 45 41 44 20 41 44 44  | = $FA ;READ ADD|
00000240: 52 45 53 53 0D 20 41 44  57 52 49 54 20 3D 20 24  |RESS. ADWRIT = $|
00000250: 46 43 20 3B 57 52 49 54  45 20 41 44 44 52 45 53  |FC ;WRITE ADDRES|
00000260: 53 0D 20 4F 55 54 50 55  54 20 3D 20 24 46 45 0D  |S. OUTPUT = $FE.|
00000270: 20 53 43 52 45 45 4E 20  3D 20 24 32 30 30 30 0D  | SCREEN = $2000.|
00000280: 20 42 53 4F 55 54 20 20  3D 20 24 46 46 44 32 0D  | BSOUT  = $FFD2.|
00000290: 20 3B 0D 20 2A 3D 24 31  37 30 30 20 3B 53 41 4D  | ;. *=$1700 ;SAM|
000002A0: 45 20 46 4F 52 20 42 4F  54 48 0D 20 3B 0D 20 43  |E FOR BOTH. ;. C|
000002B0: 4F 44 45 53 20 2A 3D 2A  2B 31 30 20 3B 54 48 45  |ODES *=*+10 ;THE|
000002C0: 53 45 20 41 52 45 20 54  48 45 20 52 55 4C 45 53  |SE ARE THE RULES|
000002D0: 0D 20 3B 20 46 4F 52 20  50 4C 4F 54 54 49 4E 47  |. ; FOR PLOTTING|
000002E0: 20 50 49 58 45 4C 53 20  28 31 30 20 42 59 54 45  | PIXELS (10 BYTE|
000002F0: 53 29 0D 20 3B 0D 20 3B  20 2A 2A 2A 2A 2A 2A 2A  |S). ;. ; *******|
00000300: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
00000310: 2A 2A 0D 20 3B 20 2A 2A  20 20 20 20 20 20 20 20  |**. ; **        |
00000320: 20 20 20 20 20 20 20 20  20 20 20 20 20 2A 2A 0D  |             **.|
00000330: 20 3B 20 2A 2A 20 53 54  41 52 54 20 50 4C 4F 54  | ; ** START PLOT|
00000340: 54 49 4E 47 20 48 45 52  45 20 2A 2A 0D 20 3B 20  |TING HERE **. ; |
00000350: 2A 2A 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |**              |
00000360: 20 20 20 20 20 20 20 2A  2A 0D 20 3B 20 2A 2A 2A  |       **. ; ***|
00000370: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
00000380: 2A 2A 2A 2A 2A 2A 0D 3B  0D 2A 3D 24 31 37 30 43  |******.;.*=$170C|
00000390: 20 3B 46 52 49 45 4E 44  4C 59 20 41 44 44 52 45  | ;FRIENDLY ADDRE|
000003A0: 53 53 20 28 35 39 30 30  29 0D 3B 0D 3B 20 53 45  |SS (5900).;.; SE|
000003B0: 54 20 55 50 20 50 4F 49  4E 54 45 52 53 0D 3B 0D  |T UP POINTERS.;.|
000003C0: 20 4C 44 59 20 23 3E 53  43 52 45 45 4E 20 3B 53  | LDY #>SCREEN ;S|
000003D0: 45 54 20 41 44 44 52 45  53 53 45 53 0D 20 53 54  |ET ADDRESSES. ST|
000003E0: 59 20 41 44 52 45 41 44  2B 31 0D 20 53 54 59 20  |Y ADREAD+1. STY |
000003F0: 41 44 57 52 49 54 2B 31  0D 20 4C 44 59 20 23 24  |ADWRIT+1. LDY #$|
00000400: 30 31 0D 20 53 54 59 20  41 44 57 52 49 54 20 3B  |01. STY ADWRIT ;|
00000410: 57 52 49 54 45 20 54 4F  20 24 32 30 30 31 0D 20  |WRITE TO $2001. |
00000420: 44 45 59 0D 20 53 54 59  20 41 44 52 45 41 44 20  |DEY. STY ADREAD |
00000430: 3B 52 45 41 44 20 24 32  30 30 30 0D 20 3B 0D 20  |;READ $2000. ;. |
00000440: 4C 44 58 20 23 24 43 37  0D 20 53 54 58 20 52 4F  |LDX #$C7. STX RO|
00000450: 57 53 20 3B 31 39 39 20  52 4F 57 53 20 54 4F 20  |WS ;199 ROWS TO |
00000460: 44 4F 0D 3B 0D 3B 20 53  45 54 55 50 20 46 4F 52  |DO.;.; SETUP FOR|
00000470: 20 45 41 43 48 20 52 4F  57 0D 3B 0D 53 54 41 52  | EACH ROW.;.STAR|
00000480: 54 52 20 4C 44 58 20 23  24 32 37 20 3B 34 30 20  |TR LDX #$27 ;40 |
00000490: 42 59 54 45 53 20 50 45  52 20 4C 49 4E 45 0D 20  |BYTES PER LINE. |
000004A0: 53 54 58 20 43 4F 4C 55  4D 4E 0D 20 3B 0D 20 3B  |STX COLUMN. ;. ;|
000004B0: 20 41 56 41 4C 20 49 53  20 50 49 58 45 4C 20 41  | AVAL IS PIXEL A|
000004C0: 42 4F 56 45 20 26 20 4C  45 46 54 0D 20 3B 20 42  |BOVE & LEFT. ; B|
000004D0: 56 41 4C 20 52 45 50 52  45 53 45 4E 54 53 20 50  |VAL REPRESENTS P|
000004E0: 49 58 45 4C 20 41 42 4F  56 45 0D 20 3B 20 43 56  |IXEL ABOVE. ; CV|
000004F0: 41 4C 20 49 53 20 50 49  58 45 4C 20 41 42 4F 56  |AL IS PIXEL ABOV|
00000500: 45 20 26 20 52 49 47 48  54 0D 20 3B 0D 20 53 54  |E & RIGHT. ;. ST|
00000510: 59 20 41 56 41 4C 20 3B  41 56 41 4C 20 3D 20 30  |Y AVAL ;AVAL = 0|
00000520: 20 54 4F 20 53 54 41 52  54 20 52 4F 57 0D 3B 0D  | TO START ROW.;.|
00000530: 3B 20 50 52 45 50 41 52  45 20 4F 4E 45 20 42 59  |; PREPARE ONE BY|
00000540: 54 45 20 41 54 20 41 20  54 49 4D 45 0D 3B 0D 53  |TE AT A TIME.;.S|
00000550: 54 41 52 54 43 20 4C 44  41 20 28 41 44 52 45 41  |TARTC LDA (ADREA|
00000560: 44 29 2C 59 20 3B 47 45  54 20 42 59 54 45 20 41  |D),Y ;GET BYTE A|
00000570: 42 4F 56 45 0D 20 53 54  41 20 42 49 54 53 0D 20  |BOVE. STA BITS. |
00000580: 3B 0D 20 4C 44 41 20 43  4F 4C 55 4D 4E 0D 20 42  |;. LDA COLUMN. B|
00000590: 45 51 20 47 45 54 31 53  54 0D 20 3B 4E 4F 54 45  |EQ GET1ST. ;NOTE|
000005A0: 3A 20 57 45 20 4E 45 45  44 20 54 48 45 20 46 49  |: WE NEED THE FI|
000005B0: 52 53 54 20 50 49 58 45  4C 0D 20 3B 46 52 4F 4D  |RST PIXEL. ;FROM|
000005C0: 20 54 48 45 20 4E 45 58  54 20 42 59 54 45 20 54  | THE NEXT BYTE T|
000005D0: 4F 20 54 48 45 20 52 49  47 48 54 2C 0D 20 3B 54  |O THE RIGHT,. ;T|
000005E0: 4F 20 42 45 20 43 56 41  4C 20 46 4F 52 20 54 48  |O BE CVAL FOR TH|
000005F0: 45 20 34 54 48 20 50 49  58 45 4C 20 4F 46 0D 20  |E 4TH PIXEL OF. |
00000600: 3B 54 48 49 53 20 42 59  54 45 2E 20 4F 4E 20 54  |;THIS BYTE. ON T|
00000610: 48 45 20 4C 41 53 54 20  53 43 52 45 45 4E 0D 20  |HE LAST SCREEN. |
00000620: 3B 42 4C 4F 43 4B 20 4F  46 20 41 20 52 4F 57 2C  |;BLOCK OF A ROW,|
00000630: 20 43 4F 55 4E 54 45 52  20 27 43 4F 4C 55 4D 4E  | COUNTER 'COLUMN|
00000640: 27 0D 20 3B 57 49 4C 4C  20 42 45 20 5A 45 52 4F  |'. ;WILL BE ZERO|
00000650: 2E 20 20 49 4E 20 54 48  49 53 20 43 41 53 45 2C  |.  IN THIS CASE,|
00000660: 0D 20 3B 41 20 30 20 57  49 4C 4C 20 42 45 20 50  |. ;A 0 WILL BE P|
00000670: 55 54 20 49 4E 54 4F 20  56 41 52 49 41 42 4C 45  |UT INTO VARIABLE|
00000680: 0D 20 3B 43 56 41 4C 20  46 4F 52 20 54 48 45 20  |. ;CVAL FOR THE |
00000690: 4C 41 53 54 20 50 49 58  45 4C 20 49 4E 20 54 48  |LAST PIXEL IN TH|
000006A0: 45 0D 20 3B 52 4F 57 2E  20 49 46 20 4E 4F 54 20  |E. ;ROW. IF NOT |
000006B0: 54 48 45 20 4C 41 53 54  20 42 4C 4F 43 4B 2C 20  |THE LAST BLOCK, |
000006C0: 54 48 45 4E 0D 20 3B 47  45 54 20 41 20 50 49 58  |THEN. ;GET A PIX|
000006D0: 45 4C 20 46 52 4F 4D 20  54 48 45 20 4E 45 58 54  |EL FROM THE NEXT|
000006E0: 20 42 4C 4F 43 4B 3A 0D  20 3B 0D 20 4C 44 59 20  | BLOCK:. ;. LDY |
000006F0: 23 38 0D 20 4C 44 41 20  28 41 44 52 45 41 44 29  |#8. LDA (ADREAD)|
00000700: 2C 59 0D 20 3B 0D 47 45  54 31 53 54 20 41 53 4C  |,Y. ;.GET1ST ASL|
00000710: 20 41 0D 20 52 4F 4C 20  42 49 54 53 20 3B 45 58  | A. ROL BITS ;EX|
00000720: 54 52 41 20 50 49 58 45  4C 20 49 4E 54 4F 20 42  |TRA PIXEL INTO B|
00000730: 49 54 53 0D 20 52 4F 4C  20 41 0D 20 52 4F 4C 20  |ITS. ROL A. ROL |
00000740: 42 49 54 53 0D 20 52 4F  4C 20 41 20 3B 41 4E 44  |BITS. ROL A ;AND|
00000750: 20 31 53 54 20 50 49 58  45 4C 20 52 4F 4C 4C 53  | 1ST PIXEL ROLLS|
00000760: 0D 20 41 4E 44 20 23 33  20 3B 49 4E 54 4F 20 41  |. AND #3 ;INTO A|
00000770: 2C 20 54 48 45 4E 0D 20  53 54 41 20 42 56 41 4C  |, THEN. STA BVAL|
00000780: 20 3B 2E 2E 2E 49 4E 54  4F 20 42 56 41 4C 0D 3B  | ;...INTO BVAL.;|
00000790: 0D 3B 20 50 49 58 45 4C  20 4C 4F 4F 50 20 46 4F  |.; PIXEL LOOP FO|
000007A0: 52 20 4F 4E 45 20 42 59  54 45 0D 3B 0D 20 4C 44  |R ONE BYTE.;. LD|
000007B0: 59 20 23 34 20 3B 34 20  50 49 58 45 4C 53 0D 50  |Y #4 ;4 PIXELS.P|
000007C0: 58 4C 4F 4F 50 20 4C 44  41 20 23 30 0D 20 52 4F  |XLOOP LDA #0. RO|
000007D0: 4C 20 42 49 54 53 20 3B  47 45 54 20 4F 4E 45 20  |L BITS ;GET ONE |
000007E0: 50 49 58 45 4C 0D 20 52  4F 4C 20 41 0D 20 52 4F  |PIXEL. ROL A. RO|
000007F0: 4C 20 42 49 54 53 0D 20  52 4F 4C 20 41 0D 20 50  |L BITS. ROL A. P|
00000800: 48 41 20 3B 54 48 49 53  20 50 49 58 45 4C 20 49  |HA ;THIS PIXEL I|
00000810: 53 20 43 56 41 4C 0D 20  3B 0D 20 41 44 43 20 42  |S CVAL. ;. ADC B|
00000820: 56 41 4C 20 3B 46 4F 52  4D 20 53 55 4D 20 4F 46  |VAL ;FORM SUM OF|
00000830: 20 33 20 50 49 58 45 4C  53 0D 20 41 44 43 20 41  | 3 PIXELS. ADC A|
00000840: 56 41 4C 20 3B 28 43 41  52 52 59 20 49 53 20 43  |VAL ;(CARRY IS C|
00000850: 4C 45 41 52 29 0D 20 54  41 58 0D 20 3B 0D 20 4C  |LEAR). TAX. ;. L|
00000860: 44 41 20 42 56 41 4C 20  3B 53 48 49 46 54 20 52  |DA BVAL ;SHIFT R|
00000870: 45 43 4F 52 44 53 20 4F  56 45 52 0D 20 53 54 41  |ECORDS OVER. STA|
00000880: 20 41 56 41 4C 0D 20 50  4C 41 20 3B 47 45 54 20  | AVAL. PLA ;GET |
00000890: 43 56 41 4C 20 42 41 43  4B 0D 20 53 54 41 20 42  |CVAL BACK. STA B|
000008A0: 56 41 4C 0D 20 3B 0D 20  4C 44 41 20 43 4F 44 45  |VAL. ;. LDA CODE|
000008B0: 53 2C 58 20 3B 47 45 54  20 4E 45 57 20 43 4F 4C  |S,X ;GET NEW COL|
000008C0: 4F 55 52 20 56 41 4C 55  45 0D 20 41 53 4C 20 4F  |OUR VALUE. ASL O|
000008D0: 55 54 50 55 54 20 3B 4D  41 4B 45 20 52 4F 4F 4D  |UTPUT ;MAKE ROOM|
000008E0: 20 49 4E 20 42 59 54 45  2C 20 26 0D 20 41 53 4C  | IN BYTE, &. ASL|
000008F0: 20 4F 55 54 50 55 54 0D  20 4F 52 41 20 4F 55 54  | OUTPUT. ORA OUT|
00000900: 50 55 54 20 3B 50 55 54  20 50 49 58 45 4C 20 49  |PUT ;PUT PIXEL I|
00000910: 4E 20 53 54 52 45 41 4D  0D 20 53 54 41 20 4F 55  |N STREAM. STA OU|
00000920: 54 50 55 54 0D 20 3B 0D  20 44 45 59 20 3B 4D 4F  |TPUT. ;. DEY ;MO|
00000930: 56 45 20 54 4F 20 4E 45  58 54 20 50 49 58 45 4C  |VE TO NEXT PIXEL|
00000940: 0D 20 42 4E 45 20 50 58  4C 4F 4F 50 0D 20 3B 0D  |. BNE PXLOOP. ;.|
00000950: 20 3B 20 46 49 4E 49 53  48 45 44 20 50 49 58 45  | ; FINISHED PIXE|
00000960: 4C 20 4C 4F 4F 50 20 46  4F 52 0D 20 3B 20 42 59  |L LOOP FOR. ; BY|
00000970: 54 45 2C 20 53 4F 20 4F  55 54 50 55 54 20 54 48  |TE, SO OUTPUT TH|
00000980: 45 20 52 45 53 55 4C 54  3A 0D 20 3B 0D 20 53 54  |E RESULT:. ;. ST|
00000990: 41 20 28 41 44 57 52 49  54 29 2C 59 0D 20 3B 0D  |A (ADWRIT),Y. ;.|
000009A0: 20 3B 20 55 50 44 41 54  45 20 41 44 44 52 45 53  | ; UPDATE ADDRES|
000009B0: 53 45 53 3A 0D 20 3B 0D  20 43 4C 43 0D 20 44 45  |SES:. ;. CLC. DE|
000009C0: 43 20 43 4F 4C 55 4D 4E  20 3B 57 48 45 52 45 20  |C COLUMN ;WHERE |
000009D0: 4F 4E 20 53 43 52 45 45  4E 3F 0D 20 42 50 4C 20  |ON SCREEN?. BPL |
000009E0: 4F 4C 44 52 4F 57 0D 3B  0D 3B 20 48 45 52 45 20  |OLDROW.;.; HERE |
000009F0: 42 45 43 41 55 53 45 20  45 4E 44 20 4F 46 20 52  |BECAUSE END OF R|
00000A00: 4F 57 2C 20 53 4F 0D 3B  0D 3B 20 55 50 44 41 54  |OW, SO.;.; UPDAT|
00000A10: 45 20 50 4F 49 4E 54 45  52 53 20 54 4F 20 53 54  |E POINTERS TO ST|
00000A20: 41 52 54 20 4E 45 58 54  20 52 4F 57 0D 3B 0D 20  |ART NEXT ROW.;. |
00000A30: 4C 44 58 20 23 32 20 3B  44 4F 20 41 44 57 52 49  |LDX #2 ;DO ADWRI|
00000A40: 54 20 46 49 52 53 54 0D  4E 45 57 52 57 31 20 4C  |T FIRST.NEWRW1 L|
00000A50: 44 41 20 41 44 52 45 41  44 2C 58 0D 20 41 4E 44  |DA ADREAD,X. AND|
00000A60: 20 23 37 0D 20 43 4D 50  20 23 37 20 3B 43 48 45  | #7. CMP #7 ;CHE|
00000A70: 43 4B 20 49 46 20 42 4F  54 54 4F 4D 20 4F 46 20  |CK IF BOTTOM OF |
00000A80: 42 4C 4F 43 4B 0D 20 42  45 51 20 4E 45 57 4C 49  |BLOCK. BEQ NEWLI|
00000A90: 4E 0D 20 3B 0D 20 53 45  43 20 3B 4E 45 58 54 20  |N. ;. SEC ;NEXT |
00000AA0: 50 49 58 45 4C 20 52 4F  57 2C 20 53 55 42 54 52  |PIXEL ROW, SUBTR|
00000AB0: 41 43 54 20 33 31 31 0D  20 4C 44 41 20 41 44 52  |ACT 311. LDA ADR|
00000AC0: 45 41 44 2C 58 0D 20 53  42 43 20 23 24 33 37 0D  |EAD,X. SBC #$37.|
00000AD0: 20 53 54 41 20 41 44 52  45 41 44 2C 58 0D 20 4C  | STA ADREAD,X. L|
00000AE0: 44 41 20 41 44 52 45 41  44 2B 31 2C 58 0D 20 53  |DA ADREAD+1,X. S|
00000AF0: 42 43 20 23 31 0D 20 53  54 41 20 41 44 52 45 41  |BC #1. STA ADREA|
00000B00: 44 2B 31 2C 58 0D 20 42  4E 45 20 4E 45 57 52 57  |D+1,X. BNE NEWRW|
00000B10: 32 0D 20 3B 0D 4E 45 57  4C 49 4E 20 49 4E 43 20  |2. ;.NEWLIN INC |
00000B20: 41 44 52 45 41 44 2C 58  20 3B 49 46 20 42 4F 54  |ADREAD,X ;IF BOT|
00000B30: 54 4F 4D 20 4F 46 0D 20  42 4E 45 20 4E 45 57 52  |TOM OF. BNE NEWR|
00000B40: 57 32 20 3B 42 4C 4F 43  4B 2C 20 4A 55 53 54 20  |W2 ;BLOCK, JUST |
00000B50: 41 44 44 20 31 0D 20 49  4E 43 20 41 44 52 45 41  |ADD 1. INC ADREA|
00000B60: 44 2B 31 2C 58 0D 20 3B  0D 4E 45 57 52 57 32 20  |D+1,X. ;.NEWRW2 |
00000B70: 44 45 58 20 3B 4E 4F 57  20 44 4F 20 41 44 52 45  |DEX ;NOW DO ADRE|
00000B80: 41 44 0D 20 44 45 58 0D  20 42 45 51 20 4E 45 57  |AD. DEX. BEQ NEW|
00000B90: 52 57 31 0D 20 3B 0D 20  44 45 43 20 52 4F 57 53  |RW1. ;. DEC ROWS|
00000BA0: 20 3B 52 45 41 44 59 20  46 4F 52 20 4E 45 58 54  | ;READY FOR NEXT|
00000BB0: 20 52 4F 57 0D 20 42 4E  45 20 53 54 41 52 54 52  | ROW. BNE STARTR|
00000BC0: 0D 20 52 54 53 0D 3B 0D  3B 20 48 45 52 45 20 42  |. RTS.;.; HERE B|
00000BD0: 45 43 41 55 53 45 20 49  4E 20 4D 49 44 44 4C 45  |ECAUSE IN MIDDLE|
00000BE0: 20 4F 46 20 52 4F 57 0D  3B 0D 3B 20 53 4F 20 4D  | OF ROW.;.; SO M|
00000BF0: 4F 56 45 20 54 4F 20 4E  45 58 54 20 42 59 54 45  |OVE TO NEXT BYTE|
00000C00: 0D 3B 0D 4F 4C 44 52 4F  57 20 4C 44 58 20 23 32  |.;.OLDROW LDX #2|
00000C10: 20 3B 53 54 41 52 54 20  57 49 54 48 20 41 44 57  | ;START WITH ADW|
00000C20: 52 49 54 0D 20 3B 0D 4F  4C 44 52 57 32 20 4C 44  |RIT. ;.OLDRW2 LD|
00000C30: 41 20 41 44 52 45 41 44  2C 58 20 3B 4D 49 44 20  |A ADREAD,X ;MID |
00000C40: 43 4F 4C 55 4D 4E 20 53  4F 0D 20 41 44 43 20 23  |COLUMN SO. ADC #|
00000C50: 38 20 3B 4D 4F 56 45 20  4F 56 45 52 20 4F 4E 45  |8 ;MOVE OVER ONE|
00000C60: 20 42 59 54 45 0D 20 53  54 41 20 41 44 52 45 41  | BYTE. STA ADREA|
00000C70: 44 2C 58 0D 20 42 43 43  20 4F 4C 44 52 57 33 0D  |D,X. BCC OLDRW3.|
00000C80: 20 49 4E 43 20 41 44 52  45 41 44 2B 31 2C 58 0D  | INC ADREAD+1,X.|
00000C90: 20 43 4C 43 0D 20 3B 0D  4F 4C 44 52 57 33 20 44  | CLC. ;.OLDRW3 D|
00000CA0: 45 58 0D 20 44 45 58 0D  20 42 45 51 20 4F 4C 44  |EX. DEX. BEQ OLD|
00000CB0: 52 57 32 20 3B 4E 4F 57  20 44 4F 20 41 44 52 45  |RW2 ;NOW DO ADRE|
00000CC0: 41 44 0D 20 4A 4D 50 20  53 54 41 52 54 43 20 3B  |AD. JMP STARTC ;|
00000CD0: 53 54 41 52 54 20 4E 45  58 54 20 43 4F 4C 55 4D  |START NEXT COLUM|
00000CE0: 4E 0D 3B 0D 20 3B 0D 20  3B 20 2A 2A 2A 2A 2A 2A  |N.;. ;. ; ******|
00000CF0: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
00000D00: 0D 20 3B 20 2A 2A 20 20  20 20 20 20 20 20 20 20  |. ; **          |
00000D10: 20 20 20 20 20 20 20 20  2A 2A 0D 20 3B 20 2A 2A  |        **. ; **|
00000D20: 20 53 43 52 45 45 4E 20  44 55 4D 50 20 48 45 52  | SCREEN DUMP HER|
00000D30: 45 20 2A 2A 0D 20 3B 20  2A 2A 20 20 20 20 20 20  |E **. ; **      |
00000D40: 20 20 20 20 20 20 20 20  20 20 20 20 2A 2A 0D 20  |            **. |
00000D50: 3B 20 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |; **************|
00000D60: 2A 2A 2A 2A 2A 2A 2A 2A  0D 3B 0D 52 4F 57 4F 55  |********.;.ROWOU|
00000D70: 54 20 3D 20 41 44 57 52  49 54 0D 43 4F 4C 4F 55  |T = ADWRIT.COLOU|
00000D80: 54 20 3D 20 41 44 57 52  49 54 2B 31 0D 3B 0D 4D  |T = ADWRIT+1.;.M|
00000D90: 45 53 53 41 47 20 2E 42  59 54 20 32 37 2C 36 35  |ESSAG .BYT 27,65|
00000DA0: 2C 38 2C 31 33 2C 31 30  2C 32 37 2C 37 35 2C 36  |,8,13,10,27,75,6|
00000DB0: 34 2C 31 0D 3B 0D 3B 20  32 37 2C 36 35 2C 38 20  |4,1.;.; 27,65,8 |
00000DC0: 53 45 54 53 20 47 52 41  50 48 49 43 53 20 4C 49  |SETS GRAPHICS LI|
00000DD0: 4E 45 46 45 45 44 0D 3B  20 31 33 2C 31 30 20 20  |NEFEED.; 13,10  |
00000DE0: 20 49 53 20 43 41 52 52  49 41 47 45 20 52 45 54  | IS CARRIAGE RET|
00000DF0: 55 52 4E 20 26 20 4C 46  0D 3B 20 32 37 2C 37 35  |URN & LF.; 27,75|
00000E00: 2C 36 34 2C 31 20 46 4F  52 20 33 32 30 20 47 52  |,64,1 FOR 320 GR|
00000E10: 41 50 48 49 43 53 20 42  59 54 45 53 0D 3B 20 43  |APHICS BYTES.; C|
00000E20: 48 41 4E 47 45 20 54 48  45 53 45 20 46 4F 52 20  |HANGE THESE FOR |
00000E30: 4F 54 48 45 52 20 50 52  49 4E 54 45 52 53 0D 3B  |OTHER PRINTERS.;|
00000E40: 0D 3B 0D 3B 20 50 52 49  4E 54 45 52 20 49 53 20  |.;.; PRINTER IS |
00000E50: 41 4C 52 45 41 44 59 20  41 43 43 45 53 53 45 44  |ALREADY ACCESSED|
00000E60: 20 41 53 0D 3B 20 C3 CD  C4 20 46 49 4C 45 20 42  | AS.; ... FILE B|
00000E70: 59 20 C2 C1 D3 C9 C3 20  50 52 4F 47 52 41 4D 0D  |Y ..... PROGRAM.|
00000E80: 3B 0D 3B 0D 2A 20 3D 20  24 31 37 41 43 20 3B 36  |;.;.* = $17AC ;6|
00000E90: 30 36 30 20 49 53 20 41  20 46 52 49 45 4E 44 4C  |060 IS A FRIENDL|
00000EA0: 59 20 53 54 41 52 54 0D  3B 0D 3B 20 53 45 54 20  |Y START.;.; SET |
00000EB0: 55 50 20 50 4F 49 4E 54  45 52 0D 3B 0D 20 4C 44  |UP POINTER.;. LD|
00000EC0: 59 20 23 3E 53 43 52 45  45 4E 20 3B 53 45 54 20  |Y #>SCREEN ;SET |
00000ED0: 53 43 52 45 45 4E 20 41  44 44 52 45 53 53 0D 20  |SCREEN ADDRESS. |
00000EE0: 53 54 59 20 41 44 52 45  41 44 2B 31 0D 20 4C 44  |STY ADREAD+1. LD|
00000EF0: 59 20 23 24 30 30 0D 20  53 54 59 20 41 44 52 45  |Y #$00. STY ADRE|
00000F00: 41 44 0D 20 4C 44 59 20  23 24 31 39 0D 20 53 54  |AD. LDY #$19. ST|
00000F10: 59 20 52 4F 57 4F 55 54  20 3B 32 35 20 52 4F 57  |Y ROWOUT ;25 ROW|
00000F20: 53 20 54 4F 20 44 4F 0D  3B 0D 3B 20 53 45 54 20  |S TO DO.;.; SET |
00000F30: 55 50 20 46 4F 52 20 52  4F 57 20 4F 46 20 33 32  |UP FOR ROW OF 32|
00000F40: 30 20 42 59 54 45 53 0D  3B 0D 4F 50 52 4F 57 20  |0 BYTES.;.OPROW |
00000F50: 4C 44 59 20 23 30 0D 4C  49 4E 4D 53 47 20 4C 44  |LDY #0.LINMSG LD|
00000F60: 41 20 4D 45 53 53 41 47  2C 59 0D 20 4A 53 52 20  |A MESSAG,Y. JSR |
00000F70: 42 53 4F 55 54 0D 20 49  4E 59 0D 20 43 50 59 20  |BSOUT. INY. CPY |
00000F80: 23 39 0D 20 42 4E 45 20  4C 49 4E 4D 53 47 0D 20  |#9. BNE LINMSG. |
00000F90: 3B 0D 20 4C 44 59 20 23  24 32 38 20 3B 4F 55 54  |;. LDY #$28 ;OUT|
00000FA0: 50 55 54 20 34 30 20 43  4F 4C 55 4D 4E 53 0D 20  |PUT 40 COLUMNS. |
00000FB0: 53 54 59 20 43 4F 4C 4F  55 54 0D 20 3B 0D 42 4C  |STY COLOUT. ;.BL|
00000FC0: 4F 43 4B 20 4C 44 59 20  23 37 20 3B 4F 4E 45 20  |OCK LDY #7 ;ONE |
00000FD0: 42 4C 4F 43 4B 20 4F 46  20 38 20 42 59 54 45 53  |BLOCK OF 8 BYTES|
00000FE0: 0D 42 59 54 45 4C 50 20  4C 44 41 20 28 41 44 52  |.BYTELP LDA (ADR|
00000FF0: 45 41 44 29 2C 59 0D 20  3B 0D 20 3B 20 52 45 4F  |EAD),Y. ;. ; REO|
00001000: 52 49 45 4E 54 20 42 59  54 45 53 20 39 30 20 44  |RIENT BYTES 90 D|
00001010: 45 47 52 45 45 53 0D 20  3B 0D 20 3B 20 53 43 52  |EGREES. ;. ; SCR|
00001020: 45 45 4E 20 42 59 54 45  53 20 41 52 45 20 48 4F  |EEN BYTES ARE HO|
00001030: 52 49 5A 4F 4E 54 41 4C  0D 20 3B 20 50 52 49 4E  |RIZONTAL. ; PRIN|
00001040: 54 45 52 20 42 59 54 45  53 20 41 52 45 20 56 45  |TER BYTES ARE VE|
00001050: 52 54 49 43 41 4C 0D 20  3B 0D 20 4C 44 58 20 23  |RTICAL. ;. LDX #|
00001060: 37 0D 52 4F 54 41 54 45  20 52 4F 4C 20 41 20 3B  |7.ROTATE ROL A ;|
00001070: 4F 4E 45 20 42 49 54 20  49 4E 54 4F 20 45 41 43  |ONE BIT INTO EAC|
00001080: 48 0D 20 52 4F 52 20 5A  50 2C 58 20 3B 20 4F 46  |H. ROR ZP,X ; OF|
00001090: 20 38 20 42 59 54 45 53  0D 20 3B 43 48 41 4E 47  | 8 BYTES. ;CHANG|
000010A0: 45 20 52 4F 52 20 54 4F  20 52 4F 4C 20 49 46 20  |E ROR TO ROL IF |
000010B0: 59 4F 55 52 0D 20 3B 50  52 49 4E 54 45 52 20 44  |YOUR. ;PRINTER D|
000010C0: 4F 45 53 20 47 52 41 50  48 49 43 53 20 49 4E 56  |OES GRAPHICS INV|
000010D0: 45 52 54 45 44 0D 20 3B  0D 20 44 45 58 0D 20 42  |ERTED. ;. DEX. B|
000010E0: 50 4C 20 52 4F 54 41 54  45 0D 20 3B 0D 20 44 45  |PL ROTATE. ;. DE|
000010F0: 59 0D 20 42 50 4C 20 42  59 54 45 4C 50 0D 3B 0D  |Y. BPL BYTELP.;.|
00001100: 3B 20 4D 4F 56 45 20 50  4F 49 4E 54 45 52 20 38  |; MOVE POINTER 8|
00001110: 20 42 59 54 45 53 0D 3B  20 46 4F 52 20 4E 45 58  | BYTES.; FOR NEX|
00001120: 54 20 53 43 52 45 45 4E  20 42 4C 4F 43 4B 0D 3B  |T SCREEN BLOCK.;|
00001130: 0D 20 4C 44 41 20 23 37  0D 20 54 41 58 0D 20 53  |. LDA #7. TAX. S|
00001140: 45 43 0D 20 41 44 43 20  41 44 52 45 41 44 0D 20  |EC. ADC ADREAD. |
00001150: 53 54 41 20 41 44 52 45  41 44 0D 20 42 43 43 20  |STA ADREAD. BCC |
00001160: 4F 50 4C 4F 4F 50 0D 20  49 4E 43 20 41 44 52 45  |OPLOOP. INC ADRE|
00001170: 41 44 2B 31 0D 3B 0D 3B  20 4F 55 54 50 55 54 20  |AD+1.;.; OUTPUT |
00001180: 38 20 42 59 54 45 53 0D  3B 0D 4F 50 4C 4F 4F 50  |8 BYTES.;.OPLOOP|
00001190: 20 4C 44 41 20 5A 50 2C  58 0D 20 4A 53 52 20 42  | LDA ZP,X. JSR B|
000011A0: 53 4F 55 54 0D 20 44 45  58 0D 20 42 50 4C 20 4F  |SOUT. DEX. BPL O|
000011B0: 50 4C 4F 4F 50 0D 3B 0D  3B 20 55 50 44 41 54 45  |PLOOP.;.; UPDATE|
000011C0: 20 43 4F 55 4E 54 45 52  53 0D 3B 0D 20 44 45 43  | COUNTERS.;. DEC|
000011D0: 20 43 4F 4C 4F 55 54 20  3B 4E 45 58 54 20 43 4F  | COLOUT ;NEXT CO|
000011E0: 4C 55 4D 4E 0D 20 42 4E  45 20 42 4C 4F 43 4B 0D  |LUMN. BNE BLOCK.|
000011F0: 20 3B 0D 20 44 45 43 20  52 4F 57 4F 55 54 20 3B  | ;. DEC ROWOUT ;|
00001200: 4E 45 58 54 20 52 4F 57  0D 20 42 4E 45 20 4F 50  |NEXT ROW. BNE OP|
00001210: 52 4F 57 0D 20 3B 0D 20  52 54 53 0D 20 3B 0D 20  |ROW. ;. RTS. ;. |
00001220: 3B 20 C2 C1 D3 C9 C3 20  54 41 4B 45 53 20 43 41  |; ..... TAKES CA|
00001230: 52 45 20 4F 46 20 55 4E  4C 49 53 54 45 4E 49 4E  |RE OF UNLISTENIN|
00001240: 47 0D 20 3B 20 41 4E 44  20 43 4C 4F 53 49 4E 47  |G. ; AND CLOSING|
00001250: 20 50 52 49 4E 54 45 52  20 46 49 4C 45 2E 0D 20  | PRINTER FILE.. |
00001260: 3B 0D 2E 45 4E 44 0D                              |;..END.         |
;  *******************.;  **            
   **.;  **   CELLULAR    **.;  **   AUT
OMATA    **.;  **               **.;  **
*****************.;.;.;.;  GEOMETRIC  CO
MPUTER.;        ARTFORMS.;.;        FOR 
 THE.;  COMMODORE  64 & 128.;.;     BY  
IAN  ADAM.;     VANCOUVER  BC.;.;     MA
RCH    1987.;.;.; THE SCREEN IMAGE IS PL
OTTED 1.; LINE AT A TIME.  EACH PIXEL.; 
DEPENDS ON THE SUM OF THE 3.; PIXELS ABO
VE, USING A PRESET.; CODE SUPPLIED BY TH
E USER..;. ZP     = $A6 ;8 BYTES TEMPORA
RY. ROWS   = $A6. COLUMN = $A7. BITS   =
 $A8. AVAL   = $A9. BVAL   = $AA. ADREAD
 = $FA ;READ ADDRESS. ADWRIT = $FC ;WRIT
E ADDRESS. OUTPUT = $FE. SCREEN = $2000.
 BSOUT  = $FFD2. ;. *=$1700 ;SAME FOR BO
TH. ;. CODES *=*+10 ;THESE ARE THE RULES
. ; FOR PLOTTING PIXELS (10 BYTES). ;. ;
 *************************. ; **        
             **. ; ** START PLOTTING HER
E **. ; **                     **. ; ***
**********************.;.*=$170C ;FRIEND
LY ADDRESS (5900).;.; SET UP POINTERS.;.
 LDY #>SCREEN ;SET ADDRESSES. STY ADREAD
+1. STY ADWRIT+1. LDY #$01. STY ADWRIT ;
WRITE TO $2001. DEY. STY ADREAD ;READ $2
000. ;. LDX #$C7. STX ROWS ;199 ROWS TO 
DO.;.; SETUP FOR EACH ROW.;.STARTR LDX #
$27 ;40 BYTES PER LINE. STX COLUMN. ;. ;
 AVAL IS PIXEL ABOVE & LEFT. ; BVAL REPR
ESENTS PIXEL ABOVE. ; CVAL IS PIXEL ABOV
E & RIGHT. ;. STY AVAL ;AVAL = 0 TO STAR
T ROW.;.; PREPARE ONE BYTE AT A TIME.;.S
TARTC LDA (ADREAD),Y ;GET BYTE ABOVE. ST
A BITS. ;. LDA COLUMN. BEQ GET1ST. ;NOTE
: WE NEED THE FIRST PIXEL. ;FROM THE NEX
T BYTE TO THE RIGHT,. ;TO BE CVAL FOR TH
E 4TH PIXEL OF. ;THIS BYTE. ON THE LAST 
SCREEN. ;BLOCK OF A ROW, COUNTER 'COLUMN
'. ;WILL BE ZERO.  IN THIS CASE,. ;A 0 W
ILL BE PUT INTO VARIABLE. ;CVAL FOR THE 
LAST PIXEL IN THE. ;ROW. IF NOT THE LAST
 BLOCK, THEN. ;GET A PIXEL FROM THE NEXT
 BLOCK:. ;. LDY #8. LDA (ADREAD),Y. ;.GE
T1ST ASL A. ROL BITS ;EXTRA PIXEL INTO B
ITS. ROL A. ROL BITS. ROL A ;AND 1ST PIX
EL ROLLS. AND #3 ;INTO A, THEN. STA BVAL
 ;...INTO BVAL.;.; PIXEL LOOP FOR ONE BY
TE.;. LDY #4 ;4 PIXELS.PXLOOP LDA #0. RO
L BITS ;GET ONE PIXEL. ROL A. ROL BITS. 
ROL A. PHA ;THIS PIXEL IS CVAL. ;. ADC B
VAL ;FORM SUM OF 3 PIXELS. ADC AVAL ;(CA
RRY IS CLEAR). TAX. ;. LDA BVAL ;SHIFT R
ECORDS OVER. STA AVAL. PLA ;GET CVAL BAC
K. STA BVAL. ;. LDA CODES,X ;GET NEW COL
OUR VALUE. ASL OUTPUT ;MAKE ROOM IN BYTE
, &. ASL OUTPUT. ORA OUTPUT ;PUT PIXEL I
N STREAM. STA OUTPUT. ;. DEY ;MOVE TO NE
XT PIXEL. BNE PXLOOP. ;. ; FINISHED PIXE
L LOOP FOR. ; BYTE, SO OUTPUT THE RESULT
:. ;. STA (ADWRIT),Y. ;. ; UPDATE ADDRES
SES:. ;. CLC. DEC COLUMN ;WHERE ON SCREE
N?. BPL OLDROW.;.; HERE BECAUSE END OF R
OW, SO.;.; UPDATE POINTERS TO START NEXT
 ROW.;. LDX #2 ;DO ADWRIT FIRST.NEWRW1 L
DA ADREAD,X. AND #7. CMP #7 ;CHECK IF BO
TTOM OF BLOCK. BEQ NEWLIN. ;. SEC ;NEXT 
PIXEL ROW, SUBTRACT 311. LDA ADREAD,X. S
BC #$37. STA ADREAD,X. LDA ADREAD+1,X. S
BC #1. STA ADREAD+1,X. BNE NEWRW2. ;.NEW
LIN INC ADREAD,X ;IF BOTTOM OF. BNE NEWR
W2 ;BLOCK, JUST ADD 1. INC ADREAD+1,X. ;
.NEWRW2 DEX ;NOW DO ADREAD. DEX. BEQ NEW
RW1. ;. DEC ROWS ;READY FOR NEXT ROW. BN
E STARTR. RTS.;.; HERE BECAUSE IN MIDDLE
 OF ROW.;.; SO MOVE TO NEXT BYTE.;.OLDRO
W LDX #2 ;START WITH ADWRIT. ;.OLDRW2 LD
A ADREAD,X ;MID COLUMN SO. ADC #8 ;MOVE 
OVER ONE BYTE. STA ADREAD,X. BCC OLDRW3.
 INC ADREAD+1,X. CLC. ;.OLDRW3 DEX. DEX.
 BEQ OLDRW2 ;NOW DO ADREAD. JMP STARTC ;
START NEXT COLUMN.;. ;. ; **************
********. ; **                  **. ; **
 SCREEN DUMP HERE **. ; **              
    **. ; **********************.;.ROWOU
T = ADWRIT.COLOUT = ADWRIT+1.;.MESSAG .B
YT 27,65,8,13,10,27,75,64,1.;.; 27,65,8 
SETS GRAPHICS LINEFEED.; 13,10   IS CARR
IAGE RETURN & LF.; 27,75,64,1 FOR 320 GR
APHICS BYTES.; CHANGE THESE FOR OTHER PR
INTERS.;.;.; PRINTER IS ALREADY ACCESSED
 AS.; CMD FILE BY BASIC PROGRAM.;.;.* = 
$17AC ;6060 IS A FRIENDLY START.;.; SET 
UP POINTER.;. LDY #>SCREEN ;SET SCREEN A
DDRESS. STY ADREAD+1. LDY #$00. STY ADRE
AD. LDY #$19. STY ROWOUT ;25 ROWS TO DO.
;.; SET UP FOR ROW OF 320 BYTES.;.OPROW 
LDY #0.LINMSG LDA MESSAG,Y. JSR BSOUT. I
NY. CPY #9. BNE LINMSG. ;. LDY #$28 ;OUT
PUT 40 COLUMNS. STY COLOUT. ;.BLOCK LDY 
#7 ;ONE BLOCK OF 8 BYTES.BYTELP LDA (ADR
EAD),Y. ;. ; REORIENT BYTES 90 DEGREES. 
;. ; SCREEN BYTES ARE HORIZONTAL. ; PRIN
TER BYTES ARE VERTICAL. ;. LDX #7.ROTATE
 ROL A ;ONE BIT INTO EACH. ROR ZP,X ; OF
 8 BYTES. ;CHANGE ROR TO ROL IF YOUR. ;P
RINTER DOES GRAPHICS INVERTED. ;. DEX. B
PL ROTATE. ;. DEY. BPL BYTELP.;.; MOVE P
OINTER 8 BYTES.; FOR NEXT SCREEN BLOCK.;
. LDA #7. TAX. SEC. ADC ADREAD. STA ADRE
AD. BCC OPLOOP. INC ADREAD+1.;.; OUTPUT 
8 BYTES.;.OPLOOP LDA ZP,X. JSR BSOUT. DE
X. BPL OPLOOP.;.; UPDATE COUNTERS.;. DEC
 COLOUT ;NEXT COLUMN. BNE BLOCK. ;. DEC 
ROWOUT ;NEXT ROW. BNE OPROW. ;. RTS. ;. 
; BASIC TAKES CARE OF UNLISTENING. ; AND
 CLOSING PRINTER FILE.. ;..END.
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL