home *** CD-ROM | disk | FTP | other *** search
/ Digital Talk 92 / Digital_Talk_92_2011-07_Digital_Talk_de_Side_C.d64 / source.s < prev   
Text File  |  2023-02-26  |  8KB  |  463 lines

  1. ;=--------------------------------------------------------------
  2.  
  3. ; FAIRLIGHT INTRO (1987)  ; Programmed by Strider/Fairlight(?) ; (c) Fairlight 1987/2011 ; ; Disassembled to source by Adam Morton (April 2011)
  4.  
  5. ; This cracktro was created not long after the formation of ; Fairlight and is  also one of their earliest releases.  ; It was originally the cracktro for their crack of the ; legendary game, "Wonderboy" by Activision, released in 1987. ; ;--------------------------------------------------------------- ; ; - Use DASM or similar to assemble ; ; - HI-RES Bitmap  ; - Sprite Scroller ; - Raster Bar ; ; VIC-2 is pointed to HI-RAM ($c400+)   ; ;=--------------------------------------------------------------
  6.  
  7.    PROCESSOR 6502
  8.  
  9. SCROLL-TXT  = $E000 SPR-RAM  = $F400
  10.  
  11. SCREEN-LOC = $C400
  12.  
  13.    ORG $C000
  14.  
  15.     LDA $DD02
  16.      ORA #$03
  17.      STA $DD02
  18.  
  19.     LDA $DD00
  20.    AND #$FC
  21.     ORA #$00
  22.      STA $DD00
  23.  
  24.      LDA $D018
  25.      AND #$0F
  26.      ORA #$10
  27.      AND #$F0
  28.      ORA #$02
  29.      STA $D018
  30.  
  31.      LDA #$04
  32.      STA $0288
  33.  
  34.    LDA #$93
  35.    JSR $FFD2
  36.  
  37.      LDA #$00
  38.      TAX a1      STA $F400,X
  39.      STA $F500,X
  40.      STA $F600,X
  41.      STA SCREEN-LOC,X ; Clear new screen for use
  42.      STA SCREEN-LOC+$100,X
  43.      STA SCREEN-LOC+$200,X
  44.      STA SCREEN-LOC+$300,X
  45.      INX
  46.      BNE a1  
  47.  
  48.     LDA #$00
  49.     TAX a2      STA $C568,X
  50.     INX
  51.     TXA
  52.     BNE a2 
  53.  
  54.     LDA #$01
  55.     STA $0B a3      STA $D800,X
  56.     STA $D900,X
  57.     STA $DA00,X
  58.     STA $DB00,X
  59.     INX
  60.     BNE a3
  61.  
  62.     JSR SET-POINTERS
  63.  
  64. ;=-------
  65.  
  66.      SEI
  67.  
  68.      LDA #$00
  69.      STA $FE
  70.      STA $0A
  71.  
  72.      LDA #$7F
  73.      STA $DC0D
  74.  
  75.      LDA #$1B
  76.      STA $D011
  77.  
  78.      LDA #$81
  79.      STA $D01A
  80.  
  81.     LDA #>NMI-1 
  82.      LDX #<NMI-1 
  83.     STA $FFFA
  84.     STX $FFFB
  85.  
  86.      LDA #<NMI-2 
  87.      LDX #>NMI-2 
  88.      STA $FFFE
  89.      STX $FFFF
  90.  
  91.      LDA #$0A
  92.      STA $D012
  93.  
  94.      LDA #$18
  95.      STA $02
  96.    
  97.      LDA #$FF
  98.      STA $D01D
  99.  
  100.      LDA #$00
  101.      STA $D017
  102.  
  103.      LDA #$BE
  104.      LDY #$01 a4   STA $D000,Y
  105.      INY
  106.      INY
  107.      CPY #$11
  108.      BNE a4  
  109.  
  110.      LDA #$F8
  111.      LDY #$00 a5      STA $D000,Y
  112.      CLC
  113.      ADC #$30
  114.      INY
  115.      INY
  116.      CPY #$10
  117.      BNE a5  
  118.  
  119.      LDA #$F0
  120.      STA $D000
  121.  
  122.      LDA #$FF
  123.      STA $D015
  124.  
  125.      LDA #$C1
  126.      STA $D010
  127.  
  128.      LDA #$01
  129.      LDY #$00 a6      STA $D027,Y
  130.      INY
  131.      CPY #$08
  132.      BNE a6  
  133.  
  134.      LDA #$D0
  135.      LDY #$00 a7      STA $C7F8,Y
  136.      CLC
  137.      ADC #$01
  138.      INY
  139.      CPY #$08
  140.      BNE a7  
  141.  
  142.     LDA #$35 ; ROMs off..
  143.     STA $01
  144.     CLI
  145.  
  146.     JMP loop4eva    
  147.  
  148. ;=--------------------------------------------------------------
  149.  
  150. NMI-2
  151.  
  152.      PHA
  153.      TXA
  154.      PHA
  155.      TYA
  156.      PHA
  157.  
  158.      ASL $D019
  159.  
  160.    NOP
  161.    NOP
  162.  
  163.      INC $0A
  164.      LDA $0A
  165.      CMP #$01
  166.      BEQ b1  
  167.  
  168.      CMP #$02
  169.      BEQ b2  
  170.  
  171.      LDA #$00
  172.      STA $0A
  173.      JMP b3  
  174.  
  175. b1      LDA #$00
  176.      STA $D020
  177.      STA $D021
  178.  
  179.      JSR c0  
  180.      DEC $02
  181.      BNE b4  
  182.  
  183.      JSR ROUTINE-2  
  184.  
  185. b4      LDA #$BC
  186.      STA $D012
  187.  
  188.      JMP b5  
  189.  
  190. b2      LDA #$D4
  191.      STA $D012
  192.  
  193.      LDA #$06 ;0E
  194.      STA $D020
  195.      STA $D021
  196.      JMP b5  
  197.  
  198. b3      LDA #$00
  199.      STA $D020
  200.      STA $D021
  201.  
  202.      LDA #$7F
  203.      STA $DC00
  204.  
  205.      LDA #$10  ; Check for <space> key
  206.     BIT $DC01  ; yes? then Exit intro
  207.      BNE b6   ; else ..Keep goin' 
  208.  
  209.      JMP EXIT-INTRO  ;
  210.  
  211. b6      LDA #$0A
  212.      STA $D012
  213.  
  214.      JSR ROUTINE-1 
  215.  
  216.      JMP b5  
  217.  
  218. b5      LDA $DC0D
  219.      PLA
  220.      TAY
  221.      PLA
  222.      TAX
  223.      PLA
  224.      RTI
  225.  
  226. ;=--------------------------------------------------------------
  227.  
  228. ROLL-IT
  229.    CLC
  230.      ROL SPR-RAM+$202,X 
  231.      ROL SPR-RAM+$201,X
  232.      ROL SPR-RAM+$200,X
  233.      ROL SPR-RAM+$1C2,X
  234.      ROL SPR-RAM+$1C1,X
  235.      ROL SPR-RAM+$1C0,X
  236.      ROL SPR-RAM+$182,X
  237.      ROL SPR-RAM+$181,X
  238.      ROL SPR-RAM+$180,X
  239.      ROL SPR-RAM+$142,X
  240.      ROL SPR-RAM+$141,X
  241.      ROL SPR-RAM+$140,X
  242.      ROL SPR-RAM+$102,X
  243.      ROL SPR-RAM+$101,X
  244.      ROL SPR-RAM+$100,X
  245.      ROL SPR-RAM+$C2,X
  246.      ROL SPR-RAM+$C1,X
  247.      ROL SPR-RAM+$C0,X 
  248.      ROL SPR-RAM+$82,X
  249.      ROL SPR-RAM+$81,X 
  250.     ROL SPR-RAM+$80,X
  251.      ROL SPR-RAM+$42,X
  252.      ROL SPR-RAM+$41,X
  253.      ROL SPR-RAM+$40,X
  254.      ROL SPR-RAM+$02,X
  255.      ROL SPR-RAM+$01,X
  256.      ROL SPR-RAM,X
  257.      RTS
  258.  
  259. ;=--------------------------------------------------------------
  260.  
  261. c0      LDX #$00 c1 JSR ROLL-IT    
  262.      INX
  263.      INX
  264.      INX
  265.      CPX #$3F
  266.      BNE c1  
  267.      RTS
  268.  
  269. ;=--------------------------------------------------------------
  270.  
  271. EXIT-INTRO
  272.  
  273.    SEI
  274.      LDA #$03
  275.      STA $DD00
  276.      LDA #$15
  277.      STA $D018
  278.      LDA #$04
  279.     STA $0288
  280.      LDA #$80
  281.      STA $D01A
  282.      LDA #$81
  283.      STA $DC0D
  284.      LDA #$C8
  285.      STA $D016
  286.      LDA #$37
  287.      STA $01
  288.      LDX #$F8
  289.      TXS
  290.      CLI
  291.  
  292.      LDA #$00
  293.      STA $D015
  294.      STA $D01D
  295.  
  296.      LDA #$1B
  297.      STA $D011
  298.  
  299.     JMP 64738
  300.  
  301. ;=--------------------------------------------------------------
  302.  
  303. loop4eva     JMP loop4eva
  304.  
  305. NMI-1    RTI
  306.  
  307. ;=--------------------------------------------------------------
  308.  
  309. ROUTINE-2
  310.  
  311. txt-1   LDA SCROLL-TXT
  312.      INC txt-1+1  
  313.      BNE d0   
  314.  
  315.      INC txt-1+2   d0      AND #$3F
  316.      BNE d1   
  317.  
  318.      JSR SET-POINTERS  
  319.      JMP txt-1  
  320.  
  321. d1 STA $FB
  322.  
  323.      JSR ROUTINE-3  
  324.  
  325.      LDA #$30
  326.      STA $01
  327.  
  328.      LDA #$FF
  329.      STA $F600
  330.      STA $F601
  331.      STA $F602
  332.  
  333.      LDY #$00
  334.      LDX #$00 d2      LDA ($FC),Y CHAR    STA $F609,X
  335.      INX
  336.      INX
  337.      INX
  338.      INX
  339.      INX
  340.      INX
  341.      INY
  342.      CPY #$08
  343.      BNE d2  
  344.  
  345.      LDA #$FF
  346.      STA $F60C,X
  347.      STA $F60D,X
  348.      STA $F60E,X
  349.  
  350.      INC CHAR+1 
  351.  
  352.      LDA CHAR+1 
  353.      CMP #$0C
  354.      BNE txt-1 
  355.  
  356.      LDA #$35
  357.      STA $01
  358.  
  359.      LDA #$18
  360.      STA $02
  361.  
  362.      LDA #$09
  363.      STA CHAR+1 
  364.      RTS
  365.  
  366. ;=--------------------------------------------------------------
  367.  
  368. ROUTINE-3
  369.  
  370.      LDA #$00
  371.      STA $FC
  372.  
  373.      LDX #$08 e1      LSR $FB
  374.      BCC e0  
  375.      CLC
  376.      ADC #$08 ;8 e0      ROR
  377.      ROR $FC
  378.      DEX
  379.      BNE e1  
  380.  
  381.      CLC
  382.      ADC #$F0
  383.      STA $FD
  384.      CLC
  385.      RTS
  386.  
  387. ;=--------------------------------------------------------------
  388.  
  389. SET-POINTERS
  390.  
  391.      LDA #<SCROLL-TXT 
  392.      STA txt-1+1 
  393.      LDA #>SCROLL-TXT 
  394.      STA txt-1+2 
  395.      RTS
  396.  
  397. ;=--------------------------------------------------------------
  398.  
  399. ROUTINE-1
  400.  
  401. f0      LDX $0B
  402.      CPX #$16
  403.      BNE f1  
  404.      LDX #$01
  405.      STX $0B
  406.      JMP f0  
  407.  
  408. ;=--------------------------------------------------------------
  409.  
  410. f1      LDA COLOURS,X ;$C2D1,X
  411.      STA $D968
  412.      STA $D990
  413.      STA $D9B8
  414.      STA $D9DF
  415.      STA $DA08
  416.      STA $DA31
  417.      INC $0B
  418.  
  419.    LDX #$28 f2      LDA $D9DE,X
  420.      STA $D9DF,X
  421.      LDA $DA06,X
  422.      STA $DA07,X
  423.     LDA $DA2E,X
  424.      STA $DA2F,X
  425.     DEX
  426.     BNE f2  
  427.     RTS
  428.  
  429. ;=--------------------------------------------------------------
  430.  
  431. COLOURS  dc.b $00,$0B,$0B,$0B,$0C,$0C,$0C,$0F,$0F ; Colours used in the 'cycling'  
  432.       dc.b $0F,$01,$01,$01,$0F,$0F,$0F,$0C,$0C        ; routine for the 'strider' text
  433.       dc.b $0C,$0B,$0B,$0B
  434.  
  435. ;=--------------------------------------------------------------
  436.  
  437.       ORG SCREEN-LOC      ; VIC2 video location
  438.       INCBIN DATA     ; Chars+Bitmap Data
  439.    
  440. ;=--------------------------------------------------------------
  441.  
  442.       ORG SCROLL-TXT
  443.  
  444.       DC.B "  "
  445.       DC.B "WONDERBOY WAS CRACKED AND TRAINED BY STRIDER OF FAIRLIGHT 870527!!!        "
  446.       DC.B "TODAY I FEEL LIKE GREETING THESE FOLKS....   DANISH GOLD - KANGOL KID (RED SECTOR) "
  447.       DC.B "- CFR - YETI (MONSTER?!) - DSC - HTL - ROCKY (HI FRIEND!) - NEW BENCOR BROS "
  448.       DC.B "- TSF - TRIANON - TRIAD - TCB - RDI (HI ERIK!) - A-TEAM (HELLO JOHN!, KEEP SENDING ORIGINALS!) "
  449.       DC.B "- TLC - DRM - POPEYE (ARE WE BACK IN YOUR GREETINGS NOW?!) - WIZAX - TLG'45    "
  450.       DC.B "AND OF COURSE TO ALL OTHER FRIENDS!!     "
  451.       DC.B "CALL THE FAIRLIGHT HEADQUARTERS : SWEDEN/40495152 (STRIDER)   CARRIER LOST......            "
  452.       DC.B $00,$1F
  453.  
  454. ;=--------------------------------------------------------------
  455.  
  456.       ORG $F000
  457.       INCBIN CHARS
  458.  
  459. ;=--------------------------------------------------------------
  460.  
  461. ; Please note: This source has had large chunks of unused (useless) ; code, empty bytes and garbage have been stripped out. This does not ; affect the intro in anyway but it does create a slightly different ; file compared to the original. 
  462.  
  463.