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

MACRO LIBRARY.S

FILE INFORMATION

FILENAME(S): MACRO LIBRARY.S

FILE TYPE(S): PRG

FILE SIZE: 3.8K

FIRST SEEN: 2025-10-19 22:48:27

APPEARS ON: 4 disk(s)

FILE HASH

6905ff5703b72cfcab76130b899ea85f75d35095aaf4aea25f8f9abb6a9f8fd7

FOUND ON DISKS (4 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
SNAPSHOT64 MACRO LIBRARY.S PRG Radd Maxx 22 1 DOWNLOAD FILE
MERLIN MACRO LIBRARY.S PRG High Voltage Complete C64 Collection 17 1 DOWNLOAD FILE
MERLIN MACRO LIBRARY.S PRG High Voltage Complete C64 Collection 17 1 DOWNLOAD FILE
ICE DISK 28 MACRO LIBRARY.S PRG Icebreaker 17 1 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 00 0A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |..**************|
00000010: 2A 2A 2A 2A 0D 2A A0 A0  A0 A0 A0 A0 A0 A0 A0 A0  |****.*..........|
00000020: A0 A0 A0 A0 A0 A0 2A 0D  2A A0 6D 61 63 72 6F A0  |......*.*.macro.|
00000030: 6C 69 62 72 61 72 79 A0  A0 2A 0D 2A A0 A0 A0 A0  |library..*.*....|
00000040: A0 A0 A0 A0 A0 A0 A0 A0  A0 A0 A0 A0 2A 0D 2A A0  |............*.*.|
00000050: 57 49 54 48 A0 32 A0 50  52 4F 47 52 41 4D A0 2A  |WITH.2.PROGRAM.*|
00000060: 0D 2A A0 A0 A0 A0 45 58  41 4D 50 4C 45 53 A0 A0  |.*....EXAMPLES..|
00000070: A0 A0 2A 0D 2A A0 A0 A0  A0 A0 A0 A0 A0 A0 A0 A0  |..*.*...........|
00000080: A0 A0 A0 A0 A0 2A 0D 2A  A0 A0 A0 A0 32 2F 32 30  |.....*.*....2/20|
00000090: 2F 38 33 A0 A0 A0 A0 A0  2A 0D 2A A0 A0 A0 A0 A0  |/83.....*.*.....|
000000A0: A0 A0 A0 A0 A0 A0 A0 A0  A0 A0 A0 2A 0D 2A A0 75  |...........*.*.u|
000000B0: 53 45 A0 41 53 A0 41 A0  47 55 49 44 45 A0 2A 0D  |SE.AS.A.GUIDE.*.|
000000C0: 2A A0 A0 A0 A0 A0 A0 A0  A0 A0 A0 A0 A0 A0 A0 A0  |*...............|
000000D0: A0 2A 0D 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |.*.*************|
000000E0: 2A 2A 2A 2A 2A 0D 0D 63  68 72 69 6E 20 3D 20 24  |*****..chrin = $|
000000F0: 66 66 63 66 0D 63 68 72  6F 75 74 20 3D 20 24 66  |ffcf.chrout = $f|
00000100: 66 64 32 0D 70 6C 6F 74  20 3D 20 24 66 66 66 30  |fd2.plot = $fff0|
00000110: 0D 0D 69 6E 63 64 20 6D  61 63 0D 20 69 6E 63 20  |..incd mac. inc |
00000120: 5D 31 0D 20 62 6E 65 20  6E 63 0D 20 69 6E 63 20  |]1. bne nc. inc |
00000130: 5D 31 2B 31 0D 6E 63 20  3C 3C 3C 0D 0D 64 65 63  |]1+1.nc <<<..dec|
00000140: 64 20 6D 61 63 0D 20 6C  64 61 20 5D 31 0D 20 62  |d mac. lda ]1. b|
00000150: 6E 65 20 6E 64 0D 20 64  65 63 20 5D 31 2B 31 0D  |ne nd. dec ]1+1.|
00000160: 6E 64 20 64 65 63 20 5D  31 0D 20 3C 3C 3C 0D 0D  |nd dec ]1. <<<..|
00000170: 6D 6F 76 20 6D 61 63 0D  20 6C 64 61 20 5D 31 0D  |mov mac. lda ]1.|
00000180: 20 73 74 61 20 5D 32 0D  20 3C 3C 3C 0D 0D 73 74  | sta ]2. <<<..st|
00000190: 69 6E 64 20 6D 61 63 0D  20 3E 3E 3E 20 6D 6F 76  |ind mac. >>> mov|
000001A0: 2E 5D 31 3B 28 5D 32 29  2C 79 0D 20 69 6E 79 0D  |.]1;(]2),y. iny.|
000001B0: 20 3E 3E 3E 20 6D 6F 76  2E 5D 31 2B 31 3B 28 5D  | >>> mov.]1+1;(]|
000001C0: 32 29 2C 79 0D 20 3C 3C  3C 0D 0D 6C 64 69 6E 64  |2),y. <<<..ldind|
000001D0: 20 6D 61 63 0D 20 3E 3E  3E 20 6D 6F 76 2E 28 5D  | mac. >>> mov.(]|
000001E0: 31 29 2C 79 3B 5D 32 0D  20 69 6E 79 0D 20 3E 3E  |1),y;]2. iny. >>|
000001F0: 3E 20 6D 6F 76 2E 28 5D  31 29 2C 79 3B 5D 32 2B  |> mov.(]1),y;]2+|
00000200: 31 0D 20 3C 3C 3C 0D 0D  74 72 61 6E 73 20 6D 61  |1. <<<..trans ma|
00000210: 63 0D 20 3E 3E 3E 20 6D  6F 76 2E 5D 31 3B 5D 32  |c. >>> mov.]1;]2|
00000220: 0D 20 3E 3E 3E 20 6D 6F  76 2E 5D 31 2B 31 3B 5D  |. >>> mov.]1+1;]|
00000230: 32 2B 31 0D 20 3C 3C 3C  0D 0D 61 64 64 20 6D 61  |2+1. <<<..add ma|
00000240: 63 0D 20 63 6C 63 0D 20  6C 64 61 20 5D 31 0D 20  |c. clc. lda ]1. |
00000250: 61 64 63 20 5D 32 0D 20  73 74 61 20 5D 33 0D 20  |adc ]2. sta ]3. |
00000260: 6C 64 61 20 5D 31 2B 31  0D 20 61 64 63 20 5D 32  |lda ]1+1. adc ]2|
00000270: 2B 31 0D 20 73 74 61 20  5D 33 2B 31 0D 20 3C 3C  |+1. sta ]3+1. <<|
00000280: 3C 0D 0D 73 75 62 20 6D  61 63 0D 20 73 65 63 0D  |<..sub mac. sec.|
00000290: 20 6C 64 61 20 5D 31 0D  20 73 62 63 20 5D 32 0D  | lda ]1. sbc ]2.|
000002A0: 20 73 74 61 20 5D 33 0D  20 6C 64 61 20 5D 31 2B  | sta ]3. lda ]1+|
000002B0: 31 0D 20 73 62 63 20 5D  32 2B 31 0D 20 73 74 61  |1. sbc ]2+1. sta|
000002C0: 20 5D 33 2B 31 0D 20 3C  3C 3C 0D 0D 61 64 64 78  | ]3+1. <<<..addx|
000002D0: 20 6D 61 63 0D 20 74 78  61 0D 20 63 6C 63 0D 20  | mac. txa. clc. |
000002E0: 61 64 63 20 5D 31 0D 20  73 74 61 20 5D 32 0D 20  |adc ]1. sta ]2. |
000002F0: 6C 64 61 20 5D 31 2B 31  0D 20 61 64 63 20 23 30  |lda ]1+1. adc #0|
00000300: 0D 20 73 74 61 20 5D 32  2B 31 0D 20 3C 3C 3C 0D  |. sta ]2+1. <<<.|
00000310: 0D 61 64 64 79 20 6D 61  63 0D 20 74 79 61 0D 20  |.addy mac. tya. |
00000320: 63 6C 63 0D 20 61 64 63  20 5D 31 0D 20 73 74 61  |clc. adc ]1. sta|
00000330: 20 5D 32 0D 20 6C 64 61  20 5D 31 2B 31 0D 20 61  | ]2. lda ]1+1. a|
00000340: 64 63 20 23 30 0D 20 73  74 61 20 5D 32 2B 31 0D  |dc #0. sta ]2+1.|
00000350: 20 3C 3C 3C 0D 0D 61 64  64 6E 75 6D 20 6D 61 63  | <<<..addnum mac|
00000360: 0D 20 6C 64 61 20 23 5D  31 0D 20 63 6C 63 0D 20  |. lda #]1. clc. |
00000370: 61 64 63 20 5D 32 0D 20  73 74 61 20 5D 32 0D 20  |adc ]2. sta ]2. |
00000380: 62 63 63 20 6E 69 0D 20  69 6E 63 20 5D 32 2B 31  |bcc ni. inc ]2+1|
00000390: 0D 6E 69 20 3C 3C 3C 0D  0D 73 77 61 70 20 6D 61  |.ni <<<..swap ma|
000003A0: 63 0D 20 6C 64 61 20 5D  31 0D 20 70 68 61 0D 20  |c. lda ]1. pha. |
000003B0: 6C 64 61 20 5D 32 0D 20  73 74 61 20 5D 31 0D 20  |lda ]2. sta ]1. |
000003C0: 70 6C 61 0D 20 73 74 61  20 5D 32 0D 20 3C 3C 3C  |pla. sta ]2. <<<|
000003D0: 0D 0D 70 75 6C 6C 20 6D  61 63 0D 20 70 6C 61 0D  |..pull mac. pla.|
000003E0: 20 73 74 61 20 5D 31 0D  20 70 6C 61 0D 20 73 74  | sta ]1. pla. st|
000003F0: 61 20 5D 31 2B 31 0D 20  3C 3C 3C 0D 0D 70 75 73  |a ]1+1. <<<..pus|
00000400: 68 20 6D 61 63 0D 20 6C  64 61 20 5D 31 2B 31 0D  |h mac. lda ]1+1.|
00000410: 20 70 68 61 0D 20 6C 64  61 20 5D 31 0D 20 70 68  | pha. lda ]1. ph|
00000420: 61 0D 20 3C 3C 3C 0D 0D  63 6F 6D 70 61 72 65 20  |a. <<<..compare |
00000430: 6D 61 63 0D 20 6C 64 61  20 5D 31 0D 20 63 6D 70  |mac. lda ]1. cmp|
00000440: 20 5D 32 0D 20 6C 64 61  20 5D 31 2B 31 0D 20 73  | ]2. lda ]1+1. s|
00000450: 62 63 20 5D 32 2B 31 0D  20 3C 3C 3C 0D 0D 63 70  |bc ]2+1. <<<..cp|
00000460: 72 61 64 72 73 20 6D 61  63 0D 20 6C 64 61 20 5D  |radrs mac. lda ]|
00000470: 31 0D 20 63 6D 70 20 23  3C 5D 32 0D 20 6C 64 61  |1. cmp #<]2. lda|
00000480: 20 5D 31 2B 31 0D 20 73  62 63 20 23 3E 5D 32 0D  | ]1+1. sbc #>]2.|
00000490: 20 3C 3C 3C 0D 0D 70 6F  6B 65 20 6D 61 63 0D 20  | <<<..poke mac. |
000004A0: 3E 3E 3E 20 6D 6F 76 2E  23 5D 32 3B 5D 31 0D 20  |>>> mov.#]2;]1. |
000004B0: 3C 3C 3C 0D 0D 73 65 74  70 6E 74 20 6D 61 63 0D  |<<<..setpnt mac.|
000004C0: 20 3E 3E 3E 20 70 6F 6B  65 2E 5D 31 3B 5D 32 0D  | >>> poke.]1;]2.|
000004D0: 20 3E 3E 3E 20 70 6F 6B  65 2E 5D 31 2B 31 3B 3E  | >>> poke.]1+1;>|
000004E0: 5D 32 0D 20 3C 3C 3C 0D  0D 63 70 72 73 74 72 20  |]2. <<<..cprstr |
000004F0: 6D 61 63 0D 6C 70 20 6C  64 61 20 28 5D 32 29 2C  |mac.lp lda (]2),|
00000500: 79 0D 20 61 6E 64 20 23  25 30 31 31 31 31 31 31  |y. and #%0111111|
00000510: 31 0D 20 63 6D 70 20 5D  31 2C 79 0D 20 62 6E 65  |1. cmp ]1,y. bne|
00000520: 20 6F 75 74 0D 20 64 65  79 0D 20 62 70 6C 20 6C  | out. dey. bpl l|
00000530: 70 0D 20 69 6E 79 0D 6F  75 74 20 3C 3C 3C 0D 0D  |p. iny.out <<<..|
00000540: 70 72 63 68 72 20 6D 61  63 0D 20 6C 64 61 20 23  |prchr mac. lda #|
00000550: 5D 31 0D 20 6A 73 72 20  63 68 72 6F 75 74 0D 20  |]1. jsr chrout. |
00000560: 3C 3C 3C 0D 0D 70 72 61  64 72 73 20 6D 61 63 0D  |<<<..pradrs mac.|
00000570: 20 6C 64 78 20 5D 31 0D  20 6C 64 61 20 5D 31 2B  | ldx ]1. lda ]1+|
00000580: 31 0D 20 6A 73 72 20 70  72 6E 74 61 78 0D 20 3C  |1. jsr prntax. <|
00000590: 3C 3C 0D 0D 67 6F 74 6F  78 79 20 6D 61 63 0D 20  |<<..gotoxy mac. |
000005A0: 6C 64 79 20 23 5D 31 0D  20 6C 64 78 20 23 5D 32  |ldy #]1. ldx #]2|
000005B0: 0D 20 63 6C 63 0D 20 6A  73 72 20 70 6C 6F 74 0D  |. clc. jsr plot.|
000005C0: 20 3C 3C 3C 0D 0D 6D 65  73 73 61 67 65 20 6D 61  | <<<..message ma|
000005D0: 63 0D 20 6C 64 79 20 23  30 0D 6D 6C 70 20 6C 64  |c. ldy #0.mlp ld|
000005E0: 61 20 5D 31 2C 79 0D 20  62 65 71 20 73 65 6E 74  |a ]1,y. beq sent|
000005F0: 0D 20 6A 73 72 20 63 68  72 6F 75 74 0D 20 69 6E  |. jsr chrout. in|
00000600: 79 0D 20 62 6E 65 20 6D  6C 70 0D 73 65 6E 74 20  |y. bne mlp.sent |
00000610: 3C 3C 3C 0D 0D 0D 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |<<<...**********|
00000620: A0 65 58 41 4D 50 4C 45  53 A0 2A 2A 2A 2A 2A 2A  |.eXAMPLES.******|
00000630: 2A 2A 2A 2A 2A 2A 0D 0D  20 65 78 70 20 6F 66 66  |******.. exp off|
00000640: 20 3B 64 4F A0 4E 4F 54  A0 50 52 49 4E 54 A0 4D  | ;dO.NOT.PRINT.M|
00000650: 41 43 52 4F A0 45 58 50  41 4E 53 49 4F 4E 0D 20  |ACRO.EXPANSION. |
00000660: 74 72 20 6F 6E 20 3B 6C  49 4D 49 54 A0 54 4F A0  |tr on ;lIMIT.TO.|
00000670: 33 A0 42 59 54 45 53 A0  50 52 49 4E 54 45 44 2F  |3.BYTES.PRINTED/|
00000680: 4C 49 4E 45 0D 0D 79 20  3D 20 31 0D 6E 20 3D 20  |LINE..y = 1.n = |
00000690: 30 0D 73 61 76 6F 62 6A  20 6B 62 64 20 27 64 4F  |0.savobj kbd 'dO|
000006A0: A0 59 4F 55 A0 57 41 4E  54 A0 4F 42 4A 45 43 54  |.YOU.WANT.OBJECT|
000006B0: A0 43 4F 44 45 A0 53 41  56 45 44 3F A0 28 59 2F  |.CODE.SAVED?.(Y/|
000006C0: 4E 29 27 0D 65 78 61 6D  70 6C 65 20 6B 62 64 20  |N)'.example kbd |
000006D0: 27 61 53 53 45 4D 42 4C  45 A0 57 48 49 43 48 A0  |'aSSEMBLE.WHICH.|
000006E0: 50 52 4F 47 52 41 4D 3F  A0 28 31 2F 32 29 27 0D  |PROGRAM?.(1/2)'.|
000006F0: 20 65 72 72 20 65 78 61  6D 70 6C 65 2D 31 2F 32  | err example-1/2|
00000700: 0D 0D 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |..**************|
00000710: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
00000720: 2A 2A 0D 2A 0D 2A A0 A0  65 58 41 4D 50 4C 45 A0  |**.*.*..eXAMPLE.|
00000730: 31 0D 2A 0D 2A A0 28 66  49 4E 44 A0 49 4E 50 55  |1.*.*.(fIND.INPU|
00000740: 54 A0 61 73 63 69 69 A0  53 54 52 49 4E 47 A0 49  |T.ascii.STRING.I|
00000750: 4E 0D 2A A0 4D 45 4D 4F  52 59 A0 46 52 4F 4D A0  |N.*.MEMORY.FROM.|
00000760: 24 38 30 30 A0 54 4F A0  24 63 66 66 66 2E 29 0D  |$800.TO.$cfff.).|
00000770: 2A 0D 2A A0 74 4F A0 55  53 45 3A A0 6C 6F 61 64  |*.*.tO.USE:.load|
00000780: A0 22 73 65 61 72 63 68  2E 6F 22 2C 38 2C 31 0D  |."search.o",8,1.|
00000790: 2A A0 74 59 50 45 A0 6E  65 77 A0 49 46 A0 49 4E  |*.tYPE.new.IF.IN|
000007A0: A0 44 49 52 45 43 54 A0  4D 4F 44 45 0D 2A A0 54  |.DIRECT.MODE.*.T|
000007B0: 48 45 4E A0 A0 73 79 73  A0 38 32 30 0D 2A 0D 2A  |HEN..sys.820.*.*|
000007C0: A0 70 55 54 A0 65 78 61  6D 70 6C 65 A0 3D A0 31  |.pUT.example.=.1|
000007D0: A0 54 4F A0 41 53 53 45  4D 42 4C 45 0D 2A 0D 2A  |.TO.ASSEMBLE.*.*|
000007E0: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
000007F0: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 0D  |***************.|
00000800: 0D 20 64 6F 20 65 78 61  6D 70 6C 65 2D 31 0D 20  |. do example-1. |
00000810: 65 6C 73 65 0D 0D 70 6C  20 3D 20 24 38 62 0D 71  |else..pl = $8b.q|
00000820: 6C 20 3D 20 24 38 64 0D  6C 65 6E 20 3D 20 24 38  |l = $8d.len = $8|
00000830: 66 0D 69 6E 20 3D 20 24  32 30 30 0D 73 74 61 72  |f.in = $200.star|
00000840: 74 20 3D 20 24 38 30 30  0D 65 6E 64 20 3D 20 24  |t = $800.end = $|
00000850: 64 30 30 30 0D 69 6D 61  69 6E 20 3D 20 24 33 30  |d000.imain = $30|
00000860: 32 0D 0D 20 6F 72 67 20  24 33 33 34 0D 0D 20 6C  |2.. org $334.. l|
00000870: 64 61 20 23 31 34 37 20  3B 63 4C 45 41 52 A0 26  |da #147 ;cLEAR.&|
00000880: A0 48 4F 4D 45 0D 20 6A  73 72 20 63 68 72 6F 75  |.HOME. jsr chrou|
00000890: 74 0D 20 3E 3E 3E 20 6D  65 73 73 61 67 65 2E 74  |t. >>> message.t|
000008A0: 79 70 65 0D 20 3E 3E 3E  20 73 65 74 70 6E 74 2E  |ype. >>> setpnt.|
000008B0: 70 6C 3B 73 74 61 72 74  0D 69 6E 70 75 74 30 20  |pl;start.input0 |
000008C0: 6C 64 78 20 23 30 0D 69  6E 70 75 74 20 6A 73 72  |ldx #0.input jsr|
000008D0: 20 63 68 72 69 6E 0D 20  61 6E 64 20 23 25 30 31  | chrin. and #%01|
000008E0: 31 31 31 31 31 31 0D 20  73 74 61 20 69 6E 2C 78  |111111. sta in,x|
000008F0: 0D 20 63 6D 70 20 23 24  64 0D 20 62 65 71 20 69  |. cmp #$d. beq i|
00000900: 6E 67 6F 74 0D 20 69 6E  78 0D 20 63 70 78 20 23  |ngot. inx. cpx #|
00000910: 24 35 39 0D 20 62 6C 74  20 69 6E 70 75 74 0D 20  |$59. blt input. |
00000920: 62 67 65 20 69 6E 70 75  74 30 0D 69 6E 67 6F 74  |bge input0.ingot|
00000930: 20 64 65 78 0D 20 62 6D  69 20 65 78 69 74 20 3B  | dex. bmi exit ;|
00000940: 6C 45 41 56 45 A0 49 46  A0 4E 4F A0 49 4E 50 55  |lEAVE.IF.NO.INPU|
00000950: 54 0D 20 73 74 78 20 6C  65 6E 0D 20 3E 3E 3E 20  |T. stx len. >>> |
00000960: 61 64 64 78 2E 70 6C 3B  71 6C 0D 6E 78 63 6D 70  |addx.pl;ql.nxcmp|
00000970: 20 6C 64 79 20 6C 65 6E  0D 20 3E 3E 3E 20 63 70  | ldy len. >>> cp|
00000980: 72 73 74 72 2E 69 6E 3B  70 6C 0D 20 62 6E 65 20  |rstr.in;pl. bne |
00000990: 6E 65 78 74 0D 20 3E 3E  3E 20 70 72 63 68 72 2E  |next. >>> prchr.|
000009A0: 24 64 20 3B 66 4F 55 4E  44 2C A0 50 52 49 4E 54  |$d ;fOUND,.PRINT|
000009B0: A0 4C 4F 43 41 54 49 4F  4E 0D 20 3E 3E 3E 20 70  |.LOCATION. >>> p|
000009C0: 72 63 68 72 2E 27 24 27  0D 20 3E 3E 3E 20 70 72  |rchr.'$'. >>> pr|
000009D0: 61 64 72 73 2E 70 6C 0D  6E 65 78 74 20 3E 3E 3E  |adrs.pl.next >>>|
000009E0: 20 69 6E 63 64 2E 70 6C  0D 20 3E 3E 3E 20 69 6E  | incd.pl. >>> in|
000009F0: 63 64 2E 71 6C 0D 20 3E  3E 3E 20 63 70 72 61 64  |cd.ql. >>> cprad|
00000A00: 72 73 2E 71 6C 3B 65 6E  64 20 3B 66 49 4E 49 53  |rs.ql;end ;fINIS|
00000A10: 48 45 44 3F 0D 20 62 6C  74 20 6E 78 63 6D 70 0D  |HED?. blt nxcmp.|
00000A20: 20 3E 3E 3E 20 6D 65 73  73 61 67 65 2E 63 61 6C  | >>> message.cal|
00000A30: 6C 0D 65 78 69 74 20 6A  6D 70 20 28 69 6D 61 69  |l.exit jmp (imai|
00000A40: 6E 29 0D 74 79 70 65 20  74 78 74 20 27 54 45 58  |n).type txt 'TEX|
00000A50: 54 A0 54 4F A0 4C 4F 43  41 54 45 3A 27 0D 20 68  |T.TO.LOCATE:'. h|
00000A60: 65 78 20 30 64 0D 20 62  72 6B 20 3B 73 49 47 4E  |ex 0d. brk ;sIGN|
00000A70: 41 4C 53 A0 4D 53 47 A0  45 4E 44 0D 63 61 6C 6C  |ALS.MSG.END.call|
00000A80: 20 68 65 78 20 30 64 0D  20 74 78 74 20 27 53 59  | hex 0d. txt 'SY|
00000A90: 53 A0 38 32 30 A0 46 4F  52 A0 4D 4F 52 45 27 0D  |S.820.FOR.MORE'.|
00000AA0: 20 68 65 78 20 30 64 0D  20 62 72 6B 0D 0D 2A A0  | hex 0d. brk..*.|
00000AB0: 73 55 42 52 4F 55 54 49  4E 45 A0 54 4F A0 50 52  |sUBROUTINE.TO.PR|
00000AC0: 49 4E 54 A0 61 2C 78 A0  49 4E A0 48 45 58 3A 0D  |INT.a,x.IN.HEX:.|
00000AD0: 0D 70 72 6E 74 61 78 20  6A 73 72 20 70 72 62 79  |.prntax jsr prby|
00000AE0: 74 65 20 3B 70 52 49 4E  54 A0 61 A0 49 4E A0 48  |te ;pRINT.a.IN.H|
00000AF0: 45 58 0D 20 74 78 61 20  3B 67 45 54 A0 78 0D 70  |EX. txa ;gET.x.p|
00000B00: 72 62 79 74 65 20 70 68  61 20 3B 73 55 42 52 4F  |rbyte pha ;sUBRO|
00000B10: 55 54 49 4E 45 A0 54 4F  A0 50 52 49 4E 54 A0 61  |UTINE.TO.PRINT.a|
00000B20: A0 49 4E A0 48 45 58 0D  20 6C 75 70 20 34 0D 20  |.IN.HEX. lup 4. |
00000B30: 6C 73 72 0D 20 2D 2D 5E  0D 20 6A 73 72 20 70 72  |lsr. --^. jsr pr|
00000B40: 6E 69 62 20 3B 70 52 49  4E 54 A0 48 49 47 48 A0  |nib ;pRINT.HIGH.|
00000B50: 4E 49 42 42 4C 45 0D 20  70 6C 61 20 3B 67 45 54  |NIBBLE. pla ;gET|
00000B60: A0 4C 4F 57 A0 4E 49 42  42 4C 45 0D 20 61 6E 64  |.LOW.NIBBLE. and|
00000B70: 20 23 24 66 0D 70 72 6E  69 62 20 6F 72 61 20 23  | #$f.prnib ora #|
00000B80: 27 30 27 0D 20 63 6D 70  20 23 27 39 27 2B 31 0D  |'0'. cmp #'9'+1.|
00000B90: 20 62 6C 74 20 70 72 69  74 0D 20 61 64 63 20 23  | blt prit. adc #|
00000BA0: 27 41 27 2D 27 39 27 2D  32 0D 70 72 69 74 20 6A  |'A'-'9'-2.prit j|
00000BB0: 6D 70 20 63 68 72 6F 75  74 0D 0D 20 65 72 72 20  |mp chrout.. err |
00000BC0: 2A 2D 31 2F 24 34 30 30  0D 20 64 6F 20 73 61 76  |*-1/$400. do sav|
00000BD0: 6F 62 6A 0D 20 73 61 76  65 20 22 73 65 61 72 63  |obj. save "searc|
00000BE0: 68 22 0D 20 66 69 6E 0D  20 66 69 6E 0D 0D 2A 2A  |h". fin. fin..**|
00000BF0: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
00000C00: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 0D 2A  |**************.*|
00000C10: 0D 2A A0 A0 65 58 41 4D  50 4C 45 A0 32 0D 2A 0D  |.*..eXAMPLE.2.*.|
00000C20: 2A A0 28 72 45 56 49 56  45 A0 41 A0 44 45 41 44  |*.(rEVIVE.A.DEAD|
00000C30: A0 62 61 73 69 63 A0 50  52 4F 47 2E 29 0D 2A 0D  |.basic.PROG.).*.|
00000C40: 2A A0 74 4F A0 55 53 45  3A A0 6C 6F 61 64 A0 22  |*.tO.USE:.load."|
00000C50: 72 65 76 69 76 65 2E 6F  22 2C 38 2C 31 0D 2A A0  |revive.o",8,1.*.|
00000C60: 54 48 45 4E A0 73 79 73  A0 38 32 30 2E A0 A0 74  |THEN.sys.820...t|
00000C70: 48 45 A0 44 45 41 44 0D  2A A0 50 52 4F 47 52 41  |HE.DEAD.*.PROGRA|
00000C80: 4D 2C A0 49 46 A0 41 4E  59 2C A0 57 49 4C 4C A0  |M,.IF.ANY,.WILL.|
00000C90: 42 45 A0 42 41 43 4B 2E  0D 2A 0D 2A A0 70 55 54  |BE.BACK..*.*.pUT|
00000CA0: A0 65 78 61 6D 70 6C 65  A0 3D A0 32 A0 54 4F A0  |.example.=.2.TO.|
00000CB0: 41 53 53 45 4D 42 4C 45  0D 2A 0D 2A 2A 2A 2A 2A  |ASSEMBLE.*.*****|
00000CC0: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
00000CD0: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 0D 0D 20 64 6F  |***********.. do|
00000CE0: 20 65 78 61 6D 70 6C 65  2D 32 0D 20 65 6C 73 65  | example-2. else|
00000CF0: 0D 0D 70 6C 20 3D 20 24  38 62 0D 71 6C 20 3D 20  |..pl = $8b.ql = |
00000D00: 24 38 64 0D 70 72 6F 67  62 65 67 20 3D 20 24 32  |$8d.progbeg = $2|
00000D10: 62 0D 76 61 72 74 61 62  20 3D 20 24 32 64 0D 6C  |b.vartab = $2d.l|
00000D20: 69 6E 6B 73 65 74 20 3D  20 24 61 35 32 61 0D 62  |inkset = $a52a.b|
00000D30: 61 73 63 6C 64 20 3D 20  24 61 30 30 30 0D 0D 20  |ascld = $a000.. |
00000D40: 6F 72 67 20 24 33 33 34  0D 0D 20 3E 3E 3E 20 74  |org $334.. >>> t|
00000D50: 72 61 6E 73 2E 70 72 6F  67 62 65 67 3B 70 6C 0D  |rans.progbeg;pl.|
00000D60: 20 3E 3E 3E 20 61 64 64  6E 75 6D 2E 34 3B 70 6C  | >>> addnum.4;pl|
00000D70: 0D 20 6C 64 79 20 23 30  0D 66 6E 64 65 6E 64 20  |. ldy #0.fndend |
00000D80: 6C 64 61 20 28 70 6C 29  2C 79 20 3B 66 49 4E 44  |lda (pl),y ;fIND|
00000D90: A0 45 4E 44 A0 4F 46 A0  46 49 52 53 54 A0 4C 49  |.END.OF.FIRST.LI|
00000DA0: 4E 45 0D 20 70 68 70 0D  20 3E 3E 3E 20 69 6E 63  |NE. php. >>> inc|
00000DB0: 64 2E 70 6C 0D 20 70 6C  70 0D 20 62 6E 65 20 66  |d.pl. plp. bne f|
00000DC0: 6E 64 65 6E 64 0D 20 3E  3E 3E 20 73 74 69 6E 64  |ndend. >>> stind|
00000DD0: 2E 70 6C 3B 70 72 6F 67  62 65 67 20 3B 66 49 52  |.pl;progbeg ;fIR|
00000DE0: 53 54 A0 4C 49 4E 4B 0D  6C 6F 6F 70 20 64 65 79  |ST.LINK.loop dey|
00000DF0: 20 3B 6E 4F 57 A0 79 3D  30 0D 20 3E 3E 3E 20 6C  | ;nOW.y=0. >>> l|
00000E00: 64 69 6E 64 2E 70 6C 3B  71 6C 20 3B 70 55 54 A0  |dind.pl;ql ;pUT.|
00000E10: 4E 45 58 54 A0 4C 49 4E  4B A0 49 4E A0 71 6C 0D  |NEXT.LINK.IN.ql.|
00000E20: 20 6C 64 61 20 71 6C 20  3B 69 53 A0 4C 49 4E 4B  | lda ql ;iS.LINK|
00000E30: 0D 20 6F 72 61 20 71 6C  2B 31 20 3B 3D A0 30 A0  |. ora ql+1 ;=.0.|
00000E40: 3F 0D 20 62 65 71 20 66  69 78 70 6E 74 0D 20 3E  |?. beq fixpnt. >|
00000E50: 3E 3E 20 63 6F 6D 70 61  72 65 2E 71 6C 3B 70 6C  |>> compare.ql;pl|
00000E60: 20 3B 76 41 4C 49 44 49  54 59 A0 43 48 45 43 4B  | ;vALIDITY.CHECK|
00000E70: 0D 20 62 6C 74 20 62 61  64 70 72 6F 67 0D 20 3E  |. blt badprog. >|
00000E80: 3E 3E 20 74 72 61 6E 73  2E 71 6C 3B 70 6C 20 3B  |>> trans.ql;pl ;|
00000E90: 73 45 54 A0 55 50 A0 46  4F 52 A0 4C 4F 4F 50 0D  |sET.UP.FOR.LOOP.|
00000EA0: 20 6A 6D 70 20 6C 6F 6F  70 0D 66 69 78 70 6E 74  | jmp loop.fixpnt|
00000EB0: 20 3E 3E 3E 20 61 64 64  6E 75 6D 2E 32 3B 70 6C  | >>> addnum.2;pl|
00000EC0: 20 3B 6E 4F 57 A0 70 6C  3D 45 4E 44 A0 50 52 4F  | ;nOW.pl=END.PRO|
00000ED0: 47 52 41 4D 0D 20 3E 3E  3E 20 74 72 61 6E 73 2E  |GRAM. >>> trans.|
00000EE0: 70 6C 3B 76 61 72 74 61  62 0D 20 6A 6D 70 20 6C  |pl;vartab. jmp l|
00000EF0: 69 6E 6B 73 65 74 20 3B  6C 45 54 A0 62 61 73 69  |inkset ;lET.basi|
00000F00: 63 A0 46 49 4E 49 53 48  A0 49 54 A0 55 50 0D 62  |c.FINISH.IT.UP.b|
00000F10: 61 64 70 72 6F 67 20 6A  6D 70 20 28 62 61 73 63  |adprog jmp (basc|
00000F20: 6C 64 29 0D 0D 20 65 72  72 20 2A 2D 31 2F 24 34  |ld).. err *-1/$4|
00000F30: 30 30 0D 20 64 6F 20 73  61 76 6F 62 6A 0D 20 73  |00. do savobj. s|
00000F40: 61 76 65 20 22 72 65 76  69 76 65 22 0D 20 66 69  |ave "revive". fi|
00000F50: 6E 0D 20 66 69 6E 0D                              |n. fin.         |
..******************.*                *.
* MACRO LIBRARY  *.*                *.* 
WITH 2 PROGRAM *.*    EXAMPLES    *.*   
             *.*    2/20/83     *.*     
           *.* USE AS A GUIDE *.*       
         *.******************..CHRIN = $
FFCF.CHROUT = $FFD2.PLOT = $FFF0..INCD M
AC. INC ]1. BNE NC. INC ]1+1.NC <<<..DEC
D MAC. LDA ]1. BNE ND. DEC ]1+1.ND DEC ]
1. <<<..MOV MAC. LDA ]1. STA ]2. <<<..ST
IND MAC. >>> MOV.]1;(]2),Y. INY. >>> MOV
.]1+1;(]2),Y. <<<..LDIND MAC. >>> MOV.(]
1),Y;]2. INY. >>> MOV.(]1),Y;]2+1. <<<..
TRANS MAC. >>> MOV.]1;]2. >>> MOV.]1+1;]
2+1. <<<..ADD MAC. CLC. LDA ]1. ADC ]2. 
STA ]3. LDA ]1+1. ADC ]2+1. STA ]3+1. <<
<..SUB MAC. SEC. LDA ]1. SBC ]2. STA ]3.
 LDA ]1+1. SBC ]2+1. STA ]3+1. <<<..ADDX
 MAC. TXA. CLC. ADC ]1. STA ]2. LDA ]1+1
. ADC #0. STA ]2+1. <<<..ADDY MAC. TYA. 
CLC. ADC ]1. STA ]2. LDA ]1+1. ADC #0. S
TA ]2+1. <<<..ADDNUM MAC. LDA #]1. CLC. 
ADC ]2. STA ]2. BCC NI. INC ]2+1.NI <<<.
.SWAP MAC. LDA ]1. PHA. LDA ]2. STA ]1. 
PLA. STA ]2. <<<..PULL MAC. PLA. STA ]1.
 PLA. STA ]1+1. <<<..PUSH MAC. LDA ]1+1.
 PHA. LDA ]1. PHA. <<<..COMPARE MAC. LDA
 ]1. CMP ]2. LDA ]1+1. SBC ]2+1. <<<..CP
RADRS MAC. LDA ]1. CMP #<]2. LDA ]1+1. S
BC #>]2. <<<..POKE MAC. >>> MOV.#]2;]1. 
<<<..SETPNT MAC. >>> POKE.]1;]2. >>> POK
E.]1+1;>]2. <<<..CPRSTR MAC.LP LDA (]2),
Y. AND #%01111111. CMP ]1,Y. BNE OUT. DE
Y. BPL LP. INY.OUT <<<..PRCHR MAC. LDA #
]1. JSR CHROUT. <<<..PRADRS MAC. LDX ]1.
 LDA ]1+1. JSR PRNTAX. <<<..GOTOXY MAC. 
LDY #]1. LDX #]2. CLC. JSR PLOT. <<<..ME
SSAGE MAC. LDY #0.MLP LDA ]1,Y. BEQ SENT
. JSR CHROUT. INY. BNE MLP.SENT <<<...**
******** EXAMPLES ************.. EXP OFF
 ;DO NOT PRINT MACRO EXPANSION. TR ON ;L
IMIT TO 3 BYTES PRINTED/LINE..Y = 1.N = 
0.SAVOBJ KBD 'DO YOU WANT OBJECT CODE SA
VED? (Y/N)'.EXAMPLE KBD 'ASSEMBLE WHICH 
PROGRAM? (1/2)'. ERR EXAMPLE-1/2..******
**************************.*.*  EXAMPLE 
1.*.* (FIND INPUT ASCII STRING IN.* MEMO
RY FROM $800 TO $CFFF.).*.* TO USE: LOAD
 "SEARCH.O",8,1.* TYPE NEW IF IN DIRECT 
MODE.* THEN  SYS 820.*.* PUT EXAMPLE = 1
 TO ASSEMBLE.*.*************************
*******.. DO EXAMPLE-1. ELSE..PL = $8B.Q
L = $8D.LEN = $8F.IN = $200.START = $800
.END = $D000.IMAIN = $302.. ORG $334.. L
DA #147 ;CLEAR & HOME. JSR CHROUT. >>> M
ESSAGE.TYPE. >>> SETPNT.PL;START.INPUT0 
LDX #0.INPUT JSR CHRIN. AND #%01111111. 
STA IN,X. CMP #$D. BEQ INGOT. INX. CPX #
$59. BLT INPUT. BGE INPUT0.INGOT DEX. BM
I EXIT ;LEAVE IF NO INPUT. STX LEN. >>> 
ADDX.PL;QL.NXCMP LDY LEN. >>> CPRSTR.IN;
PL. BNE NEXT. >>> PRCHR.$D ;FOUND, PRINT
 LOCATION. >>> PRCHR.'$'. >>> PRADRS.PL.
NEXT >>> INCD.PL. >>> INCD.QL. >>> CPRAD
RS.QL;END ;FINISHED?. BLT NXCMP. >>> MES
SAGE.CALL.EXIT JMP (IMAIN).TYPE TXT 'TEX
T TO LOCATE:'. HEX 0D. BRK ;SIGNALS MSG 
END.CALL HEX 0D. TXT 'SYS 820 FOR MORE'.
 HEX 0D. BRK..* SUBROUTINE TO PRINT A,X 
IN HEX:..PRNTAX JSR PRBYTE ;PRINT A IN H
EX. TXA ;GET X.PRBYTE PHA ;SUBROUTINE TO
 PRINT A IN HEX. LUP 4. LSR. --^. JSR PR
NIB ;PRINT HIGH NIBBLE. PLA ;GET LOW NIB
BLE. AND #$F.PRNIB ORA #'0'. CMP #'9'+1.
 BLT PRIT. ADC #'A'-'9'-2.PRIT JMP CHROU
T.. ERR *-1/$400. DO SAVOBJ. SAVE "SEARC
H". FIN. FIN..**************************
******.*.*  EXAMPLE 2.*.* (REVIVE A DEAD
 BASIC PROG.).*.* TO USE: LOAD "REVIVE.O
",8,1.* THEN SYS 820.  THE DEAD.* PROGRA
M, IF ANY, WILL BE BACK..*.* PUT EXAMPLE
 = 2 TO ASSEMBLE.*.*********************
***********.. DO EXAMPLE-2. ELSE..PL = $
8B.QL = $8D.PROGBEG = $2B.VARTAB = $2D.L
INKSET = $A52A.BASCLD = $A000.. ORG $334
.. >>> TRANS.PROGBEG;PL. >>> ADDNUM.4;PL
. LDY #0.FNDEND LDA (PL),Y ;FIND END OF 
FIRST LINE. PHP. >>> INCD.PL. PLP. BNE F
NDEND. >>> STIND.PL;PROGBEG ;FIRST LINK.
LOOP DEY ;NOW Y=0. >>> LDIND.PL;QL ;PUT 
NEXT LINK IN QL. LDA QL ;IS LINK. ORA QL
+1 ;= 0 ?. BEQ FIXPNT. >>> COMPARE.QL;PL
 ;VALIDITY CHECK. BLT BADPROG. >>> TRANS
.QL;PL ;SET UP FOR LOOP. JMP LOOP.FIXPNT
 >>> ADDNUM.2;PL ;NOW PL=END PROGRAM. >>
> TRANS.PL;VARTAB. JMP LINKSET ;LET BASI
C FINISH IT UP.BADPROG JMP (BASCLD).. ER
R *-1/$400. DO SAVOBJ. SAVE "REVIVE". FI
N. FIN.
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL