00000000: 00 20 54 4F 20 45 44 2E 4C 4F 4F 50 20 3A 58 20 |. TO ED.LOOP :X |
00000010: 3A 59 0D 20 45 44 2E 43 4F 4D 4D 41 4E 44 20 52 |:Y. ED.COMMAND R|
00000020: 43 26 46 4C 41 53 48 0D 20 45 44 2E 4C 4F 4F 50 |C&FLASH. ED.LOOP|
00000030: 20 3A 58 20 3A 59 0D 45 4E 44 0D 0D 54 4F 20 52 | :X :Y.END..TO R|
00000040: 45 44 49 53 50 4C 41 59 0D 20 54 45 58 54 53 43 |EDISPLAY. TEXTSC|
00000050: 52 45 45 4E 20 43 4C 45 41 52 54 45 58 54 0D 20 |REEN CLEARTEXT. |
00000060: 45 44 2E 46 52 41 4D 45 0D 20 2E 53 50 52 49 4E |ED.FRAME. .SPRIN|
00000070: 54 20 57 48 4F 53 48 50 0D 45 4E 44 0D 0D 54 4F |T WHOSHP.END..TO|
00000080: 20 45 44 2E 43 4F 4D 4D 41 4E 44 20 3A 43 48 41 | ED.COMMAND :CHA|
00000090: 52 0D 20 49 46 20 41 4E 59 4F 46 20 3A 43 48 41 |R. IF ANYOF :CHA|
000000A0: 52 20 3D 20 22 5E 20 3A 43 48 41 52 20 3D 20 22 |R = "^ :CHAR = "|
000000B0: 91 20 44 45 43 59 20 53 54 4F 50 0D 20 49 46 20 |. DECY STOP. IF |
000000C0: 41 4E 59 4F 46 20 3A 43 48 41 52 20 3D 20 22 5F |ANYOF :CHAR = "_|
000000D0: 20 3A 43 48 41 52 20 3D 20 22 9D 20 44 45 43 58 | :CHAR = ". DECX|
000000E0: 20 53 54 4F 50 0D 20 49 46 20 3A 43 48 41 52 20 | STOP. IF :CHAR |
000000F0: 3D 20 22 11 20 49 4E 43 59 20 53 54 4F 50 0D 20 |= ". INCY STOP. |
00000100: 49 46 20 3A 43 48 41 52 20 3D 20 22 1D 20 49 4E |IF :CHAR = ". IN|
00000110: 43 58 20 53 54 4F 50 0D 20 49 46 20 3A 43 48 41 |CX STOP. IF :CHA|
00000120: 52 20 3D 20 22 2A 20 53 45 54 50 4F 49 4E 54 20 |R = "* SETPOINT |
00000130: 3A 58 20 3A 59 20 49 4E 43 58 20 53 54 4F 50 0D |:X :Y INCX STOP.|
00000140: 20 49 46 20 3A 43 48 41 52 20 3D 20 22 14 20 44 | IF :CHAR = ". D|
00000150: 45 43 58 20 45 52 41 53 45 50 4F 49 4E 54 20 3A |ECX ERASEPOINT :|
00000160: 58 20 3A 59 20 53 54 4F 50 0D 20 49 46 20 3A 43 |X :Y STOP. IF :C|
00000170: 48 41 52 20 3D 20 22 27 20 27 20 45 52 41 53 45 |HAR = "' ' ERASE|
00000180: 50 4F 49 4E 54 20 3A 58 20 3A 59 20 49 4E 43 58 |POINT :X :Y INCX|
00000190: 20 53 54 4F 50 0D 20 49 46 20 3A 43 48 41 52 20 | STOP. IF :CHAR |
000001A0: 3D 20 22 2B 20 53 45 54 50 4F 49 4E 54 20 3A 58 |= "+ SETPOINT :X|
000001B0: 20 3A 59 20 53 54 4F 50 0D 20 49 46 20 3A 43 48 | :Y STOP. IF :CH|
000001C0: 41 52 20 3D 20 22 2D 20 45 52 41 53 45 50 4F 49 |AR = "- ERASEPOI|
000001D0: 4E 54 20 3A 58 20 3A 59 20 53 54 4F 50 0D 20 49 |NT :X :Y STOP. I|
000001E0: 46 20 3A 43 48 41 52 20 3D 20 3A 52 45 54 55 52 |F :CHAR = :RETUR|
000001F0: 4E 20 4D 41 4B 45 20 22 58 20 30 20 49 4E 43 59 |N MAKE "X 0 INCY|
00000200: 20 53 54 4F 50 0D 20 49 46 20 3A 43 48 41 52 20 | STOP. IF :CHAR |
00000210: 3D 20 22 13 20 4D 41 4B 45 20 22 58 20 30 20 4D |= ". MAKE "X 0 M|
00000220: 41 4B 45 20 22 59 20 30 20 53 54 4F 50 0D 20 49 |AKE "Y 0 STOP. I|
00000230: 46 20 3A 43 48 41 52 20 3D 20 22 93 20 43 4C 45 |F :CHAR = ". CLE|
00000240: 41 52 53 48 41 50 45 20 43 4C 45 41 52 54 45 58 |ARSHAPE CLEARTEX|
00000250: 54 20 52 45 44 49 53 50 4C 41 59 20 4D 41 4B 45 |T REDISPLAY MAKE|
00000260: 20 22 58 20 30 20 4D 41 4B 45 20 22 59 20 30 20 | "X 0 MAKE "Y 0 |
00000270: 53 54 4F 50 0D 20 49 46 20 3A 43 48 41 52 20 3D |STOP. IF :CHAR =|
00000280: 20 22 58 20 54 4F 47 47 4C 45 58 20 53 54 4F 50 | "X TOGGLEX STOP|
00000290: 0D 20 49 46 20 3A 43 48 41 52 20 3D 20 22 59 20 |. IF :CHAR = "Y |
000002A0: 54 4F 47 47 4C 45 59 20 53 54 4F 50 0D 20 49 46 |TOGGLEY STOP. IF|
000002B0: 20 3A 43 48 41 52 20 3D 20 22 12 20 52 56 53 2E | :CHAR = ". RVS.|
000002C0: 53 48 41 50 45 20 52 45 44 49 53 50 4C 41 59 20 |SHAPE REDISPLAY |
000002D0: 53 54 4F 50 0D 20 49 46 20 3A 43 48 41 52 20 3D |STOP. IF :CHAR =|
000002E0: 20 22 03 20 45 44 2E 51 55 49 54 0D 45 4E 44 0D | ". ED.QUIT.END.|
000002F0: 0D 54 4F 20 52 43 26 46 4C 41 53 48 0D 20 4C 4F |.TO RC&FLASH. LO|
00000300: 43 41 4C 20 22 43 48 41 52 0D 20 49 46 20 52 43 |CAL "CHAR. IF RC|
00000310: 3F 20 4F 50 20 52 43 0D 20 2E 4F 50 54 49 4F 4E |? OP RC. .OPTION|
00000320: 20 22 52 43 20 30 20 31 0D 20 46 4C 41 53 48 26 | "RC 0 1. FLASH&|
00000330: 57 41 49 54 0D 20 4D 41 4B 45 20 22 43 48 41 52 |WAIT. MAKE "CHAR|
00000340: 20 52 43 0D 20 2E 4F 50 54 49 4F 4E 20 22 52 43 | RC. .OPTION "RC|
00000350: 20 30 20 30 0D 20 49 46 20 41 53 43 49 49 20 3A | 0 0. IF ASCII :|
00000360: 43 48 41 52 20 3D 20 37 20 45 44 2E 51 55 49 54 |CHAR = 7 ED.QUIT|
00000370: 20 45 4C 53 45 20 4F 50 20 3A 43 48 41 52 0D 45 | ELSE OP :CHAR.E|
00000380: 4E 44 0D 0D 54 4F 20 45 44 2E 46 52 41 4D 45 0D |ND..TO ED.FRAME.|
00000390: 20 43 55 52 53 4F 52 20 30 20 30 0D 20 52 45 50 | CURSOR 0 0. REP|
000003A0: 45 41 54 20 32 36 20 5B 50 52 49 4E 54 31 20 22 |EAT 26 [PRINT1 "|
000003B0: A6 5D 0D 20 52 45 50 45 41 54 20 32 31 20 5B 43 |.]. REPEAT 21 [C|
000003C0: 55 52 53 4F 52 20 30 20 31 2B 4C 41 53 54 20 43 |URSOR 0 1+LAST C|
000003D0: 55 52 53 4F 52 50 4F 53 20 50 52 49 4E 54 31 20 |URSORPOS PRINT1 |
000003E0: 22 A6 20 43 55 52 53 4F 52 20 32 35 20 4C 41 53 |". CURSOR 25 LAS|
000003F0: 54 20 43 55 52 53 4F 52 50 4F 53 20 50 52 49 4E |T CURSORPOS PRIN|
00000400: 54 31 20 22 A6 5D 0D 20 43 55 52 53 4F 52 20 30 |T1 ".]. CURSOR 0|
00000410: 20 32 32 0D 20 52 45 50 45 41 54 20 32 36 20 5B | 22. REPEAT 26 [|
00000420: 50 52 49 4E 54 31 20 22 A6 5D 0D 20 43 55 52 53 |PRINT1 ".]. CURS|
00000430: 4F 52 20 30 20 30 0D 45 4E 44 0D 0D 54 4F 20 44 |OR 0 0.END..TO D|
00000440: 45 43 59 0D 20 4D 41 4B 45 20 22 59 20 3A 59 20 |ECY. MAKE "Y :Y |
00000450: 2D 20 31 20 49 46 20 3A 59 20 3C 20 30 20 4D 41 |- 1 IF :Y < 0 MA|
00000460: 4B 45 20 22 59 20 32 30 0D 45 4E 44 0D 0D 54 4F |KE "Y 20.END..TO|
00000470: 20 44 45 43 58 0D 20 4D 41 4B 45 20 22 58 20 3A | DECX. MAKE "X :|
00000480: 58 20 2D 20 31 20 49 46 20 3A 58 20 3C 20 30 20 |X - 1 IF :X < 0 |
00000490: 4D 41 4B 45 20 22 58 20 32 33 0D 45 4E 44 0D 0D |MAKE "X 23.END..|
000004A0: 54 4F 20 49 4E 43 59 0D 20 4D 41 4B 45 20 22 59 |TO INCY. MAKE "Y|
000004B0: 20 3A 59 20 2B 20 31 20 49 46 20 3A 59 20 3E 20 | :Y + 1 IF :Y > |
000004C0: 32 30 20 4D 41 4B 45 20 22 59 20 30 0D 45 4E 44 |20 MAKE "Y 0.END|
000004D0: 0D 0D 54 4F 20 49 4E 43 58 0D 20 4D 41 4B 45 20 |..TO INCX. MAKE |
000004E0: 22 58 20 3A 58 20 2B 20 31 20 49 46 20 3A 58 20 |"X :X + 1 IF :X |
000004F0: 3E 20 32 33 20 4D 41 4B 45 20 22 58 20 30 0D 45 |> 23 MAKE "X 0.E|
00000500: 4E 44 0D 0D 54 4F 20 53 45 54 50 4F 49 4E 54 20 |ND..TO SETPOINT |
00000510: 3A 58 20 3A 59 0D 20 4C 4F 43 41 4C 20 22 41 44 |:X :Y. LOCAL "AD|
00000520: 44 52 20 4D 41 4B 45 20 22 41 44 44 52 20 53 50 |DR MAKE "ADDR SP|
00000530: 2E 41 44 44 52 0D 20 2E 44 45 50 4F 53 49 54 20 |.ADDR. .DEPOSIT |
00000540: 3A 41 44 44 52 20 42 49 54 4F 52 20 2E 45 58 41 |:ADDR BITOR .EXA|
00000550: 4D 49 4E 45 20 3A 41 44 44 52 20 53 50 2E 42 49 |MINE :ADDR SP.BI|
00000560: 54 20 3A 58 0D 20 43 55 52 53 4F 52 20 3A 58 20 |T :X. CURSOR :X |
00000570: 2B 20 31 20 3A 59 20 2B 20 31 20 50 52 49 4E 54 |+ 1 :Y + 1 PRINT|
00000580: 31 20 22 D1 0D 45 4E 44 0D 0D 54 4F 20 45 52 41 |1 "..END..TO ERA|
00000590: 53 45 50 4F 49 4E 54 20 3A 58 20 3A 59 0D 20 4C |SEPOINT :X :Y. L|
000005A0: 4F 43 41 4C 20 22 41 44 44 52 20 4D 41 4B 45 20 |OCAL "ADDR MAKE |
000005B0: 22 41 44 44 52 20 53 50 2E 41 44 44 52 0D 20 2E |"ADDR SP.ADDR. .|
000005C0: 44 45 50 4F 53 49 54 20 3A 41 44 44 52 20 42 49 |DEPOSIT :ADDR BI|
000005D0: 54 41 4E 44 20 2E 45 58 41 4D 49 4E 45 20 3A 41 |TAND .EXAMINE :A|
000005E0: 44 44 52 20 32 35 35 20 2D 20 53 50 2E 42 49 54 |DDR 255 - SP.BIT|
000005F0: 20 3A 58 0D 20 43 55 52 53 4F 52 20 3A 58 20 2B | :X. CURSOR :X +|
00000600: 20 31 20 3A 59 20 2B 20 31 0D 20 50 52 49 4E 54 | 1 :Y + 1. PRINT|
00000610: 31 20 22 2E 0D 45 4E 44 0D 0D 54 4F 20 43 4C 45 |1 "..END..TO CLE|
00000620: 41 52 53 48 41 50 45 0D 20 4C 4F 43 41 4C 20 22 |ARSHAPE. LOCAL "|
00000630: 41 44 44 52 20 4D 41 4B 45 20 22 41 44 44 52 20 |ADDR MAKE "ADDR |
00000640: 57 48 4F 53 48 50 0D 20 52 45 50 45 41 54 20 36 |WHOSHP. REPEAT 6|
00000650: 33 20 5B 2E 44 45 50 4F 53 49 54 20 3A 41 44 44 |3 [.DEPOSIT :ADD|
00000660: 52 20 30 20 4D 41 4B 45 20 22 41 44 44 52 20 3A |R 0 MAKE "ADDR :|
00000670: 41 44 44 52 2B 31 5D 0D 45 4E 44 0D 0D 54 4F 20 |ADDR+1].END..TO |
00000680: 54 4F 47 47 4C 45 58 0D 20 2E 44 45 50 4F 53 49 |TOGGLEX. .DEPOSI|
00000690: 54 20 35 33 32 37 37 20 42 49 54 58 4F 52 20 45 |T 53277 BITXOR E|
000006A0: 58 50 32 20 57 48 4F 20 2E 45 58 41 4D 49 4E 45 |XP2 WHO .EXAMINE|
000006B0: 20 35 33 32 37 37 0D 45 4E 44 0D 0D 54 4F 20 54 | 53277.END..TO T|
000006C0: 4F 47 47 4C 45 59 0D 20 2E 44 45 50 4F 53 49 54 |OGGLEY. .DEPOSIT|
000006D0: 20 35 33 32 37 31 20 42 49 54 58 4F 52 20 45 58 | 53271 BITXOR EX|
000006E0: 50 32 20 57 48 4F 20 2E 45 58 41 4D 49 4E 45 20 |P2 WHO .EXAMINE |
000006F0: 35 33 32 37 31 0D 45 4E 44 0D 0D 54 4F 20 52 56 |53271.END..TO RV|
00000700: 53 2E 53 48 41 50 45 0D 20 4C 4F 43 41 4C 20 22 |S.SHAPE. LOCAL "|
00000710: 41 44 44 52 20 4D 41 4B 45 20 22 41 44 44 52 20 |ADDR MAKE "ADDR |
00000720: 57 48 4F 53 48 50 0D 20 52 45 50 45 41 54 20 36 |WHOSHP. REPEAT 6|
00000730: 33 20 5B 2E 44 45 50 4F 53 49 54 20 3A 41 44 44 |3 [.DEPOSIT :ADD|
00000740: 52 20 42 49 54 58 4F 52 20 2E 45 58 41 4D 49 4E |R BITXOR .EXAMIN|
00000750: 45 20 3A 41 44 44 52 20 32 35 35 20 4D 41 4B 45 |E :ADDR 255 MAKE|
00000760: 20 22 41 44 44 52 20 3A 41 44 44 52 2B 31 5D 0D | "ADDR :ADDR+1].|
00000770: 45 4E 44 0D 0D 54 4F 20 45 44 2E 51 55 49 54 0D |END..TO ED.QUIT.|
00000780: 20 2E 4F 50 54 49 4F 4E 20 22 54 45 58 54 53 43 | .OPTION "TEXTSC|
00000790: 52 45 45 4E 20 30 20 30 0D 20 53 50 4C 49 54 53 |REEN 0 0. SPLITS|
000007A0: 43 52 45 45 4E 0D 20 43 4C 45 41 52 54 45 58 54 |CREEN. CLEARTEXT|
000007B0: 20 54 4F 50 4C 45 56 45 4C 0D 45 4E 44 0D 0D 54 | TOPLEVEL.END..T|
000007C0: 4F 20 54 4F 47 47 4C 45 50 4F 49 4E 54 20 3A 58 |O TOGGLEPOINT :X|
000007D0: 20 3A 59 0D 20 4C 4F 43 41 4C 20 22 41 44 44 52 | :Y. LOCAL "ADDR|
000007E0: 20 4D 41 4B 45 20 22 41 44 44 52 20 53 50 2E 41 | MAKE "ADDR SP.A|
000007F0: 44 44 52 0D 20 4C 4F 43 41 4C 20 22 46 20 4D 41 |DDR. LOCAL "F MA|
00000800: 4B 45 20 22 46 20 53 50 2E 42 49 54 20 3A 58 0D |KE "F SP.BIT :X.|
00000810: 20 2E 44 45 50 4F 53 49 54 20 3A 41 44 44 52 20 | .DEPOSIT :ADDR |
00000820: 42 49 54 58 4F 52 20 2E 45 58 41 4D 49 4E 45 20 |BITXOR .EXAMINE |
00000830: 3A 41 44 44 52 20 3A 46 0D 20 43 55 52 53 4F 52 |:ADDR :F. CURSOR|
00000840: 20 3A 58 20 2B 20 31 20 3A 59 20 2B 20 31 0D 20 | :X + 1 :Y + 1. |
00000850: 49 46 20 42 49 54 4F 4E 3F 20 3A 41 44 44 52 20 |IF BITON? :ADDR |
00000860: 3A 46 20 50 52 49 4E 54 31 20 22 D1 20 45 4C 53 |:F PRINT1 ". ELS|
00000870: 45 20 50 52 49 4E 54 31 20 22 2E 0D 45 4E 44 0D |E PRINT1 "..END.|
00000880: 0D 54 4F 20 46 4C 41 53 48 26 57 41 49 54 0D 20 |.TO FLASH&WAIT. |
00000890: 54 4F 47 47 4C 45 50 4F 49 4E 54 20 3A 58 20 3A |TOGGLEPOINT :X :|
000008A0: 59 20 54 4F 47 47 4C 45 50 4F 49 4E 54 20 3A 58 |Y TOGGLEPOINT :X|
000008B0: 20 3A 59 20 49 46 20 52 43 3F 20 53 54 4F 50 0D | :Y IF RC? STOP.|
000008C0: 20 46 4C 41 53 48 26 57 41 49 54 0D 45 4E 44 0D | FLASH&WAIT.END.|
000008D0: 0D 54 4F 20 57 48 4F 53 48 50 0D 20 4F 50 20 36 |.TO WHOSHP. OP 6|
000008E0: 34 20 2A 20 28 20 34 38 20 2B 20 53 48 41 50 45 |4 * ( 48 + SHAPE|
000008F0: 20 29 0D 45 4E 44 0D 0D 54 4F 20 53 50 2E 41 44 | ).END..TO SP.AD|
00000900: 44 52 0D 20 4F 50 20 3A 59 20 2A 20 33 20 2B 20 |DR. OP :Y * 3 + |
00000910: 57 48 4F 53 48 50 20 2B 20 51 55 4F 54 49 45 4E |WHOSHP + QUOTIEN|
00000920: 54 20 3A 58 20 38 0D 45 4E 44 0D 0D 54 4F 20 53 |T :X 8.END..TO S|
00000930: 50 2E 42 49 54 20 3A 58 0D 20 4F 50 20 45 58 50 |P.BIT :X. OP EXP|
00000940: 32 20 37 20 2D 20 42 49 54 41 4E 44 20 3A 58 20 |2 7 - BITAND :X |
00000950: 37 0D 45 4E 44 0D 0D 54 4F 20 42 49 54 4F 4E 3F |7.END..TO BITON?|
00000960: 20 3A 41 44 44 52 20 3A 42 49 54 0D 20 4F 50 20 | :ADDR :BIT. OP |
00000970: 30 20 3C 20 42 49 54 41 4E 44 20 2E 45 58 41 4D |0 < BITAND .EXAM|
00000980: 49 4E 45 20 3A 41 44 44 52 20 3A 42 49 54 0D 45 |INE :ADDR :BIT.E|
00000990: 4E 44 0D 0D 54 4F 20 53 45 54 55 50 0D 20 4D 41 |ND..TO SETUP. MA|
000009A0: 4B 45 20 22 52 45 54 55 52 4E 20 43 48 41 52 20 |KE "RETURN CHAR |
000009B0: 31 33 0D 20 4D 41 4B 45 20 22 56 49 43 20 31 33 |13. MAKE "VIC 13|
000009C0: 20 2A 20 34 30 39 36 0D 20 49 46 20 5B 5D 20 3D | * 4096. IF [] =|
000009D0: 20 54 45 58 54 20 22 53 4D 41 4C 4C 58 20 52 45 | TEXT "SMALLX RE|
000009E0: 41 44 20 22 53 50 52 49 54 45 53 0D 45 4E 44 0D |AD "SPRITES.END.|
000009F0: 0D 54 4F 20 53 41 56 45 53 48 41 50 45 53 20 3A |.TO SAVESHAPES :|
00000A00: 4E 41 4D 45 0D 20 42 53 41 56 45 20 57 4F 52 44 |NAME. BSAVE WORD|
00000A10: 20 3A 4E 41 4D 45 20 22 2E 53 48 41 50 45 53 20 | :NAME ".SHAPES |
00000A20: 33 31 33 36 20 33 35 38 33 0D 45 4E 44 0D 0D 54 |3136 3583.END..T|
00000A30: 4F 20 52 45 41 44 53 48 41 50 45 53 20 3A 4E 41 |O READSHAPES :NA|
00000A40: 4D 45 0D 20 42 4C 4F 41 44 20 57 4F 52 44 20 3A |ME. BLOAD WORD :|
00000A50: 4E 41 4D 45 20 22 2E 53 48 41 50 45 53 0D 45 4E |NAME ".SHAPES.EN|
00000A60: 44 0D 0D 54 4F 20 45 44 53 48 0D 20 2E 4F 50 54 |D..TO EDSH. .OPT|
00000A70: 49 4F 4E 20 22 54 45 58 54 53 43 52 45 45 4E 20 |ION "TEXTSCREEN |
00000A80: 30 20 45 58 50 32 20 57 48 4F 0D 20 54 45 58 54 |0 EXP2 WHO. TEXT|
00000A90: 53 43 52 45 45 4E 0D 20 53 45 54 58 59 20 36 30 |SCREEN. SETXY 60|
00000AA0: 20 30 0D 20 52 45 44 49 53 50 4C 41 59 0D 20 45 | 0. REDISPLAY. E|
00000AB0: 44 2E 4C 4F 4F 50 20 30 20 30 0D 45 4E 44 0D 0D |D.LOOP 0 0.END..|
00000AC0: 4D 41 4B 45 20 22 53 54 41 52 54 55 50 20 5B 53 |MAKE "STARTUP [S|
00000AD0: 45 54 55 50 5D 0D |ETUP]. |
. TO ED.LOOP :X :Y. ED.COMMAND RC&FLASH.
ED.LOOP :X :Y.END..TO REDISPLAY. TEXTSC
REEN CLEARTEXT. ED.FRAME. .SPRINT WHOSHP
.END..TO ED.COMMAND :CHAR. IF ANYOF :CHA
R = "^ :CHAR = ". DECY STOP. IF ANYOF :C
HAR = "_ :CHAR = ". DECX STOP. IF :CHAR
= ". INCY STOP. IF :CHAR = ". INCX STOP.
IF :CHAR = "* SETPOINT :X :Y INCX STOP.
IF :CHAR = ". DECX ERASEPOINT :X :Y STO
P. IF :CHAR = "' ' ERASEPOINT :X :Y INCX
STOP. IF :CHAR = "+ SETPOINT :X :Y STOP
. IF :CHAR = "- ERASEPOINT :X :Y STOP. I
F :CHAR = :RETURN MAKE "X 0 INCY STOP. I
F :CHAR = ". MAKE "X 0 MAKE "Y 0 STOP. I
F :CHAR = ". CLEARSHAPE CLEARTEXT REDISP
LAY MAKE "X 0 MAKE "Y 0 STOP. IF :CHAR =
"X TOGGLEX STOP. IF :CHAR = "Y TOGGLEY
STOP. IF :CHAR = ". RVS.SHAPE REDISPLAY
STOP. IF :CHAR = ". ED.QUIT.END..TO RC&F
LASH. LOCAL "CHAR. IF RC? OP RC. .OPTION
"RC 0 1. FLASH&WAIT. MAKE "CHAR RC. .OP
TION "RC 0 0. IF ASCII :CHAR = 7 ED.QUIT
ELSE OP :CHAR.END..TO ED.FRAME. CURSOR
0 0. REPEAT 26 [PRINT1 ".]. REPEAT 21 [C
URSOR 0 1+LAST CURSORPOS PRINT1 ". CURSO
R 25 LAST CURSORPOS PRINT1 ".]. CURSOR 0
22. REPEAT 26 [PRINT1 ".]. CURSOR 0 0.E
ND..TO DECY. MAKE "Y :Y - 1 IF :Y < 0 MA
KE "Y 20.END..TO DECX. MAKE "X :X - 1 IF
:X < 0 MAKE "X 23.END..TO INCY. MAKE "Y
:Y + 1 IF :Y > 20 MAKE "Y 0.END..TO INC
X. MAKE "X :X + 1 IF :X > 23 MAKE "X 0.E
ND..TO SETPOINT :X :Y. LOCAL "ADDR MAKE
"ADDR SP.ADDR. .DEPOSIT :ADDR BITOR .EXA
MINE :ADDR SP.BIT :X. CURSOR :X + 1 :Y +
1 PRINT1 "Q.END..TO ERASEPOINT :X :Y. L
OCAL "ADDR MAKE "ADDR SP.ADDR. .DEPOSIT
:ADDR BITAND .EXAMINE :ADDR 255 - SP.BIT
:X. CURSOR :X + 1 :Y + 1. PRINT1 "..END
..TO CLEARSHAPE. LOCAL "ADDR MAKE "ADDR
WHOSHP. REPEAT 63 [.DEPOSIT :ADDR 0 MAKE
"ADDR :ADDR+1].END..TO TOGGLEX. .DEPOSI
T 53277 BITXOR EXP2 WHO .EXAMINE 53277.E
ND..TO TOGGLEY. .DEPOSIT 53271 BITXOR EX
P2 WHO .EXAMINE 53271.END..TO RVS.SHAPE.
LOCAL "ADDR MAKE "ADDR WHOSHP. REPEAT 6
3 [.DEPOSIT :ADDR BITXOR .EXAMINE :ADDR
255 MAKE "ADDR :ADDR+1].END..TO ED.QUIT.
.OPTION "TEXTSCREEN 0 0. SPLITSCREEN. C
LEARTEXT TOPLEVEL.END..TO TOGGLEPOINT :X
:Y. LOCAL "ADDR MAKE "ADDR SP.ADDR. LOC
AL "F MAKE "F SP.BIT :X. .DEPOSIT :ADDR
BITXOR .EXAMINE :ADDR :F. CURSOR :X + 1
:Y + 1. IF BITON? :ADDR :F PRINT1 "Q ELS
E PRINT1 "..END..TO FLASH&WAIT. TOGGLEPO
INT :X :Y TOGGLEPOINT :X :Y IF RC? STOP.
FLASH&WAIT.END..TO WHOSHP. OP 64 * ( 48
+ SHAPE ).END..TO SP.ADDR. OP :Y * 3 +
WHOSHP + QUOTIENT :X 8.END..TO SP.BIT :X
. OP EXP2 7 - BITAND :X 7.END..TO BITON?
:ADDR :BIT. OP 0 < BITAND .EXAMINE :ADD
R :BIT.END..TO SETUP. MAKE "RETURN CHAR
13. MAKE "VIC 13 * 4096. IF [] = TEXT "S
MALLX READ "SPRITES.END..TO SAVESHAPES :
NAME. BSAVE WORD :NAME ".SHAPES 3136 358
3.END..TO READSHAPES :NAME. BLOAD WORD :
NAME ".SHAPES.END..TO EDSH. .OPTION "TEX
TSCREEN 0 EXP2 WHO. TEXTSCREEN. SETXY 60
0. REDISPLAY. ED.LOOP 0 0.END..MAKE "ST
ARTUP [SETUP].
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL