home *** CD-ROM | disk | FTP | other *** search
/ Antic Magazine 1985 May / Antic_Magazine_1985_05_Antic.atr / faderii.m65 < prev    next >
Text File  |  2023-02-26  |  12KB  |  1 lines

  1. 0100 ;FADERII.M65¢0101 ;BY PATRICK DELL'ERA¢0102 ;ANTIC MAGAZINE¢0104 ;¢0105 PROGRAM = $3E00¢0106 BUFFER = $2007¢0107 ;External reference equates¢0108 LBL:105 = BUFFER+2¢0109 LBL:106 = BUFFER+3¢0110 LBL:091 = BUFFER+4¢0111 LBL:064 = BUFFER+$0B¢0112 LBL:121 = BUFFER+$0D¢0113 LBL:125 = BUFFER+$0E¢0114 LBL:127 = BUFFER+$16¢0115 LBL:080 = BUFFER+$21¢0116 LBL:107 = BUFFER+$22¢0117 LBL:083 = BUFFER+$23¢0118 LBL:078 = BUFFER+$24¢0119 ;End of external references¢0120 ;¢0121 ;System equates used¢0122 BOOT =  $09¢0123 DOSVEC = $0A¢0124 RTCLOK = $12¢0125 SOUNDR = $41¢0126 ATRACT = $4D¢0127 SAVMSC = $58¢0128 SDLSTL = $0230¢0129 SDLSTH = $0231¢0130 COLDST = $0244¢0131 RUNADR = $02E0¢0132 COLOR0 = $02C4¢0133 COLOR1 = $02C5¢0134 COLOR2 = $02C6¢0135 COLOR4 = $02C8¢0136 ICCOM = $0342¢0137 ICBAL = $0344¢0138 ICBAH = $0345¢0139 ICBLL = $0348¢0140 ICBLH = $0349¢0141 ICAX1 = $034A¢0142 ICAX2 = $034B¢0143 CONSOL = $D01F¢0144 RANDOM = $D20A¢0145 CIOV =  $E456¢0146 EOL =   $9B¢0147 ;End of system equates¢0148 ;Zero-page equates¢0149 PIC.CTR = $E0¢0150 N09 =   $EA¢0151 CTR1 =  $BA¢0152 CTR2 =  $BB¢0153 SVCOLR = $CC¢0154 PICTYPE = $CB¢0155 N16 =   $EC¢0156 N17 =   $E6¢0157 N18 =   $E4¢0158 N19 =   $E1¢0159 N22 =   $E3¢0160 N23 =   $EB¢0161 N24 =   $E2¢0162 N27 =   $E9¢0163 N41 =   $80¢0164 N42 =   $81¢0165 N54 =   $82¢0166 N55 =   $83¢0167 N59 =   $84¢0168 N60 =   $85¢0169 ;End of zero-page equates¢0170     .PAGE "Main Program  11/10/84"¢0171 ;¢0172 ;Program Start¢0173 ; First two bytes are variables¢0174 ; indicating the Pause length¢0175 ; and the Drive # pictures are¢0176 ; read from.¢0177 ;¢0178     *=  PROGRAM¢0179 WAIT¢0180     .BYTE 2¢0181 DRNUM¢0182     .BYTE '1¢0183 ;¢0184 ;Routine to load compressed¢0185 ; files.¢0186 ;¢0187 READ.HDR¢0188     INC PIC.CTR¢0189     JMP GET.BYTE¢0190 PIC.LDR¢0191     LDA #$FF¢0192     STA PIC.CTR¢0193 LBL:007¢0194     JSR READ.HDR¢0195     LDX PIC.CTR¢0196     CPX #$1A¢0197     BEQ LBL:006¢0198     CPX #$0D¢0199     BEQ SVCOLR.PIC¢0200     CPX #7¢0201     BNE LBL:007¢0202     STA N09¢0203     JMP LBL:007¢0204 SVCOLR.PIC¢0205     STA SVCOLR+1¢0206     JSR READ.HDR¢0207     STA SVCOLR+2¢0208     JSR READ.HDR¢0209     STA SVCOLR+3¢0210     JSR READ.HDR¢0211     STA SVCOLR+4¢0212     JSR READ.HDR¢0213     STA SVCOLR¢0214     JMP LBL:007¢0215 LBL:006 LDA #0¢0216     STA N16¢0217     STA N17¢0218     LDA SAVMSC¢0219     STA PIC.CTR¢0220     STA N18¢0221     LDA SAVMSC+1¢0222     STA PIC.CTR+1¢0223     STA N18+1¢0224 LBL:030 JSR GET.BYTE¢0225     PHA ¢0226     LDX #0¢0227     STX N22¢0228     AND #$80¢0229     STA N23¢0230     PLA ¢0231     AND #$7F¢0232     STA N24¢0233     BNE LBL:025¢0234     JSR GET.BYTE¢0235     STA N22¢0236     JSR GET.BYTE¢0237     STA N24¢0238 LBL:025 DEC N24¢0239     LDA N23¢0240     BNE LBL:026¢0241     JSR GET.BYTE¢0242     STA N27¢0243 LBL:029¢0244     JMP LBL:028¢0245 LBL:032 DEC N24¢0246     LDA #$FF¢0247     CMP N24¢0248     BNE LBL:029¢0249     DEC N22¢0250     LDA #$FF¢0251     CMP N22¢0252     BNE LBL:029¢0253     BEQ LBL:030¢0254 LBL:036 DEC N24¢0255     LDA #$FF¢0256     CMP N24¢0257     BNE LBL:026¢0258     DEC N22¢0259     LDA #$FF¢0260     CMP N22¢0261     BEQ LBL:030¢0262 LBL:026 JSR GET.BYTE¢0263     STA N27¢0264 LBL:028 LDA #2¢0265     CMP N09¢0266     BEQ LBL:031¢0267 LBL:035 BEQ LBL:032¢0268     LDA N27¢0269     LDY #0¢0270     STA (PIC.CTR),Y¢0271     CLC ¢0272     LDA #$50¢0273     ADC PIC.CTR¢0274     STA PIC.CTR¢0275     LDA #0¢0276     ADC PIC.CTR+1¢0277     STA PIC.CTR+1¢0278     INC N17¢0279     LDA #$60¢0280     CMP N17¢0281     BNE LBL:033¢0282     LDA #1¢0283     CMP N16¢0284     BNE LBL:034¢0285     CLC ¢0286     LDA #1¢0287     ADC N18¢0288     STA N18¢0289     STA PIC.CTR¢0290     LDA #0¢0291     STA N16¢0292     STA N17¢0293     ADC N18+1¢0294     STA N18+1¢0295     STA PIC.CTR+1¢0296     JMP LBL:033¢0297 LBL:034 INC N16¢0298     CLC ¢0299     LDA #$28¢0300     ADC N18¢0301     STA PIC.CTR¢0302     LDA #0¢0303     STA N17¢0304     ADC N18+1¢0305     STA PIC.CTR+1¢0306 LBL:033 LDA N23¢0307     BEQ LBL:035¢0308 LBL:037 BNE LBL:036¢0309 LBL:031 LDA N27¢0310     LDY #0¢0311     STA (PIC.CTR),Y¢0312     INC PIC.CTR¢0313     BNE LBL:031.1¢0314     INC PIC.CTR+1¢0315 LBL:031.1¢0316     LDA N23¢0317     BEQ LBL:035 ;Forced branch¢0318     BNE LBL:037 ;¢0319 ;¢0320 ;CIO utilities¢0321 ;¢0322 GET.BYTE¢0323     LDX #$10¢0324     LDA #0¢0325     STA ICBLL,X¢0326     STA ICBLH,X¢0327     JSR CIOV¢0328     BMI LBL:038¢0329     RTS ¢0330 LBL:038 PLA ¢0331     PLA ¢0332     JMP MIC.1¢0333 CLOSE.CH1¢0334     LDX #$10¢0335 CLOSE.CH6¢0336     LDA #$0C¢0337     STA ICCOM,X¢0338     JMP CIOV¢0339 OPEN.1¢0340     STA ICBAH,X¢0341     TYA ¢0342     STA ICBAL,X¢0343     LDA #3¢0344     STA ICCOM,X¢0345 LBL:040 JSR CIOV¢0346     BMI EXIT¢0347     RTS ¢0348 EXIT JSR CLOSE.CH1¢0349     JMP (DOSVEC)¢0350 ;¢0351 ;Picture fader routine¢0352 ;¢0353 MSKTBL¢0354     .BYTE $01,$08,$40,$02¢0355     .BYTE $10,$80,$04,$20¢0356 FADEIN¢0357     LDA SAVMSC¢0358     STA N41¢0359     STA N54¢0360     LDA #0¢0361     STA CTR2¢0362 LBL:104 LDA #7¢0363     CMP CTR2¢0364     BCS LBL:087¢0365     RTS ¢0366 LBL:087 LDX CTR2¢0367     LDA #0¢0368     STA LBL:080¢0369 LBL:090 LDA #$FE¢0370     CMP LBL:080¢0371     BCC LBL:088¢0372     TXA ¢0373     PHA ¢0374     LDX LBL:080¢0375     LDY LBL:078,X¢0376     PLA ¢0377     TAX ¢0378     JSR LBL:089¢0379     INC LBL:080¢0380     JMP LBL:090¢0381 LBL:088 TXA ¢0382     PHA ¢0383     LDX #$FF¢0384     LDY LBL:078,X¢0385     PLA ¢0386     TAX ¢0387     JSR LBL:089¢0388     LDA LBL:091¢0389     BMI LBL:092¢0390     LDY CTR2¢0391     CPY #2¢0392     BNE LBL:093¢0393     LDA SVCOLR-1,Y¢0394     STA COLOR0¢0395 LBL:093¢0396     CPY #3¢0397     BNE LBL:096¢0398     LDA SVCOLR-1,Y¢0399     STA COLOR1¢0400 LBL:096¢0401     CPY #4¢0402     BNE LBL:099¢0403     LDA SVCOLR-1,Y¢0404     STA COLOR2¢0405 LBL:099¢0406     CPY #5¢0407     BNE LBL:092¢0408     LDA SVCOLR¢0409     STA COLOR4¢0410 LBL:092 INC CTR2¢0411     JMP LBL:104¢0412 LBL:089¢0413     LDA LBL:105¢0414     STA N42¢0415     LDA LBL:106¢0416     STA N55¢0417     LDA #0¢0418     STA LBL:107¢0419 LBL:113 LDA #$1D¢0420     CMP LBL:107¢0421     BCS LBL:108¢0422     RTS ¢0423 LBL:108 LDA (N41),Y¢0424     AND MSKTBL,X¢0425     BNE LBL:111¢0426     LDA MSKTBL,X¢0427     EOR #$FF¢0428     AND (N54),Y¢0429     JMP LBL:112¢0430 LBL:111 ORA (N54),Y¢0431 LBL:112 STA (N54),Y¢0432     INC N42¢0433     INC N55¢0434     INX ¢0435     TXA ¢0436     AND #7¢0437     TAX ¢0438     INC LBL:107¢0439     JMP LBL:113¢0440 ;¢0441 ;Program Entry¢0442 ;¢0443 START¢0444     LDA DRNUM   ;User alterable¢0445     STA DDVC+1  ;drive #¢0446     LDX #1      ;Tells system¢0447     STX BOOT    ;no Coldstart¢0448     STX PICTYPE ;and initializes¢0449     DEX ¢0450     STX COLDST¢0451     STX SOUNDR  ;No disk sound¢0452 ;¢0453 ;Build random table for fading¢0454 ;picture.¢0455 ;¢0456 LBL:079 TXA ¢0457     STA LBL:078,X¢0458     INX ¢0459     BNE LBL:079¢0460     STX LBL:080¢0461 LBL:081¢0462     LDA #$FF¢0463     STA N60¢0464     EOR LBL:080¢0465     PHA ¢0466     STA N59¢0467 LBL:062 ASL A¢0468     BCS LBL:061¢0469     LSR N60¢0470     JMP LBL:062¢0471 LBL:061 LDA RANDOM¢0472     AND N60¢0473     CMP N59¢0474     BEQ LBL:063¢0475     BCS LBL:061¢0476 LBL:063¢0477     STA LBL:083¢0478     TAX ¢0479     LDA LBL:078,X¢0480     TAY ¢0481     PLA ¢0482     PHA ¢0483     TAX ¢0484     LDA LBL:078,X¢0485     LDX LBL:083¢0486     STA LBL:078,X¢0487     PLA ¢0488     TAX ¢0489     TYA ¢0490     STA LBL:078,X¢0491     INC LBL:080¢0492     INC PICTYPE¢0493     BNE LBL:081¢0494 ;¢0495 ;Build screen dislpay list by¢0496 ;closing channel 6¢0497 ;¢0498     LDX #$60¢0499     JSR CLOSE.CH6¢0500 ;¢0501 ;Then open GRAPHICS 8+16¢0502 ;¢0503     LDA #$0C¢0504     STA ICAX1,X¢0505     LDA #8¢0506     STA ICAX2,X¢0507     LDY # <SDVC¢0508     LDA # >SDVC¢0509     JSR OPEN.1¢0510 ;¢0511 ;Give screen some color and¢0512 ;modify display list to¢0513 ;ANTIC E (GRAPHICS 7+) display¢0514 ;list¢0515 ;¢0516     LDA #$80¢0517     STA COLOR4¢0518     LDA SDLSTL¢0519     STA N41¢0520     LDA SDLSTH¢0521     STA N42¢0522     LDY #3¢0523     LDA #$4E¢0524     STA (N41),Y¢0525     LDY #6¢0526 LBL:071 LDA #$0E¢0527     STA (N41),Y¢0528     INY ¢0529     CPY #$63¢0530     BNE LBL:071¢0531     LDA #$4E¢0532     STA (N41),Y¢0533     INY ¢0534     INY ¢0535     INY ¢0536 LBL:073 LDA (N41),Y¢0537     CMP #$0F¢0538     BNE LBL:072.A¢0539     LDA #$0E¢0540     STA (N41),Y¢0541     INY ¢0542     BNE LBL:073¢0543 ;¢0544 ;Set pointers to a hidden¢0545 ;screen used to fade new¢0546 ;picture into old.¢0547 ;¢0548 LBL:072.A¢0549     STA LBL:106¢0550     LDA SAVMSC+1¢0551     STA LBL:106¢0552     LDA LBL:106¢0553     SEC ¢0554     SBC #$20¢0555     STA LBL:105¢0556     LDA LBL:105¢0557     STA SAVMSC+1¢0558 ;¢0559 ;Set ctr to point to first¢0560 ;picture.¢0561 ;¢0562 FIRST.PIC LDA #1¢0563     STA CTR1¢0564 ;¢0565 ;Open the disk directory for¢0566 ;reading.¢0567 ;¢0568 NXT.PIC¢0569     JSR CLOSE.CH1¢0570     LDA #6¢0571     STA ICAX1,X¢0572     LDA #0¢0573     STA ICAX2,X¢0574     LDY # <DDVC¢0575     LDA # >DDVC¢0576     JSR OPEN.1¢0577     STY CTR2    ;Y=0 always...¢0578 ;¢0579 ;Read filenames 'til CTR2=CTR1.¢0580 ;CTR1 is index to which¢0581 ;picture was last shown.¢0582 ;¢0583 LBL:119 LDA CTR1¢0584     CMP CTR2¢0585     BCC LBL:118¢0586     LDX #$10¢0587     LDA # <LBL:064+1¢0588     STA ICBAL,X¢0589     LDA # >LBL:064+1¢0590     STA ICBAH,X¢0591     LDA #20¢0592     STA ICBLL,X¢0593     LDA #0¢0594     STA ICBLH,X¢0595     LDA #5¢0596     STA ICCOM,X¢0597     JSR CIOV¢0598     BMI FIRST.PIC¢0599     INC CTR2¢0600     BNE LBL:119¢0601 ;¢0602 ;Have read the correct # of¢0603 ;filenames.  Now check if¢0604 ;this is a FREE SECTORS message.¢0605 ;If yes, start from 1st picture.¢0606 ;¢0607 LBL:118¢0608     JSR CLOSE.CH1¢0609     LDA LBL:121¢0610     CMP #$20¢0611     BNE FIRST.PIC¢0612 ;¢0613 ;Stick "D1:" in front of¢0614 ;filename.¢0615 ;¢0616     LDX #2¢0617 NAME.LOOP LDA DDVC,X¢0618     STA LBL:064,X¢0619     DEX ¢0620     BPL NAME.LOOP¢0621 ;¢0622 ;Then reform name with no¢0623 ;spaces, a period, the extender,¢0624 ;and an end-of-line.¢0625 ;¢0626 NAME.LOOP.1 INX ¢0627     CPX #8¢0628     BEQ NAME.LOOP.2¢0629     LDA LBL:125,X¢0630     CMP #$20¢0631     BNE NAME.LOOP.1¢0632 NAME.LOOP.2 LDY LBL:127¢0633     LDA #'.¢0634     STA LBL:125,X¢0635     TYA ¢0636     INX ¢0637     STA LBL:125,X¢0638     STA PICTYPE¢0639     LDA #'I¢0640     INX ¢0641     STA LBL:125,X¢0642     LDA #'C¢0643     INX ¢0644     STA LBL:125,X¢0645     LDA #EOL¢0646     INX ¢0647     STA LBL:125,X¢0648 ;¢0649 ;Open the picture for reading.¢0650 ;¢0651     JSR CLOSE.CH1¢0652     LDA #4¢0653     STA ICAX1,X¢0654     LDA #0¢0655     STA ICAX2,X¢0656     LDY # <LBL:064¢0657     LDA # >LBL:064¢0658     JSR OPEN.1¢0659     LDA LBL:105¢0660     STA SAVMSC+1¢0661     LDA #7¢0662     LDX #$10¢0663     STA ICCOM,X¢0664 ;¢0665 ;If the extender is 'PIC' then¢0666 ;go to compressed picture load¢0667 ;routine.¢0668 ;¢0669     LDY PICTYPE¢0670     CPY #'P¢0671     BNE MIC¢0672     JMP PIC.LDR¢0673 ;¢0674 ;Otherwise, do standard load.¢0675 ;¢0676 MIC¢0677     LDA SAVMSC¢0678     STA ICBAL,X¢0679     LDA SAVMSC+1¢0680     STA ICBAH,X¢0681     LDA #0¢0682     STA ICBLL,X¢0683     LDA #$1E¢0684     STA ICBLH,X¢0685     JSR LBL:040¢0686     JSR GET.BYTE¢0687     STA SVCOLR¢0688     JSR GET.BYTE¢0689     STA SVCOLR+1¢0690     JSR GET.BYTE¢0691     STA SVCOLR+2¢0692     JSR GET.BYTE¢0693     STA SVCOLR+3¢0694 ;¢0695 ;Both load types continue here.¢0696 ;Fade new picture in.  Pause¢0697 ;and read console keys.¢0698 ;¢0699 MIC.1¢0700     JSR FADEIN¢0701     JSR CLOSE.CH1¢0702     LDA #0¢0703     STA ATRACT¢0704     STA RTCLOK+1¢0705 LBL:134 LDA RTCLOK+1¢0706     CMP WAIT¢0707     BCS LBL:130¢0708 LBL:132 LDA CONSOL¢0709     CMP #5¢0710     BNE LBL:133¢0711     JMP EXIT¢0712 LBL:133 CMP #3¢0713     BNE LBL:133.1¢0714 LBL:133.2¢0715     LDA #6¢0716 LBL:133.3¢0717     CMP CONSOL¢0718     BNE LBL:133.3¢0719 LBL:133.1¢0720     CMP #6¢0721     BNE LBL:134¢0722 LBL:130 INC CTR1¢0723     JMP NXT.PIC¢0724 DDVC¢0725     .BYTE "D1:*.?IC",EOL¢0726 SDVC¢0727     .BYTE "S:",EOL¢0728     *=  RUNADR¢0729     .WORD START¢0730     .SET 1,0¢