00000000: 20 6C 73 74 20 6F 66 66 0D 20 74 72 20 6F 6E 0D | lst off. tr on.|
00000010: 20 65 78 70 20 6F 66 66 0D 2A 2A 2A 2A 2A 2A 2A | exp off.*******|
00000020: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************|
00000030: 2A 2A 2A 2A 2A 2A 2A 2A 2A 0D 2A A0 A0 A0 A0 A0 |*********.*.....|
00000040: A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 |................|
00000050: A0 A0 A0 A0 A0 A0 A0 A0 A0 2A 0D 2A A0 A0 A0 A0 |.........*.*....|
00000060: A0 A0 A0 A0 73 74 61 72 73 6F 66 74 A0 6C 6F 67 |....starsoft.log|
00000070: 6F A0 A0 A0 A0 A0 A0 A0 A0 A0 2A 0D 2A A0 A0 A0 |o.........*.*...|
00000080: A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 |................|
00000090: A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 2A 0D 2A A0 A0 |...........*.*..|
000000A0: A0 A0 A0 A0 A0 A0 A0 A0 A0 53 53 A0 4C 49 4E 4B |.........SS.LINK|
000000B0: 45 52 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 2A 0D 2A A0 |ER..........*.*.|
000000C0: A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 |................|
000000D0: A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 2A 0D 2A |.............*.*|
000000E0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************|
000000F0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 0D |***************.|
00000100: 20 6F 72 67 20 24 38 30 30 30 0D 20 64 73 6B 20 | org $8000. dsk |
00000110: 22 40 30 3A 73 74 61 72 73 6F 66 74 A0 6C 6F 67 |"@0:starsoft.log|
00000120: 6F 22 2C 38 0D 2A A0 5A 45 52 4F A0 50 41 47 45 |o",8.*.ZERO.PAGE|
00000130: A0 56 41 52 49 41 42 4C 45 53 0D 67 65 74 66 72 |.VARIABLES.getfr|
00000140: 6F 6D 20 3D 20 24 39 65 0D 67 6F 74 6F 31 20 3D |om = $9e.goto1 =|
00000150: 20 24 61 33 0D 67 6F 74 6F 32 20 3D 20 24 61 35 | $a3.goto2 = $a5|
00000160: 0D 5D 66 72 65 65 20 3D 20 24 62 32 0D 5D 66 72 |.]free = $b2.]fr|
00000170: 65 65 20 3D 20 24 66 62 0D 5D 66 72 65 65 20 3D |ee = $fb.]free =|
00000180: 20 24 66 64 0D 5D 66 72 65 65 20 3D 20 24 61 37 | $fd.]free = $a7|
00000190: 0D 5D 66 72 65 65 20 3D 20 24 61 39 0D 5D 66 72 |.]free = $a9.]fr|
000001A0: 65 65 20 3D 20 24 36 61 0D 2A 2A 2A 2A 2A 2A 2A |ee = $6a.*******|
000001B0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************|
000001C0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 0D 73 63 72 65 65 6E |*********.screen|
000001D0: 20 3D 20 24 34 30 30 30 0D 2A 2A 2A 2A 2A 2A 2A | = $4000.*******|
000001E0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************|
000001F0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 0D 63 6E 74 64 77 6E |*********.cntdwn|
00000200: 30 20 6D 61 63 0D 20 6C 64 61 20 5D 31 0D 20 62 |0 mac. lda ]1. b|
00000210: 65 71 20 63 6E 74 64 6E 31 0D 20 64 65 63 20 5D |eq cntdn1. dec ]|
00000220: 31 0D 63 6E 74 64 6E 31 20 3C 3C 3C 0D 2A 2A 2A |1.cntdn1 <<<.***|
00000230: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************|
00000240: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 0D 73 65 |*************.se|
00000250: 74 72 61 73 74 20 6D 61 63 0D 20 6C 64 61 20 23 |trast mac. lda #|
00000260: 3C 5D 31 0D 20 6C 64 78 20 23 3C 5D 32 0D 20 6C |<]1. ldx #<]2. l|
00000270: 64 79 20 23 3E 5D 32 0D 20 6A 73 72 20 72 61 73 |dy #>]2. jsr ras|
00000280: 74 73 65 74 0D 20 3C 3C 3C 0D 2A 2A 2A 2A 2A 2A |tset. <<<.******|
00000290: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************|
000002A0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 0D 61 64 64 6D 65 |**********.addme|
000002B0: 6D 20 6D 61 63 0D 20 6C 64 61 20 5D 31 0D 20 63 |m mac. lda ]1. c|
000002C0: 6C 63 0D 20 61 64 63 20 23 3C 5D 32 0D 20 73 74 |lc. adc #<]2. st|
000002D0: 61 20 5D 33 0D 20 6C 64 61 20 5D 31 2B 31 0D 20 |a ]3. lda ]1+1. |
000002E0: 61 64 63 20 23 3E 5D 32 0D 20 73 74 61 20 5D 33 |adc #>]2. sta ]3|
000002F0: 2B 31 0D 20 3C 3C 3C 0D 2A 2A 2A 2A 2A 2A 2A 2A |+1. <<<.********|
00000300: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************|
00000310: 2A 2A 2A 2A 2A 2A 2A 2A 0D 6C 64 6D 65 6D 20 6D |********.ldmem m|
00000320: 61 63 0D 20 6C 64 61 20 23 3C 5D 31 0D 20 73 74 |ac. lda #<]1. st|
00000330: 61 20 5D 32 0D 20 6C 64 61 20 23 3E 5D 31 0D 20 |a ]2. lda #>]1. |
00000340: 73 74 61 20 5D 32 2B 31 0D 20 3C 3C 3C 0D 2A 2A |sta ]2+1. <<<.**|
00000350: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************|
00000360: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 0D 64 |**************.d|
00000370: 65 63 6D 65 6D 20 6D 61 63 0D 20 69 6E 63 20 5D |ecmem mac. inc ]|
00000380: 31 0D 20 64 65 63 20 5D 31 0D 20 62 6E 65 20 64 |1. dec ]1. bne d|
00000390: 65 63 6D 65 6D 32 0D 20 64 65 63 20 5D 31 2B 31 |ecmem2. dec ]1+1|
000003A0: 0D 64 65 63 6D 65 6D 32 20 64 65 63 20 5D 31 0D |.decmem2 dec ]1.|
000003B0: 20 3C 3C 3C 0D 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A | <<<.***********|
000003C0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************|
000003D0: 2A 2A 2A 2A 2A 0D 69 6E 63 6D 65 6D 20 6D 61 63 |*****.incmem mac|
000003E0: 0D 20 69 6E 63 20 5D 31 0D 20 62 6E 65 20 69 6E |. inc ]1. bne in|
000003F0: 63 6D 65 6D 32 0D 20 69 6E 63 20 5D 31 2B 31 0D |cmem2. inc ]1+1.|
00000400: 69 6E 63 6D 65 6D 32 20 3C 3C 3C 0D 2A 2A 2A 2A |incmem2 <<<.****|
00000410: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************|
00000420: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 0D 70 75 73 |************.pus|
00000430: 68 72 65 67 73 20 6D 61 63 0D 20 70 68 70 0D 20 |hregs mac. php. |
00000440: 70 68 61 0D 20 74 78 61 0D 20 70 68 61 0D 20 74 |pha. txa. pha. t|
00000450: 79 61 0D 20 70 68 61 0D 20 3C 3C 3C 0D 2A 2A 2A |ya. pha. <<<.***|
00000460: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************|
00000470: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 0D 70 75 |*************.pu|
00000480: 6C 6C 72 65 67 73 20 6D 61 63 0D 20 70 6C 61 0D |llregs mac. pla.|
00000490: 20 74 61 79 0D 20 70 6C 61 0D 20 74 61 78 0D 20 | tay. pla. tax. |
000004A0: 70 6C 61 0D 20 70 6C 70 0D 20 3C 3C 3C 0D 2A 2A |pla. plp. <<<.**|
000004B0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************|
000004C0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 0D 69 |**************.i|
000004D0: 66 72 61 73 74 20 6D 61 63 0D 20 6C 64 61 20 24 |frast mac. lda $|
000004E0: 64 30 31 39 0D 20 73 74 61 20 24 64 30 31 39 0D |d019. sta $d019.|
000004F0: 20 61 6E 64 20 23 31 0D 20 62 6E 65 20 69 66 72 | and #1. bne ifr|
00000500: 61 73 74 32 0D 20 6A 6D 70 20 72 65 74 69 6E 74 |ast2. jmp retint|
00000510: 0D 69 66 72 61 73 74 32 20 3C 3C 3C 0D 2A 2A 2A |.ifrast2 <<<.***|
00000520: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************|
00000530: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 0D 6E 65 |*************.ne|
00000540: 78 74 72 61 73 74 20 6D 61 63 0D 20 6C 64 61 20 |xtrast mac. lda |
00000550: 23 3C 5D 31 0D 20 6C 64 78 20 23 3C 5D 32 0D 20 |#<]1. ldx #<]2. |
00000560: 6C 64 79 20 23 3E 5D 32 0D 20 6A 6D 70 20 6E 78 |ldy #>]2. jmp nx|
00000570: 74 72 73 74 32 0D 20 3C 3C 3C 0D 2A 2A 2A 2A 2A |trst2. <<<.*****|
00000580: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************|
00000590: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 0D 6C 64 66 69 |***********.ldfi|
000005A0: 6C 65 20 6D 61 63 0D 20 6C 64 61 20 23 32 0D 20 |le mac. lda #2. |
000005B0: 6C 64 78 20 24 62 61 0D 20 6C 64 79 20 23 30 0D |ldx $ba. ldy #0.|
000005C0: 20 6A 73 72 20 73 65 74 6C 66 73 0D 20 6C 64 61 | jsr setlfs. lda|
000005D0: 20 23 37 0D 20 6C 64 78 20 23 3C 5D 31 0D 20 6C | #7. ldx #<]1. l|
000005E0: 64 79 20 23 3E 5D 31 0D 20 6A 73 72 20 73 65 74 |dy #>]1. jsr set|
000005F0: 6E 61 6D 0D 20 6C 64 61 20 23 30 0D 20 6C 64 78 |nam. lda #0. ldx|
00000600: 20 23 3C 5D 32 0D 20 6C 64 79 20 23 3E 5D 32 0D | #<]2. ldy #>]2.|
00000610: 20 6A 73 72 20 6C 6F 61 64 0D 20 3C 3C 3C 0D 2A | jsr load. <<<.*|
00000620: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************|
00000630: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 0D |***************.|
00000640: 73 65 74 63 6C 72 20 6D 61 63 0D 20 62 65 71 20 |setclr mac. beq |
00000650: 63 6C 72 73 65 74 0D 20 6C 64 61 20 73 65 74 74 |clrset. lda sett|
00000660: 61 62 2C 79 0D 20 6F 72 61 20 5D 31 0D 20 6A 6D |ab,y. ora ]1. jm|
00000670: 70 20 65 6E 64 63 6C 72 0D 63 6C 72 73 65 74 20 |p endclr.clrset |
00000680: 6C 64 61 20 73 65 74 74 61 62 2C 79 0D 20 65 6F |lda settab,y. eo|
00000690: 72 20 23 24 66 66 0D 20 61 6E 64 20 5D 31 0D 65 |r #$ff. and ]1.e|
000006A0: 6E 64 63 6C 72 20 73 74 61 20 5D 31 0D 20 3C 3C |ndclr sta ]1. <<|
000006B0: 3C 0D 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |<.**************|
000006C0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************|
000006D0: 2A 2A 0D 63 6C 72 6D 65 6D 20 6D 61 63 0D 20 6C |**.clrmem mac. l|
000006E0: 64 61 20 23 3C 5D 31 0D 20 73 74 61 20 67 6F 74 |da #<]1. sta got|
000006F0: 6F 31 0D 20 6C 64 61 20 23 3E 5D 31 0D 20 73 74 |o1. lda #>]1. st|
00000700: 61 20 67 6F 74 6F 31 2B 31 0D 20 6C 64 61 20 23 |a goto1+1. lda #|
00000710: 3C 5D 32 0D 20 73 74 61 20 6F 66 66 73 65 74 0D |<]2. sta offset.|
00000720: 20 6C 64 61 20 23 3E 5D 32 0D 20 73 74 61 20 6F | lda #>]2. sta o|
00000730: 66 66 73 65 74 2B 31 0D 20 6C 64 61 20 23 3C 5D |ffset+1. lda #<]|
00000740: 33 0D 20 6A 73 72 20 63 6C 72 73 75 62 0D 20 3C |3. jsr clrsub. <|
00000750: 3C 3C 0D 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |<<.*************|
00000760: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************|
00000770: 2A 2A 2A 0D 6D 6F 76 65 62 6C 6F 6B 20 6D 61 63 |***.moveblok mac|
00000780: 0D 20 6C 64 61 20 23 3C 5D 31 0D 20 73 74 61 20 |. lda #<]1. sta |
00000790: 67 65 74 66 72 6F 6D 0D 20 6C 64 61 20 23 3E 5D |getfrom. lda #>]|
000007A0: 31 0D 20 73 74 61 20 67 65 74 66 72 6F 6D 2B 31 |1. sta getfrom+1|
000007B0: 0D 20 6C 64 61 20 23 3C 5D 32 0D 20 73 74 61 20 |. lda #<]2. sta |
000007C0: 67 6F 74 6F 31 0D 20 6C 64 61 20 23 3E 5D 32 0D |goto1. lda #>]2.|
000007D0: 20 73 74 61 20 67 6F 74 6F 31 2B 31 0D 20 6C 64 | sta goto1+1. ld|
000007E0: 61 20 23 3C 5D 33 0D 20 73 74 61 20 6D 6F 76 65 |a #<]3. sta move|
000007F0: 6E 75 6D 0D 20 6C 64 61 20 23 3E 5D 33 0D 20 73 |num. lda #>]3. s|
00000800: 74 61 20 6D 6F 76 65 6E 75 6D 2B 31 0D 20 6A 73 |ta movenum+1. js|
00000810: 72 20 6D 6F 76 65 73 75 62 0D 20 3C 3C 3C 0D 2A |r movesub. <<<.*|
00000820: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************|
00000830: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 0D |***************.|
00000840: 20 70 75 74 20 22 73 73 A0 6D 61 69 6E 22 2C 38 | put "ss.main",8|
00000850: 0D 20 70 75 74 20 22 73 73 A0 66 6F 6E 74 22 2C |. put "ss.font",|
00000860: 38 0D 20 70 75 74 20 22 73 73 A0 73 63 72 65 65 |8. put "ss.scree|
00000870: 6E 22 2C 38 0D 20 70 75 74 20 22 73 73 A0 62 6F |n",8. put "ss.bo|
00000880: 72 64 65 72 22 2C 38 0D 20 65 6E 64 0D |rder",8. end. |
LST OFF. TR ON. EXP OFF.***************
*****************.*
*.* STARSOFT LOGO
*.* *.*
SS LINKER *.*
*.*****************
***************. ORG $8000. DSK "@0:STAR
SOFT LOGO",8.* ZERO PAGE VARIABLES.GETFR
OM = $9E.GOTO1 = $A3.GOTO2 = $A5.]FREE =
$B2.]FREE = $FB.]FREE = $FD.]FREE = $A7
.]FREE = $A9.]FREE = $6A.***************
*****************.SCREEN = $4000.*******
*************************.CNTDWN0 MAC. L
DA ]1. BEQ CNTDN1. DEC ]1.CNTDN1 <<<.***
*****************************.SETRAST MA
C. LDA #<]1. LDX #<]2. LDY #>]2. JSR RAS
TSET. <<<.******************************
**.ADDMEM MAC. LDA ]1. CLC. ADC #<]2. ST
A ]3. LDA ]1+1. ADC #>]2. STA ]3+1. <<<.
********************************.LDMEM M
AC. LDA #<]1. STA ]2. LDA #>]1. STA ]2+1
. <<<.********************************.D
ECMEM MAC. INC ]1. DEC ]1. BNE DECMEM2.
DEC ]1+1.DECMEM2 DEC ]1. <<<.***********
*********************.INCMEM MAC. INC ]1
. BNE INCMEM2. INC ]1+1.INCMEM2 <<<.****
****************************.PUSHREGS MA
C. PHP. PHA. TXA. PHA. TYA. PHA. <<<.***
*****************************.PULLREGS M
AC. PLA. TAY. PLA. TAX. PLA. PLP. <<<.**
******************************.IFRAST MA
C. LDA $D019. STA $D019. AND #1. BNE IFR
AST2. JMP RETINT.IFRAST2 <<<.***********
*********************.NEXTRAST MAC. LDA
#<]1. LDX #<]2. LDY #>]2. JMP NXTRST2. <
<<.********************************.LDFI
LE MAC. LDA #2. LDX $BA. LDY #0. JSR SET
LFS. LDA #7. LDX #<]1. LDY #>]1. JSR SET
NAM. LDA #0. LDX #<]2. LDY #>]2. JSR LOA
D. <<<.********************************.
SETCLR MAC. BEQ CLRSET. LDA SETTAB,Y. OR
A ]1. JMP ENDCLR.CLRSET LDA SETTAB,Y. EO
R #$FF. AND ]1.ENDCLR STA ]1. <<<.******
**************************.CLRMEM MAC. L
DA #<]1. STA GOTO1. LDA #>]1. STA GOTO1+
1. LDA #<]2. STA OFFSET. LDA #>]2. STA O
FFSET+1. LDA #<]3. JSR CLRSUB. <<<.*****
***************************.MOVEBLOK MAC
. LDA #<]1. STA GETFROM. LDA #>]1. STA G
ETFROM+1. LDA #<]2. STA GOTO1. LDA #>]2.
STA GOTO1+1. LDA #<]3. STA MOVENUM. LDA
#>]3. STA MOVENUM+1. JSR MOVESUB. <<<.*
*******************************. PUT "SS
MAIN",8. PUT "SS FONT",8. PUT "SS SCREE
N",8. PUT "SS BORDER",8. END.
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL