RASTER.S
FILE INFORMATION
FILENAME(S): RASTER.S
FILE TYPE(S): PRG
FILE SIZE: 2.3K
FIRST SEEN: 2025-11-30 18:12:10
APPEARS ON: 1 disk(s)
FILE HASH
2a824a59212b324d436b15191267ae48467f71a8db52c183b3471a6d36b7f1fb
FOUND ON DISKS (1 DISKS)
| DISK TITLE | FILENAME | FILE TYPE | COLLECTION | TRACK | SECTOR | ACTIONS |
|---|---|---|---|---|---|---|
| LOADSTAR 50 S 1 | RASTER.S | PRG | Sailor, Ganheden | 26 | 2 | DOWNLOAD FILE |
FILE CONTENT & ANALYSIS
00000000: 00 0A 20 6C 73 74 20 6F 66 66 0D 2A 0D 2A A0 A0 |.. lst off.*.*..| 00000010: A0 6C 6F 61 64 73 74 61 72 A0 70 72 65 73 65 6E |.loadstar.presen| 00000020: 74 73 A0 2E 2E 2E 2E 0D 2A 0D 2A A0 A0 A0 A0 A0 |ts......*.*.....| 00000030: A0 A0 7A 65 72 6F A0 70 61 67 65 A0 3A A0 62 69 |..zero.page.:.bi| 00000040: 74 73 0D 2A 0D 2A A0 A0 A0 A0 A0 A0 72 61 73 74 |ts.*.*......rast| 00000050: 65 72 A0 69 6E 74 65 72 72 75 70 74 73 0D 2A 0D |er.interrupts.*.| 00000060: 2A 0D 2A A0 A0 A0 A0 A0 A0 77 72 69 74 74 65 6E |*.*......written| 00000070: A0 62 79 A0 6A 69 6D A0 72 6F 77 0D 2A A0 A0 A0 |.by.jim.row.*...| 00000080: A0 A0 A0 A0 61 6E 64 A0 6D 69 6B 65 A0 6D 61 79 |....and.mike.may| 00000090: 6E 61 72 64 0D 2A 0D 2A A0 A0 A0 A0 A0 A0 A0 A0 |nard.*.*........| 000000A0: A0 28 63 29 A0 31 39 38 38 0D 2A 0D 2A A0 A0 74 |.(c).1988.*.*..t| 000000B0: 68 69 73 A0 69 73 A0 6E 6F 74 A0 70 75 62 6C 69 |his.is.not.publi| 000000C0: 63 A0 64 6F 6D 61 69 6E 21 0D 2A 0D 0D 20 6F 72 |c.domain!.*.. or| 000000D0: 67 20 33 32 37 36 38 0D 0D 2A 0D 2A A0 6F 75 72 |g 32768..*.*.our| 000000E0: A0 74 61 62 6C 65 A0 6F 66 A0 65 71 75 61 74 65 |.table.of.equate| 000000F0: 73 A0 66 6F 72 A0 74 68 65 0D 2A A0 72 6F 75 74 |s.for.the.*.rout| 00000100: 69 6E 65 73 A0 61 6E 64 A0 6C 6F 63 61 74 69 6F |ines.and.locatio| 00000110: 6E 73 A0 74 68 61 74 0D 2A A0 77 65 27 6C 6C A0 |ns.that.*.we'll.| 00000120: 62 65 A0 75 73 69 6E 67 0D 2A 0D 0D 0D 6C 6F 6E |be.using.*...lon| 00000130: 75 6D 62 20 65 71 75 20 32 35 33 20 3B 74 6F 70 |umb equ 253 ;top| 00000140: 0D 68 69 6E 75 6D 62 20 65 71 75 20 32 35 34 20 |.hinumb equ 254 | 00000150: 3B 62 6F 74 74 6F 6D 0D 63 6F 6C 6F 72 31 20 65 |;bottom.color1 e| 00000160: 71 75 20 32 35 31 0D 63 6F 6C 6F 72 32 20 65 71 |qu 251.color2 eq| 00000170: 75 20 32 35 32 0D 69 72 71 76 65 63 20 65 71 75 |u 252.irqvec equ| 00000180: 20 37 38 38 0D 72 61 73 6C 69 6E 20 65 71 75 20 | 788.raslin equ | 00000190: 35 33 32 36 36 0D 69 6E 74 73 74 61 20 65 71 75 |53266.intsta equ| 000001A0: 20 35 33 32 37 33 0D 69 6E 74 65 6E 61 20 65 71 | 53273.intena eq| 000001B0: 75 20 35 33 32 37 34 0D 62 61 63 6B 67 72 20 65 |u 53274.backgr e| 000001C0: 71 75 20 35 33 32 38 31 0D 62 6F 72 64 65 72 20 |qu 53281.border | 000001D0: 65 71 75 20 35 33 32 38 30 0D 69 6E 74 74 69 6D |equ 53280.inttim| 000001E0: 20 65 71 75 20 35 36 33 33 33 0D 0D 0D 2A A0 A0 | equ 56333...*..| 000001F0: A0 A0 A0 64 69 73 61 62 6C 65 A0 69 6E 74 65 72 |...disable.inter| 00000200: 72 75 70 74 73 0D 2A A0 A0 73 74 6F 72 65 A0 74 |rupts.*..store.t| 00000210: 68 65 A0 6F 72 69 67 69 6E 61 6C A0 62 6F 72 64 |he.original.bord| 00000220: 65 72 0D 2A A0 A0 61 6E 64 A0 62 61 63 6B 67 72 |er.*..and.backgr| 00000230: 6F 75 6E 64 A0 63 6F 6C 6F 72 73 A0 69 6E 74 6F |ound.colors.into| 00000240: 0D 2A A0 A0 74 65 6D 70 6F 72 61 72 79 A0 6C 6F |.*..temporary.lo| 00000250: 63 61 74 69 6F 6E 73 2E 0D 2A 0D 6F 6E 20 73 65 |cations..*.on se| 00000260: 69 0D 20 6C 64 61 20 62 6F 72 64 65 72 0D 20 73 |i. lda border. s| 00000270: 74 61 20 74 62 6F 72 64 65 72 0D 20 6C 64 61 20 |ta tborder. lda | 00000280: 62 61 63 6B 67 72 0D 20 73 74 61 20 74 62 61 63 |backgr. sta tbac| 00000290: 6B 67 72 0D 2A 0D 2A A0 73 61 76 65 A0 6F 72 69 |kgr.*.*.save.ori| 000002A0: 67 69 6E 61 6C A0 69 72 71 A0 76 65 63 74 6F 72 |ginal.irq.vector| 000002B0: A0 69 6E 0D 2A A0 6F 72 67 69 72 71 A0 61 6E 64 |.in.*.orgirq.and| 000002C0: A0 69 6E 73 65 72 74 A0 6E 65 77 A0 76 65 63 74 |.insert.new.vect| 000002D0: 6F 72 0D 2A A0 61 64 64 72 65 73 73 A0 66 6F 72 |or.*.address.for| 000002E0: A0 6F 75 72 A0 6E 65 77 A0 72 6F 75 74 69 6E 65 |.our.new.routine| 000002F0: 2E 0D 2A 0D 20 6C 64 61 20 69 72 71 76 65 63 0D |..*. lda irqvec.| 00000300: 20 73 74 61 20 6F 72 67 69 72 71 0D 20 6C 64 61 | sta orgirq. lda| 00000310: 20 69 72 71 76 65 63 2B 31 0D 20 73 74 61 20 6F | irqvec+1. sta o| 00000320: 72 67 69 72 71 2B 31 0D 2A 0D 2A A0 73 74 6F 72 |rgirq+1.*.*.stor| 00000330: 69 6E 67 A0 6E 65 77 A0 61 64 64 72 65 73 73 A0 |ing.new.address.| 00000340: 66 6F 72 A0 6F 75 72 0D 2A A0 72 6F 75 74 69 6E |for.our.*.routin| 00000350: 65 2E 0D 2A 0D 20 6C 64 61 20 23 3C 6E 65 77 69 |e..*. lda #<newi| 00000360: 72 71 0D 20 73 74 61 20 69 72 71 76 65 63 0D 20 |rq. sta irqvec. | 00000370: 6C 64 61 20 23 3E 6E 65 77 69 72 71 0D 20 73 74 |lda #>newirq. st| 00000380: 61 20 69 72 71 76 65 63 2B 31 0D 2A 0D 2A A0 A0 |a irqvec+1.*.*..| 00000390: 70 75 74 A0 6C 6F 77 A0 72 61 73 74 65 72 A0 6C |put.low.raster.l| 000003A0: 69 6E 65 A0 6E 75 6D 62 65 72 0D 2A A0 A0 69 6E |ine.number.*..in| 000003B0: A0 22 72 61 73 6C 69 6E 22 0D 2A 0D 20 6C 64 61 |."raslin".*. lda| 000003C0: 20 6C 6F 6E 75 6D 62 0D 20 73 74 61 20 72 61 73 | lonumb. sta ras| 000003D0: 6C 69 6E 0D 2A 0D 2A A0 A0 6D 61 6B 65 A0 73 75 |lin.*.*..make.su| 000003E0: 72 65 A0 68 69 2D 62 69 74 A0 6F 66 A0 72 61 73 |re.hi-bit.of.ras| 000003F0: 74 65 72 0D 2A A0 A0 6C 69 6E 65 A0 6E 75 6D 62 |ter.*..line.numb| 00000400: 65 72 A0 69 73 A0 6F 66 66 21 0D 2A 0D 20 6C 64 |er.is.off!.*. ld| 00000410: 61 20 72 61 73 6C 69 6E 2D 31 0D 20 61 6E 64 20 |a raslin-1. and | 00000420: 23 31 32 37 0D 20 73 74 61 20 72 61 73 6C 69 6E |#127. sta raslin| 00000430: 2D 31 0D 2A 0D 2A A0 A0 65 6E 61 62 6C 65 A0 72 |-1.*.*..enable.r| 00000440: 61 73 74 65 72 A0 69 6E 74 65 72 72 75 70 74 73 |aster.interrupts| 00000450: 0D 2A 0D 2A A0 A0 73 65 74 A0 62 69 74 A0 30 A0 |.*.*..set.bit.0.| 00000460: 66 6F 72 A0 61 A0 72 61 73 74 65 72 0D 2A A0 A0 |for.a.raster.*..| 00000470: 63 6F 6D 70 61 72 65 2E A0 A0 6D 61 6B 65 A0 73 |compare...make.s| 00000480: 75 72 65 A0 74 68 61 74 A0 62 69 74 73 0D 2A A0 |ure.that.bits.*.| 00000490: A0 31 2D 37 A0 61 72 65 A0 6F 66 66 2E 0D 2A 0D |.1-7.are.off..*.| 000004A0: 20 6C 64 61 20 23 30 31 0D 20 73 74 61 20 69 6E | lda #01. sta in| 000004B0: 74 65 6E 61 0D 2A 0D 2A 0D 2A A0 A0 65 76 65 72 |tena.*.*.*..ever| 000004C0: 79 74 68 69 6E 67 A0 68 61 73 A0 62 65 65 6E A0 |ything.has.been.| 000004D0: 73 65 74 A0 66 6F 72 A0 6F 75 72 0D 2A A0 72 61 |set.for.our.*.ra| 000004E0: 73 74 65 72 A0 69 6E 74 65 72 72 75 70 74 73 A0 |ster.interrupts.| 000004F0: 61 6E 64 A0 77 65 A0 77 69 6C 6C 0D 2A A0 72 65 |and.we.will.*.re| 00000500: 74 75 72 6E A0 74 6F A0 62 61 73 69 63 2E 0D 2A |turn.to.basic..*| 00000510: 0D 2A A0 A0 74 75 72 6E A0 69 6E 74 65 72 72 75 |.*..turn.interru| 00000520: 70 74 73 A0 6F 6E A0 61 6E 64 A0 72 74 73 21 0D |pts.on.and.rts!.| 00000530: 20 63 6C 69 0D 20 72 74 73 0D 0D 2A A0 63 68 65 | cli. rts..*.che| 00000540: 63 6B A0 69 6E 74 65 72 72 75 70 74 A0 73 74 61 |ck.interrupt.sta| 00000550: 74 75 73 A0 72 65 67 69 73 74 65 72 0D 2A A0 69 |tus.register.*.i| 00000560: 74 A0 74 65 6C 6C 73 A0 77 68 61 74 A0 63 61 75 |t.tells.what.cau| 00000570: 73 65 64 A0 74 68 65 0D 2A A0 69 6E 74 65 72 72 |sed.the.*.interr| 00000580: 75 70 74 2E 0D 2A 74 68 69 73 A0 63 68 65 63 6B |upt..*this.check| 00000590: 73 A0 74 68 65 A0 68 69 67 68 A0 62 69 74 A0 28 |s.the.high.bit.(| 000005A0: 62 69 74 A0 37 29 0D 2A A0 69 66 A0 69 74 A0 69 |bit.7).*.if.it.i| 000005B0: 73 A0 73 65 74 A0 62 72 61 6E 63 68 A0 74 6F A0 |s.set.branch.to.| 000005C0: 76 69 63 72 61 73 74 72 0D 2A A0 28 6F 75 72 A0 |vicrastr.*.(our.| 000005D0: 72 6F 75 74 69 6E 65 29 0D 2A 0D 6E 65 77 69 72 |routine).*.newir| 000005E0: 71 20 6C 64 61 20 69 6E 74 73 74 61 0D 20 73 74 |q lda intsta. st| 000005F0: 61 20 69 6E 74 73 74 61 0D 20 62 6D 69 20 76 69 |a intsta. bmi vi| 00000600: 63 72 61 73 74 72 0D 0D 2A 0D 2A A0 6F 75 72 A0 |crastr..*.*.our.| 00000610: 72 61 73 74 65 72 A0 69 6E 74 65 72 72 75 70 74 |raster.interrupt| 00000620: A0 64 69 64 A0 6E 6F 74 0D 2A A0 6F 63 63 75 72 |.did.not.*.occur| 00000630: 2E A0 77 65 A0 6E 65 65 64 A0 74 6F A0 6C 6F 61 |..we.need.to.loa| 00000640: 64 A0 2E 61 A0 77 69 74 68 0D 2A A0 69 6E 74 74 |d..a.with.*.intt| 00000650: 69 6D A0 61 6E 64 A0 63 6C 65 61 72 A0 74 68 65 |im.and.clear.the| 00000660: A0 69 6E 74 65 72 72 75 70 74 0D 2A A0 66 6C 61 |.interrupt.*.fla| 00000670: 67 2E A0 A0 77 65 A0 6C 6F 61 64 A0 2E 61 A0 74 |g...we.load..a.t| 00000680: 6F A0 68 65 6C 70 A0 77 69 74 68 0D 2A A0 72 61 |o.help.with.*.ra| 00000690: 73 74 65 72 A0 63 6C 65 61 6E A0 75 70 2E 0D 2A |ster.clean.up..*| 000006A0: 0D 20 6C 64 61 20 69 6E 74 74 69 6D 0D 20 63 6C |. lda inttim. cl| 000006B0: 69 0D 2A 0D 2A A0 A0 61 6C 6C 6F 77 A0 74 68 65 |i.*.*..allow.the| 000006C0: A0 69 72 71 A0 74 6F A0 63 6F 6E 74 69 6E 75 65 |.irq.to.continue| 000006D0: 0D 2A A0 74 6F A0 69 74 73 A0 6F 72 69 67 69 6E |.*.to.its.origin| 000006E0: 61 6C A0 6C 6F 63 61 74 69 6F 6E 2E 0D 2A 0D 20 |al.location..*. | 000006F0: 6A 6D 70 20 28 6F 72 67 69 72 71 29 0D 0D 2A A0 |jmp (orgirq)..*.| 00000700: 72 61 73 74 65 72 A0 63 6F 6D 70 61 72 65 A0 6C |raster.compare.l| 00000710: 69 6E 65 A0 77 61 73 A0 72 65 61 63 68 65 64 0D |ine.was.reached.| 00000720: 2A A0 73 6F A0 61 6E A0 69 6E 74 65 72 72 75 70 |*.so.an.interrup| 00000730: 74 A0 6F 63 63 75 72 72 65 64 2E 0D 2A 0D 2A A0 |t.occurred..*.*.| 00000740: A0 74 68 65 A0 73 63 61 6E A0 6C 69 6E 65 A0 72 |.the.scan.line.r| 00000750: 65 61 63 68 65 64 A0 6F 6E 65 A0 6F 66 0D 2A A0 |eached.one.of.*.| 00000760: 6F 75 72 A0 74 77 6F A0 66 6C 61 67 73 2E 2E 2E |our.two.flags...| 00000770: 6E 6F 77 A0 77 65 A0 6E 65 65 64 0D 2A A0 74 6F |now.we.need.*.to| 00000780: A0 73 65 65 A0 77 68 69 63 68 A0 66 6C 61 67 A0 |.see.which.flag.| 00000790: 77 61 73 A0 72 65 61 63 68 65 64 2E 0D 2A 0D 2A |was.reached..*.*| 000007A0: A0 64 69 64 A0 74 68 65 A0 72 61 73 74 65 72 A0 |.did.the.raster.| 000007B0: 68 69 74 A0 68 69 6E 75 6D 62 3F 0D 2A 0D 76 69 |hit.hinumb?.*.vi| 000007C0: 63 72 61 73 74 72 20 6C 64 61 20 72 61 73 6C 69 |crastr lda rasli| 000007D0: 6E 0D 20 63 6D 70 20 68 69 6E 75 6D 62 0D 20 62 |n. cmp hinumb. b| 000007E0: 63 73 20 67 72 65 61 74 65 72 0D 0D 20 6C 64 61 |cs greater.. lda| 000007F0: 20 63 6F 6C 6F 72 31 0D 20 73 74 61 20 62 61 63 | color1. sta bac| 00000800: 6B 67 72 0D 20 6C 64 61 20 63 6F 6C 6F 72 32 0D |kgr. lda color2.| 00000810: 20 73 74 61 20 62 6F 72 64 65 72 0D 20 6C 64 61 | sta border. lda| 00000820: 20 68 69 6E 75 6D 62 0D 20 6A 6D 70 20 65 78 69 | hinumb. jmp exi| 00000830: 74 0D 0D 67 72 65 61 74 65 72 20 6C 64 61 20 74 |t..greater lda t| 00000840: 62 61 63 6B 67 72 0D 20 73 74 61 20 62 61 63 6B |backgr. sta back| 00000850: 67 72 0D 20 6C 64 61 20 74 62 6F 72 64 65 72 0D |gr. lda tborder.| 00000860: 20 73 74 61 20 62 6F 72 64 65 72 0D 20 6C 64 61 | sta border. lda| 00000870: 20 6C 6F 6E 75 6D 62 0D 0D 65 78 69 74 20 73 74 | lonumb..exit st| 00000880: 61 20 72 61 73 6C 69 6E 0D 20 6A 6D 70 20 24 66 |a raslin. jmp $f| 00000890: 65 62 63 0D 0D 6F 72 67 69 72 71 20 64 66 62 20 |ebc..orgirq dfb | 000008A0: 30 30 2C 30 30 0D 74 62 61 63 6B 67 72 20 64 66 |00,00.tbackgr df| 000008B0: 62 20 30 30 0D 74 62 6F 72 64 65 72 20 64 66 62 |b 00.tborder dfb| 000008C0: 20 30 30 0D 63 72 65 64 69 74 73 20 74 78 74 20 | 00.credits txt | 000008D0: 22 77 72 69 74 74 65 6E A0 62 79 A0 6A 69 6D 22 |"written.by.jim"| 000008E0: 0D 20 74 78 74 20 22 72 6F 77 A0 61 6E 64 A0 6D |. txt "row.and.m| 000008F0: 69 6B 65 22 0D 20 74 78 74 20 22 6D 61 79 6E 61 |ike". txt "mayna| 00000900: 72 64 A0 66 6F 72 22 0D 20 74 78 74 20 22 6C 6F |rd.for". txt "lo| 00000910: 61 64 73 74 61 72 A0 69 6E 63 2E 22 0D 20 74 78 |adstar.inc.". tx| 00000920: 74 20 22 A0 28 63 29 A0 31 39 38 38 A0 22 0D 20 |t ".(c).1988.". | 00000930: 64 66 62 20 30 30 0D |dfb 00. |
.. LST OFF.*.* LOADSTAR PRESENTS ..... *.* ZERO PAGE : BITS.*.* RAST ER INTERRUPTS.*.*.* WRITTEN BY JIM ROW.* AND MIKE MAYNARD.*.* (C) 1988.*.* THIS IS NOT PUBLIC DOMAIN !.*.. ORG 32768..*.* OUR TABLE OF EQUATE S FOR THE.* ROUTINES AND LOCATIONS THAT. * WE'LL BE USING.*...LONUMB EQU 253 ;TOP .HINUMB EQU 254 ;BOTTOM.COLOR1 EQU 251.C OLOR2 EQU 252.IRQVEC EQU 788.RASLIN EQU 53266.INTSTA EQU 53273.INTENA EQU 53274. BACKGR EQU 53281.BORDER EQU 53280.INTTIM EQU 56333...* DISABLE INTERRUPTS.* STORE THE ORIGINAL BORDER.* AND BACKGR OUND COLORS INTO.* TEMPORARY LOCATIONS. .*.ON SEI. LDA BORDER. STA TBORDER. LDA BACKGR. STA TBACKGR.*.* SAVE ORIGINAL IR Q VECTOR IN.* ORGIRQ AND INSERT NEW VECT OR.* ADDRESS FOR OUR NEW ROUTINE..*. LDA IRQVEC. STA ORGIRQ. LDA IRQVEC+1. STA O RGIRQ+1.*.* STORING NEW ADDRESS FOR OUR. * ROUTINE..*. LDA #<NEWIRQ. STA IRQVEC. LDA #>NEWIRQ. STA IRQVEC+1.*.* PUT LOW RASTER LINE NUMBER.* IN "RASLIN".*. LDA LONUMB. STA RASLIN.*.* MAKE SURE HI-BI T OF RASTER.* LINE NUMBER IS OFF!.*. LD A RASLIN-1. AND #127. STA RASLIN-1.*.* ENABLE RASTER INTERRUPTS.*.* SET BIT 0 FOR A RASTER.* COMPARE. MAKE SURE THAT BITS.* 1-7 ARE OFF..*. LDA #01. STA IN TENA.*.*.* EVERYTHING HAS BEEN SET FOR OUR.* RASTER INTERRUPTS AND WE WILL.* RE TURN TO BASIC..*.* TURN INTERRUPTS ON A ND RTS!. CLI. RTS..* CHECK INTERRUPT STA TUS REGISTER.* IT TELLS WHAT CAUSED THE. * INTERRUPT..*THIS CHECKS THE HIGH BIT ( BIT 7).* IF IT IS SET BRANCH TO VICRASTR .* (OUR ROUTINE).*.NEWIRQ LDA INTSTA. ST A INTSTA. BMI VICRASTR..*.* OUR RASTER I NTERRUPT DID NOT.* OCCUR. WE NEED TO LOA D .A WITH.* INTTIM AND CLEAR THE INTERRU PT.* FLAG. WE LOAD .A TO HELP WITH.* RA STER CLEAN UP..*. LDA INTTIM. CLI.*.* A LLOW THE IRQ TO CONTINUE.* TO ITS ORIGIN AL LOCATION..*. JMP (ORGIRQ)..* RASTER C OMPARE LINE WAS REACHED.* SO AN INTERRUP T OCCURRED..*.* THE SCAN LINE REACHED O NE OF.* OUR TWO FLAGS...NOW WE NEED.* TO SEE WHICH FLAG WAS REACHED..*.* DID THE RASTER HIT HINUMB?.*.VICRASTR LDA RASLI N. CMP HINUMB. BCS GREATER.. LDA COLOR1. STA BACKGR. LDA COLOR2. STA BORDER. LDA HINUMB. JMP EXIT..GREATER LDA TBACKGR. STA BACKGR. LDA TBORDER. STA BORDER. LDA LONUMB..EXIT STA RASLIN. JMP $FEBC..ORG IRQ DFB 00,00.TBACKGR DFB 00.TBORDER DFB 00.CREDITS TXT "WRITTEN BY JIM". TXT "R OW AND MIKE". TXT "MAYNARD FOR". TXT "LO ADSTAR INC.". TXT " (C) 1988 ". DFB 00.
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL