008001: CLC 008002: XCE 008003: CLD 008004: REP #$10 008006: SEP #$20 008008: LDX #$1fff 00800B: TXS 00800C: LDA #$00 00800E: STA $4200 008011: LDA #$80 008013: STA $2100 008016: LDA #$00 008018: STA $7efffe 00801C: STA $7effff 008020: LDX #$0000 008023: LDA $008773,X マジックチェック 起動時のみロゴを表示するため 008027: CMP $7effe0,X 00802B: BNE 008035 ($8) d0 08 008035: JSL $06e04d アトラスロゴ表示ルーチン 06E04D: PHP このルーチンでは自前でV-Syncを見て駆動している 06E04E: PHD 06E04F: REP #$10 06E051: TSX 06E052: STX $00ec 06E055: REP #$20 06E057: SEP #$10 06E059: LDX #$01 06E05B: STX $4200 自動パッドステータス更新 06E05E: LDX #$80 06E060: STX $2100 ブランク強制 06E063: LDA #$2100 06E066: TCD D=2100 06E067: LDX #$00 06E069: STX $01 スプライトサイズ等 06E06B: LDA #$0000 06E06E: STA $02 OAM 06E070: LDX #$01 06E072: STX $05 BGモード 06E074: STX $06 モザイク関係 06E076: LDX #$30 06E078: STX $07 BG1 06E07A: LDX #$44 06E07C: STX $0b BG1,2 キャラデータ領域設定 06E07E: LDX #$00 06E080: STX $0d BG1水平スクロール 06E082: STX $0d 06E084: STX $0e BG1垂直スクロール 06E086: STX $0e 06E088: LDX #$80 06E08A: STX $15 VRAM ADDR自動インクリメント 06E08C: LDX #$01 06E08E: STX $2c メインスクリーン指定 06E090: LDX #$00 06E092: STX $2d サブスクリーン指定 06E094: STX $2e メインマスク指定 06E096: STX $2f サブマスク指定 06E098: STX $30 色関係 06E09A: STX $31 06E09C: STX $32 06E09E: STX $33 ビデオ・スクリーンモード指定 06E0A0: LDA #$4200 06E0A3: TCD D=4200 06E0A4: LDX #$ff 06E0A6: STX $01 プログラマブルIOポート(出力) 06E0A8: LDX #$00 06E0AA: STX $07 Hカウントタイマー 06E0AC: STX $09 Vカウントタイマー 06E0AE: STX $0b DMA有効 06E0B0: STX $0c HDMA有効 06E0B2: LDA #$0000 06E0B5: TCD D=0 06E0B6: SEP #$20 06E0B8: REP #$10 06E0BA: STZ $420c HDMA有効 06E0BD: LDX #$3000 06E0C0: STX $2116 VRAM ADDR 06E0C3: LDX #$0000 06E0C6: STX $00e0 06E0C9: LDA #$09 06E0CB: STA $4300 ch0 DMAアドレス変動、2レジスタ1書き込み 06E0CE: LDA #$18 06E0D0: STA $4301 ch0 アドレスを2118(VRAM書き込み)に 06E0D3: LDY #$00e0 06E0D6: STY $4302 06E0D9: STZ $4304 0000e0 06E0DC: STZ $4305 DMAサイズ 06E0DF: LDA #$08 06E0E1: STA $4306 000800 06E0E4: LDA #$01 06E0E6: STA $420b 起動? 06E0E9: LDX #$ffff 06E0EC: STX $0f2d 06E0EF: STX $0f33 06E0F2: STZ $420c HDMA有効 06E0F5: LDX #$4000 06E0F8: STX $2116 VRAM読み込み=4000 06E0FB: LDX #$0000 06E0FE: STX $00e0 06E101: LDA #$09 06E103: STA $4300 ch0 DMAアドレス変動、2レジスタ1書き込み 06E106: LDA #$18 06E108: STA $4301 ch0 アドレスを2118(VRAM書き込み)に 06E10B: LDX #$00e0 06E10E: STX $4302 06E111: STZ $4304 0000e0 06E114: STZ $4305 DMAサイズ 06E117: LDA #$0f 06E119: STA $4306 000f00 06E11C: LDA #$01 06E11E: STA $420b 起動? 06E121: STZ $420c HDMA有効 06E124: STZ $2121 CG-RAM書き込みアドレス 06E127: LDA #$00 06E129: STA $4300 ch0 06E12C: LDA #$22 06E12E: STA $4301 ch0 アドレスを2122(CG-RAM書き込み)に 06E131: LDX #$ffa1 06E134: STX $4302 06E137: LDA #$06 06E139: STA $4304 06ffa1 06E13C: LDA #$40 06E13E: STA $4305 サイズ 06E141: STZ $4306 000040 06E144: LDA #$01 06E146: STA $420b 発動? 06E149: REP #$20 06E14B: LDA #$3146 06E14E: STA $00e0 06E151: STA $00e6 06E154: LDA #$400d 06E157: STA $00e2 06E15A: LDA #$4001 06E15D: STA $00e4 06E160: LDY #$0005 06E163: LDX #$0006 06E166: LDA $00e0 06E169: STA $2116 VRAMアドレス 06E16C: LDA $00e2 06E16F: STA $2118 VRAM書き込み 06E172: DEA 06E173: STA $2118 06E176: CLC 06E177: ADC #$0003 06E17A: STA $00e2 06E17D: LDA $00e4 06E180: STA $2118 06E183: DEA 06E184: STA $2118 06E187: CLC 06E188: ADC #$0003 06E18B: STA $00e4 06E18E: LDA $00e0 06E191: CLC 06E192: ADC #$0020 06E195: STA $00e0 06E198: DEX 06E199: BNE 06e166 (-$35) 06E19B: LDA $00e2 06E19E: CLC 06E19F: ADC #$000c 06E1A2: AND #$fbff 06E1A5: STA $00e2 06E1A8: LDA $00e4 06E1AB: CLC 06E1AC: ADC #$000c 06E1AF: AND #$fbff 06E1B2: STA $00e4 06E1B5: LDA $00e0 06E1B8: SEC 06E1B9: SBC #$00c0 06E1BC: CLC 06E1BD: ADC #$0004 06E1C0: STA $00e0 06E1C3: DEY 06E1C4: BEQ 06e1df ($19) 06E1C6: CPY #$0004 06E1C9: BNE 06e163 (-$68) 06E1CB: LDA $00e2 06E1CE: ORA #$0400 06E1D1: STA $00e2 06E1D4: LDA $00e4 06E1D7: ORA #$0400 06E1DA: STA $00e4 06E1DD: BRA 06e163 (-$7c) 06E1DF: LDX #$000f 06E1E2: STX $0f43 06E1E5: STX $2100 06E1E8: LDX #$0000 06E1EB: STX $0f06 DMA起動フラグ 06E1EE: LDA #$0000 06E1F1: STA $0100 06E1F4: JSR $e447 DMA転送、V-Sync待ち、パッドステータス 06E447: PHA このルーチンは、このアトラスロゴ表示内でしか使われない模様 06E448: PHP 06E449: SEP #$30 06E44B: BIT $4212 06E44E: BMI 06e44b (-$5) V-Sync待ち 06E450: BIT $4212 06E453: BPL 06e450 (-$5) V-Sync待ち 06E455: JSR $e49f 06E49F: STZ $420c 06E4A2: LDA $0f06 DMA起動フラグ 06E4A5: BPL 06e4ba ($13) DMAによるVRAM転送処理が入る 06E4BA: RTS 06E458: REP #$20 06E45A: LDA $0100 06E45D: BEQ 06e462 ($3) 06E462: SEP #$20 06E464: LDA $4212 06E467: LSRA 06E468: BCS 06e464 (-$6) V-Sync待ち 06E46A: REP #$20 06E46C: LDA $0f2d 06E46F: STA $0f2f 06E472: LDA $0f33 06E475: STA $0f35 06E478: LDA $4218 パッドステータス 06E47B: STA $0f2d 06E47E: LDA $421a 06E481: STA $0f33 06E484: LDA $0f2d 06E487: AND $0f2f 06E48A: EOR $0f2d 06E48D: STA $0f2b 押したエッジ 06E490: LDA $0f33 06E493: AND $0f35 06E496: EOR $0f33 06E499: STA $0f31 押したエッジ 06E49C: PLP 06E49D: PLA 06E49E: RTS 06E1F7: LDA $0f2b 06E1FA: ORA $0f31 06E1FD: AND #$1000 Aボタン押したかチェック 06E200: BEQ 06e205 ($3) ロゴのルーチンが終わったかのチェック JMP $e41a 4c 1a e4 終わってた場合にジャンプ 06E205: LDX #$0006 06E208: STX $0092 06E20B: LDX #$007f 06E20E: STX $0096 06E211: LDA #$0002 06E214: STA $0476 06E217: LDA #$0007 06E21A: STA $0478 06E21D: LDA #$f0a1 06E220: STA $197e 06E223: LDA #$8000 06E226: STA $1980 06E229: LDA #$0005 06E22C: STA $00e2 06E22F: STZ $00e8 06E232: LDA #$000c 06E235: STA $00ea 06E238: STZ $00e4 06E23B: LDA #$0006 06E23E: STA $00e0 06E241: LDA $197e 06E244: STA $0090 06E247: LDA $1980 06E24A: STA $0094 06E24D: JSL $06ee16 06EE16: PHP 06EE17: REP #$30 06EE19: PHD 06EE1A: LDA #$0000 06EE1D: TCD 06EE1E: LDA $0476 06EE21: ASLA 06EE22: ASLA 06EE23: ASLA 06EE24: ASLA 06EE25: ASLA 06EE26: DEA 06EE27: STA $1982 06EE2A: STA $1986 06EE2D: SEP #$20 06EE2F: STZ $198d 06EE32: LDA #$08 06EE34: SEC 06EE35: SBC $0478 06EE38: STA $198c 06EE3B: LDX $1982 06EE3E: STX $1984 06EE41: LDX $1986 06EE44: STX $1988 06EE47: LDX #$0020 06EE4A: LDY $1982 06EE4D: LDA [$90],Y 06EE4F: DEY 06EE50: STY $1982 06EE53: SEP #$10 06EE55: LDY $198d 06EE58: BEQ 06ee79 ($1f) 06EE5A: LDY $0478 06EE5D: BEQ 06ee6a ($b) 06EE5F: LSRA 06EE60: DEY 06EE61: BNE 06ee5f (-$4) 06EE63: LDY $198d 06EE66: ASLA 06EE67: DEY 06EE68: BNE 06ee66 (-$4) 06EE6A: REP #$10 06EE6C: LDY $1988 06EE6F: ORA [$94],Y 06EE71: STA [$94],Y 06EE73: DEY 06EE74: STY $1988 06EE77: BRA 06ee8d ($14) 06EE79: LDY $0478 06EE7C: BEQ 06ee82 ($4) 06EE7E: LSRA 06EE7F: DEY 06EE80: BNE 06ee7e (-$4) 06EE82: REP #$10 06EE84: LDY $1988 06EE87: STA [$94],Y 06EE89: DEY 06EE8A: STY $1988 06EE8D: DEX 06EE8E: BNE 06ee4a (-$46) 06EE90: LDA $198d 06EE93: CLC 06EE94: ADC $198c 06EE97: STA $198d 06EE9A: CMP #$08 06EE9C: BCC 06eed9 ($3b) 06EE9E: LDX $1988 仮にここに来たとしてもハングする? STX $1986 AND #$07 STA $198d BEQ 06eed9 EOR #$07 INA STA $198e LDX #$0020 06EEB4: LDY $1984 LDA [$90],Y BGパターンのソースっぽい DEY STY $1984 SEP #$10 LDY $198e 06EEC2: LSRA DEY BNE 06eec2 REP #$10 LDY $1988 STA [$94],Y 7f80000あたりでVRAMに転送する前のBGパターンっぽい DEY STY $1988 DEX BNE $06EEB4 LDX $1984 BMI $06EEE1 06EED9: LDX $1982 06EEDC: BMI 06eee1 ($3) 06EEDE: JMP $ee3b 06EEE1: LDY $1988 06EEE4: BMI 06eef2 ($c) 06EEE6: DEY 06EEE7: REP #$20 06EEE9: LDA #$0000 06EEEC: STA [$94],Y 06EEEE: DEY 06EEEF: DEY 06EEF0: BPL 06eeec (-$6) 06EEF2: PLD 06EEF3: PLP 06EEF4: RTL 06E251: JSR $e42f 06E42F: LDA $0090 06E432: CLC 06E433: ADC #$0040 06E436: STA $0090 06E439: LDA $0094 06E43C: CLC 06E43D: ADC #$0040 06E440: STA $0094 06E443: DEC $00e0 06E446: RTS 06E254: BNE 06e24d (-$9) 06E256: LDA #$0006 06E259: STA $00e0 06E25C: JSL $06ed25 06ED25: PHP 06ED26: REP #$30 06ED28: PHD 06ED29: LDA #$0000 06ED2C: TCD 06ED2D: STZ $1984 06ED30: STZ $1986 06ED33: LDA $0476 06ED36: ASLA 06ED37: ASLA 06ED38: ASLA 06ED39: ASLA 06ED3A: ASLA 06ED3B: STA $198a 06ED3E: SEP #$20 06ED40: STZ $198d 06ED43: LDA #$08 06ED45: SEC 06ED46: SBC $0478 06ED49: STA $198c 06ED4C: LDX $1984 06ED4F: STX $1982 06ED52: LDX $1986 06ED55: STX $1988 06ED58: LDX #$0000 06ED5B: LDY $1984 06ED5E: LDA [$90],Y 06ED60: INY 06ED61: STY $1984 06ED64: SEP #$10 06ED66: LDY $198d 06ED69: BEQ 06ed8a ($1f) 06ED6B: LDY $0478 06ED6E: BEQ 06ed7b ($b) 06ED70: ASLA 06ED71: DEY 06ED72: BNE 06ed70 (-$4) 06ED74: LDY $198d 06ED77: LSRA 06ED78: DEY 06ED79: BNE 06ed77 (-$4) 06ED7B: REP #$10 06ED7D: LDY $1988 06ED80: ORA [$94],Y 06ED82: STA [$94],Y 06ED84: INY 06ED85: STY $1988 06ED88: BRA 06ed9e ($14) 06ED8A: LDY $0478 06ED8D: BEQ 06ed93 ($4) 06ED8F: ASLA 06ED90: DEY 06ED91: BNE 06ed8f (-$4) 06ED93: REP #$10 06ED95: LDY $1988 06ED98: STA [$94],Y 06ED9A: INY 06ED9B: STY $1988 06ED9E: INX 06ED9F: CPX #$0020 06EDA2: BNE 06ed5b (-$49) 06EDA4: LDA $198d 06EDA7: CLC 06EDA8: ADC $198c 06EDAB: STA $198d 06EDAE: CMP #$08 06EDB0: BCC 06edf3 ($41) : : : 06EDF3: LDX $1984 06EDF6: CPX $198a 06EDF9: BEQ 06edfe ($3) 06EDFB: JMP $ed4c 06EDFE: LDY $1988 06EE01: CPY $198a 06EE04: BEQ 06ee13 ($d) 06EE06: REP #$20 06EE08: LDA #$0000 06EE0B: STA [$94],Y 06EE0D: INY 06EE0E: CPY $198a 06EE11: BNE 06ee0b (-$8) 06EE13: PLD 06EE14: PLP 06EE15: RTL 06E260: JSR $e42f 06E42F: LDA $0090 06E432: CLC 06E433: ADC #$0040 06E436: STA $0090 06E439: LDA $0094 06E43C: CLC 06E43D: ADC #$0040 06E440: STA $0094 06E443: DEC $00e0 06E446: RTS 06E263: BNE 06e25c (-$9) 06E265: SEP #$10 06E267: REP #$20 06E269: LDX #$01 06E26B: STX $4300 06E26E: LDX #$18 06E270: STX $4301 06E273: LDA $1980 06E276: STA $4302 06E279: LDX #$7f 06E27B: STX $4304 06E27E: LDX #$00 06E280: STX $4305 06E283: LDX #$03 06E285: STX $4306 06E288: LDX #$ff 06E28A: STX $0f06 DMA起動フラグ 06E28D: JSR $e447 DMA転送、V-Sync待ち、パッドステータス 06E290: LDA $0f2b 06E293: ORA $0f31 06E296: AND #$1000 Aボタン押したかチェック 06E299: BEQ 06e29e ($3) これは無関係 終了チェック JMP $e41a 06E29E: LDA $00e4 06E2A1: LSRA 06E2A2: BCS 06e2ab ($7) 06E2A4: DEC $0478 06E2A7: BPL 06e23b (-$6e) これは無関係 BRA 06e2be 06E2AB: INC $0478 06E2AE: LDA $0478 06E2B1: CMP #$0008 06E2B4: BEQ 06e2b9 ($3) 06E2B6: JMP $e23b 06E2B9: LDA #$0007 06E2BC: BRA 06e2dd ($1f) 06E2DD: STA $0478 06E2E0: INC $00e4 06E2E3: LDA $00e4 06E2E6: CMP #$0003 06E2E9: BNE 06e2ee ($3) JMP $e3de 06E2EE: AND #$0002 06E2F1: BNE 06e2f6 ($3) 06E2F6: LDX #$02 06E2F8: LDA #$0006 06E2FB: TAY 06E2FC: STA $0100 06E2FF: LDA $00e6 06E302: PHA 06E303: STA $0100,X 06E306: INX 06E307: INX 06E308: LDA #$0004 06E30B: PHY 06E30C: TAY 06E30D: STA $0100,X 06E310: INX 06E311: INX 06E312: STZ $0100,X 06E315: INX 06E316: INX 06E317: DEY 06E318: BNE 06e312 (-$8) 06E31A: LDA $00e6 06E31D: CLC 06E31E: ADC #$0020 06E321: STA $00e6 06E324: PLY 06E325: DEY 06E326: BNE 06e303 (-$25) 06E328: LDA #$0006 06E32B: JSR $e4e0 DMA転送、V-Sync待ち、パッドステータス呼び出し元 06E4E0: PHP 06E4E1: REP #$30 06E4E3: JSR $e447 DMA転送、V-Sync待ち、パッドステータス 06E4E6: TAY 06E4E7: LDA $0f2b 06E4EA: ORA $0f31 06E4ED: AND #$1000 Aボタン押したかチェック 06E4F0: BNE 06e4f6 ($4) 06E4F2: TYA 06E4F3: DEA 06E4F4: BNE 06e4e3 (-$13) 06E4F6: PLP 06E4F7: RTS 06E32E: LDA $0f2b 06E331: ORA $0f31 06E334: AND #$1000 Aボタン押したかチェック 06E337: BEQ 06e33c ($3) 06E33C: PLA 06E33D: PHA 06E33E: STA $00e6 06E341: LDX #$02 06E343: LDA #$0006 06E346: TAY 06E347: STA $0100 06E34A: LDA $00e6 06E34D: STA $0100,X 06E350: INX 06E351: INX 06E352: LDA #$0004 06E355: STA $0100,X 06E358: INX 06E359: INX 06E35A: LDA $00e8 06E35D: STA $0100,X 06E360: INX 06E361: INX 06E362: INA 06E363: STA $0100,X 06E366: INX 06E367: INX 06E368: INA 06E369: STA $00e8 06E36C: LDA $00ea 06E36F: STA $0100,X 06E372: INX 06E373: INX 06E374: INA 06E375: STA $0100,X 06E378: INX 06E379: INX 06E37A: INA 06E37B: STA $00ea 06E37E: LDA $00e6 06E381: CLC 06E382: ADC #$0020 06E385: STA $00e6 06E388: DEY 06E389: BNE 06e34a (-$41) 06E38B: LDA $00e8 06E38E: CLC 06E38F: ADC #$000c 06E392: AND #$fbff 06E395: STA $00e8 06E398: LDA $00ea 06E39B: CLC 06E39C: ADC #$000c 06E39F: AND #$fbff 06E3A2: STA $00ea 06E3A5: PLA 06E3A6: CLC 06E3A7: ADC #$0004 06E3AA: STA $00e6 06E3AD: LDA $00e2 06E3B0: CMP #$0005 06E3B3: BNE 06e3c7 ($12) 06E3C7: LDA #$0002 06E3CA: JSR $e4e0 DMA転送、V-Sync待ち、パッドステータス呼び出し元 : 06E3CD: LDA $0f2b 06E3D0: ORA $0f31 06E3D3: AND #$1000 Aボタン押したかチェック 06E3D6: BNE 06e41a ($42) 06E3D8: DEC $0478 06E3DB: JMP $e23b 06E3DE: LDA $0090 06E3E1: STA $197e 06E3E4: LDA $0094 06E3E7: STA $1980 06E3EA: LDA #$0007 06E3ED: STA $0478 06E3F0: DEC $00e2 06E3F3: BEQ 06e3f8 ($3) 06E3F8: LDA #$0080 06E3FB: JSR $e4e0 DMA転送、V-Sync待ち、パッドステータス呼び出し元 06E3FE: SEP #$20 06E400: LDA #$02 06E402: BIT $4212 06E405: BMI 06e402 (-$5) V-Sync待ち 06E407: BIT $4212 06E40A: BPL 06e407 (-$5) V-Sync待ち 06E40C: DEA 06E40D: BNE 06e402 (-$d) 06E40F: DEC $0f43 06E412: LDA $0f43 06E415: STA $2100 06E418: BNE 06e400 (-$1a) 06E41A: SEP #$20 06E41C: LDA #$00 06E41E: STA $4200 06E421: LDA #$80 06E423: STA $2100 06E426: REP #$10 06E428: LDX $00ec 06E42B: TXS 06E42C: PLD 06E42D: PLP 06E42E: RTL 008039: LDX #$0000 00803C: LDA $008773,X マジックの書き込み 008040: STA $7effe0,X 008044: INX 008045: CPX #$0014 008048: BCC 00803c (-$e) 00804A: JSL $0c8000