;;; ;;; { $A78000 22 6D 9F A0 JSL $A09F6D[$A0:9F6D] $A78004 6B RTL } ;;; Enemy grapple AI: Grapple latches, enemy stops until released ;;; { $A78005 22 7D 9F A0 JSL $A09F7D[$A0:9F7D] $A78009 6B RTL } ;;; Enemy grapple AI: Grapple latches, enemy killed ;;; { $A7800A 22 C4 9F A0 JSL $A09FC4[$A0:9FC4] $A7800E 6B RTL } ;;; Enemy grapple AI: Grapple stopped, enemy unaffected ;;; { $A7800F 22 DF 9F A0 JSL $A09FDF[$A0:9FDF] $A78013 6B RTL } ;;; Enemy grapple AI: Grapple latches, enemy unaffected ;;; { $A78014 22 E9 9F A0 JSL $A09FE9[$A0:9FE9] $A78018 6B RTL } ;;; Enemy grapple AI: Grapple latches, enemy delay die ;;; { $A78019 22 3E A0 A0 JSL $A0A03E[$A0:A03E] $A7801D 6B RTL } ;;; Enemy grapple AI: Grapple latches, Samus hurt and knocked off ;;; { $A7801E 22 70 A0 A0 JSL $A0A070[$A0:A070] $A78022 6B RTL } ;;; Normal enemy touch AI ;;; { $A78023 22 77 A4 A0 JSL $A0A477[$A0:A477] $A78027 6B RTL } ;;; Normal enemy touch AI, but skips death animation ;;; { $A78028 22 97 A4 A0 JSL $A0A497[$A0:A497] $A7802C 6B RTL } ;;; Normal enemy shot AI ;;; { $A7802D 22 3D A6 A0 JSL $A0A63D[$A0:A63D] $A78031 6B RTL } { ;;; ;;; $A78032 22 A7 A6 A0 JSL $A0A6A7[$A0:A6A7] $A78036 6B RTL } ;;; ;;; { $A78037 22 97 A5 A0 JSL $A0A597[$A0:A597] $A7803B 6B RTL } ;;; ;;; { $A7803C 22 B7 A5 A0 JSL $A0A5B7[$A0:A5B7] $A78040 6B RTL } ;;; Normal enemy ice AI ;;; { $A78041 22 7E 95 A0 JSL $A0957E[$A0:957E] $A78045 6B RTL } ;;; ;;; { $A78046 22 BC A8 A0 JSL $A0A8BC[$A0:A8BC] $A7804A 6B RTL } $A7804B 60 RTS $A7804C 6B RTL $A7804D db 00, 00, 01, 00, 00, 00, 00, 00 $A78057 db 59, 80, 01, 00, 00, 00 ;;; Enemy instruction: Execute ;;; { $A7808A B9 00 00 LDA $0000,y[$A7:CCF5] $A7808D 85 12 STA $12 [$7E:0012] $A7808F 5A PHY $A78090 DA PHX $A78091 F4 96 80 PEA $8096 $A78094 6C 12 00 JMP ($0012)[$A7:CF5E] $A78097 FA PLX $A78098 7A PLY $A78099 C8 INY $A7809A C8 INY $A7809B 6B RTL } ;;; Enemy instruction: Go to ;;; { $A780ED B9 00 00 LDA $0000,y[$A7:E8D4] $A780F0 A8 TAY $A780F1 6B RTL } ;;; Enemy instruction: Decrement loop counter; go to if zero ;;; { $A78110 DE 90 0F DEC $0F90,x[$7E:1190] $A78113 D0 D8 BNE $D8 [$80ED] $A78115 C8 INY $A78116 C8 INY $A78117 6B RTL } ;;; Enemy instruction: Set loop counter ;;; { $A78123 B9 00 00 LDA $0000,y[$A7:E8D8] $A78126 9D 90 0F STA $0F90,x[$7E:1190] $A78129 C8 INY $A7812A C8 INY $A7812B 6B RTL } ;;; Enemy instruction: Kill ;;; { $A7812F 88 DEY $A78130 88 DEY $A78131 98 TYA $A78132 9D 92 0F STA $0F92,x[$7E:0F92] $A78135 68 PLA $A78136 F4 AE C2 PEA $C2AE $A78139 6B RTL } ;;; Kraid's palette ;;; { $A78687 dw 3800, 559D, 1816, 100D, 4B9F, 3F37, 36D0, 2E69, 2608, 1DA6, 1125, 08C5, 0003, 6318, 7FFF, 0000 } ;;; Kraid Target colour palette line 6 ;;; { $A786C7 dw 6B04, 6B2D, 6B2D, 862D, C219, 4014, 0008, ED04, C631, C318, 2010, 5204, 6B02, 522D, 004A, FF00 } ;;; Kraid foot instructions ;;; $A786E7 dw 7FFF,A565, 812F ; Kill $A786ED dw 7FFF,8CE3, 812F ; Kill { $A786F3 dw B633, ; NOP 0004,8CE3, 0004,8CF5, 0004,8D07, 0004,8D19, 0004,8D2B, 0004,8D3D, 0004,8D4F, 0004,8D61, 0004,8D73, 0004,8D85, 0004,8D97, 0003,8DA9, 0001,8DBB, 0001,8DCD, 0001,8DDF, 0001,8DF1, 0001,8E03, 0010,8E15, B636, ; Decrement Kraid Y position B65A, ; Decrement Kraid X position 0001,8E27, B636, ; Decrement Kraid Y position B65A, ; Decrement Kraid X position 0001,8E39, B633, ; NOP 0003,8E39, B636, ; Decrement Kraid Y position B65A, ; Decrement Kraid X position 0001,8E39, B633, ; NOP 0003,8E39, B636, ; Decrement Kraid Y position B65A, ; Decrement Kraid X position 0001,8E5D, B633, ; NOP 0003,8E5D, B63C, ; Increment Kraid Y position, set screen shaking B65A, ; Decrement Kraid X position 0001,8E6F, B63C, ; Increment Kraid Y position, set screen shaking B65A, ; Decrement Kraid X position 0001,8E81, B63C, ; Increment Kraid Y position, set screen shaking B65A, ; Decrement Kraid X position 0001,8E93, B63C, ; Increment Kraid Y position, set screen shaking B65A, ; Decrement Kraid X position B64E, ; Play sound library 2: 76h 0001,8EA5, B633, ; NOP B65A, ; Decrement Kraid X position 0001,8EB7, B65A, ; Decrement Kraid X position 0001,8EC9, B65A, ; Decrement Kraid X position 0001,8EDB, B65A, ; Decrement Kraid X position 0001,8EED, B65A, ; Decrement Kraid X position 0001,8EFF, B65A, ; Decrement Kraid X position 0001,8F11, 0001,8CE3, 812F ; Kill } ; This is just $86F3 but faster { $A787BD dw B633, ; NOP 0001,8CE3, 0001,8CF5, 0001,8D07, 0001,8D19, 0001,8D2B, 0001,8D3D, 0001,8D4F, 0001,8D61, 0001,8D73, 0001,8D85, 0001,8D97, 0001,8DA9, 0001,8DBB, 0001,8DCD, 0001,8DDF, 0001,8DF1, 0001,8E03, 0004,8E15, B636, ; Decrement Kraid Y position B667, ; Decrement Kraid X position 0001,8E27, B636, ; Decrement Kraid Y position B667, ; Decrement Kraid X position 0001,8E39, B633, ; NOP 0001,8E39, B636, ; Decrement Kraid Y position B667, ; Decrement Kraid X position 0001,8E39, B633, ; NOP 0001,8E39, B636, ; Decrement Kraid Y position B667, ; Decrement Kraid X position 0001,8E5D, B633, ; NOP 0001,8E5D, B63C, ; Increment Kraid Y position, set screen shaking B667, ; Decrement Kraid X position 0001,8E6F, B63C, ; Increment Kraid Y position, set screen shaking B667, ; Decrement Kraid X position 0001,8E81, B63C, ; Increment Kraid Y position, set screen shaking B667, ; Decrement Kraid X position 0001,8E93, B63C, ; Increment Kraid Y position, set screen shaking B667, ; Decrement Kraid X position B64E, ; Play sound library 2: 76h 0001,8EA5, B633, ; NOP B667, ; Decrement Kraid X position 0001,8EB7, B667, ; Decrement Kraid X position 0001,8EC9, B667, ; Decrement Kraid X position 0001,8EDB, B667, ; Decrement Kraid X position 0001,8EED, B667, ; Decrement Kraid X position 0001,8EFF, 0001,8F11, B667, ; Decrement Kraid X position 0001,8CE3, 812F ; Kill } { $A78887 dw B633, ; NOP B674, ; Increment Kraid X position 0004,8F47, B674, ; Increment Kraid X position 0001,8F23, B674, ; Increment Kraid X position 0001,8EFF, B674, ; Increment Kraid X position 0001,8EED, B674, ; Increment Kraid X position 0001,8EDB, B674, ; Increment Kraid X position 0001,8EC9, B674, ; Increment Kraid X position 0001,8EB7, B636, ; Decrement Kraid Y position B674, ; Increment Kraid X position 0001,8EA5, B636, ; Decrement Kraid Y position B674, ; Increment Kraid X position 0001,8E93, B636, ; Decrement Kraid Y position B674, ; Increment Kraid X position 0001,8E81, B636, ; Decrement Kraid Y position B674, ; Increment Kraid X position 0001,8E6F, B63C, ; Increment Kraid Y position, set screen shaking B674, ; Increment Kraid X position 0001,8E5D, B63C, ; Increment Kraid Y position, set screen shaking B674, ; Increment Kraid X position 0001,8E4B, B63C, ; Increment Kraid Y position, set screen shaking B674, ; Increment Kraid X position 0001,8E39, B63C, ; Increment Kraid Y position, set screen shaking B64E, ; Play sound library 2: 76h 0001,8E27, B633, ; NOP 0014,8E15, 0004,8E03, 0004,8DF1, 0004,8DDF, 0004,8DCD, 0004,8DBB, 0004,8DA9, 0004,8D97, 0004,8D85, 0001,8D73, 0001,8D61, 0001,8D4F, 0001,8D3D, 0001,8D2B, 0001,8D19, 0001,8D07, 0001,8CF5, 80ED,8887 ; Go to start } { ;$A7893D dw B633, ; NOP ; B683, ; 0004,8F47, ; B683, ; 0001,8F23, ; B683, ; 0001,8EFF, ; B683, ; 0001,8EED, ; B683, ; 0001,8EDB, ; B683, ; 0001,8EC9, ; B683, ; 0001,8EB7, ; B636, ; Decrement Kraid Y position ; B683, ; 0001,8EA5, ; B636, ; Decrement Kraid Y position ; B683, ; 0001,8E93, ; B636, ; Decrement Kraid Y position ; B683, ; 0001,8E81, ; B636, ; Decrement Kraid Y position ; B683, ; 0001,8E6F, ; B63C, ; Increment Kraid Y position, set screen shaking ; B683, ; 0001,8E5D, ; B63C, ; Increment Kraid Y position, set screen shaking ; B683, ; 0001,8E4B, ; B63C, ; Increment Kraid Y position, set screen shaking ; B683, ; 0001,8E39, ; B63C, ; Increment Kraid Y position, set screen shaking ; B64E, ; Play sound library 2: 76h ; 0001,8E27, ; B633, ; NOP ; 0014,8E15, 0004,8E03, 0004,8DF1, 0004,8DDF, 0004,8DCD, 0004,8DBB, 0004,8DA9, 0004,8D97, 0004,8D85, 0001,8D73, 0001,8D61, 0001,8D4F, 0001,8D3D, 0001,8D2B, 0001,8D19, 0001,8D07, 0001,8CF5, ; 80ED,893D ; Go to start } ;;; Kraid arm instructions ;;; $A789F3 dw 0006,8F59, 0006,8F83, 0006,8FAD, 0006,8FD7, 0006,9001, 0006,902B, 0006,9055, 0006,907F, 0006,90A9, 0006,90D3, 0006,907F, 0006,9055, 0006,902B, 0006,9001, 0006,8FD7, 0006,8FAD, 0006,8F83, 0020,8F59, 8A8F, ; If Kraid HP < 1/2 Kraid health: go to $8A41 80ED,89F3 ; Go to start ; This is just $89F3 but slower $A78A41 dw 0008,8F59, 0008,8F83, 0008,8FAD, 0008,8FD7, 0008,9001, 0008,902B, 0008,9055, 0008,907F, 0008,90A9, 0008,90D3, 0008,907F, 0008,9055, 0008,902B, 0008,9001, 0008,8FD7, 0008,8FAD, 0008,8F83, 0030,8F59, 8A8F, ; Nothing 80ED,8A41 ; Go to start ;;; Enemy instruction: Slow arm check ;;; $A78A8F AD 8C 0F LDA $0F8C [$7E:0F8C] ;\ $A78A92 CF 12 78 7E CMP $7E7812[$7E:7812] ;} If Kraid HP < 1/2 Kraid health: $A78A96 10 0B BPL $0B [$8AA3] ;/ $A78A98 AD D2 0F LDA $0FD2 [$7E:0FD2] ;\ $A78A9B C9 41 8A CMP #$8A41 ;} If Kraid arm instruction < $8A41 $A78A9E 10 03 BPL $03 [$8AA3] ;/ $A78AA0 A0 41 8A LDY #$8A41 ; Slow down arm movement $A78AA3 6B RTL ;;; Kraid arm instructions ;;; $A78AA4 dw 0006,90FD, 0006,9127, 0006,9151, 0006,917B, 0006,91A5, 0006,91CF, 0006,91F9, 0006,9223, 0006,924D, 0006,9277, 0006,9223, 0006,91F9, 0006,91CF, 0006,91A5, 0006,917B, 0006,9151, 0006,9127, 0020,90FD, 80ED,8AA4 ; Go to start $A78ACA dw 0006,8F59, 0006,92A1, 7FFF,92AB $A78AF0 dw 0006,8F59, 0006,92A1, 7FFF,92AB, 812F ; Kill ;;; Kraid lint instructions ;;; $A78AFE dw 7FFF,A5DF, 812F ; Kill $A78B04 dw 7FFF,8C6C, 812F ; Kill ;;; Kraid fingernail_A instructions ;;; $A78B0A dw 0003,A617, 0003,A623, 0003,A639, 0003,A645, 0003,A65B, 0003,A667, 0003,A67D, 0003,A689, 80ED,8B0A ; Go to start ;$A78B2E dw 0002, 0000,0000,9572,93F7, FFF7,FFF6,94E1,92D1 ;$A78B40 dw 0002, FFF9,FFF8,94E8,92EB, 0001,0000,9572,93F7 ;$A78B52 dw 0002, FFF8,FFF8,94F4,92F9, 0000,0000,9572,93F7 ;$A78B64 dw 0002, FFF8,FFF8,94FB,9313, 0000,0000,9572,93F7 ;$A78B76 dw 0002, FFF6,0001,94E8,92EB, 0000,0000,952D,9371 ;$A78B88 dw 0002, FFF6,0000,94F4,92F9, 0000,0000,952D,9371 ;$A78B9A dw 0002, FFF6,0000,94FB,9313, 0000,0000,952D,9371 ;$A78BAC dw 0002, FFF6,0000,9507,9321, 0000,0000,952D,9371 ;$A78BBE dw 0002, FFFA,0006,94F4,92F9, 0000,0000,9539,937F ;$A78BD0 dw 0002, FFFA,0006,94FB,9313, 0000,0000,9539,937F ;$A78BE2 dw 0002, FFF8,0006,9507,9321, 0000,0000,9539,937F ;$A78BF4 dw 0002, FFF8,0006,950E,933B, 0000,0000,9539,937F ;$A78C06 dw 0002, 0001,000A,94FB,9313, 0000,0000,9540,9399 ;$A78C18 dw 0002, 0000,000A,9507,9321, 0000,0000,9540,9399 ;$A78C2A dw 0002, FFFF,000C,950E,933B, 0000,0000,9540,9399 ;$A78C3C dw 0002, 0000,000B,951A,9349, 0000,0000,9540,9399 ;$A78C4E dw 0001, 0000,0000,95B4,9439 ;$A78C58 dw 0001, 0000,0000,958A,941F ;$A78C62 dw 0001, 0000,0000,9579,9411 ;;; Kraid lint OAM entries ;;; $A78C6C dw 0005, 01F4,08,21C2, 81E4,00,21B0, 81F4,F8,21A2, 81E4,F8,21A0, 8004,F8,21A9 ;$A78C88 dw 0001, 0000,0000,94DA,92C3 ;$A78C92 dw 0002, 0000,0000,95DE,92C3, 000C,0030,9686,92C3 ;$A78CA4 dw 0002, 0000,0000,9608,92C3, 0000,0039,9686,92C3 ;$A78CB6 dw 0002, 0000,0000,9632,92C3, FFF0,003F,9686,92C3 ;$A78CD8 dw 0002, 0000,0000,965C,92C3, FFDF,003D,9686,92C3 ;$A78CEA dw 0001, 0000,0000,96CB,9461 ;;; Kraid foot OAM / hitboxes ;;; { $A78CE3 dw 0002, 0008,0028,9686,9453, 0000,0000,95DE,9453 $A78CF5 dw 0002, 0006,0027,9686,9453, FFFE,FFFF,95DE,9453 $A78D07 dw 0002, 0004,0026,9686,9453, FFFC,FFFE,95DE,9453 $A78D19 dw 0002, 0002,0025,9686,9453, FFFA,FFFD,95DE,9453 $A78D2B dw 0002, 0000,0024,9686,9453, FFF8,FFFC,95DE,9453 $A78D3D dw 0002, FFFE,0023,9686,9453, 0005,FFF1,9608,9453 $A78D4F dw 0002, FFFC,0022,9686,9453, 0003,FFF0,9608,9453 $A78D61 dw 0002, FFFA,0021,9686,9453, 0001,FFEF,9608,9453 $A78D73 dw 0002, FFF8,0020,9686,9453, FFFF,FFEE,9608,9453 $A78D85 dw 0002, FFF6,001F,9686,9453, FFFD,FFED,9608,9453 $A78D97 dw 0002, FFF4,001D,9686,9453, 000C,FFE6,9632,9453 $A78DA9 dw 0002, FFF2,001C,9686,9453, 001A,FFE9,965C,9453 $A78DBB dw 0002, FFF0,001E,9686,9453, 0018,FFEB,965C,9453 $A78DCD dw 0002, FFEE,0020,9686,9453, 0016,FFED,965C,9453 $A78DDF dw 0002, FFEC,0022,9686,9453, 0014,FFEF,965C,9453 $A78DF1 dw 0002, FFEA,0024,9686,9453, 0012,FFF1,965C,9453 $A78E03 dw 0002, FFE8,0026,9686,9453, 0010,FFF3,965C,9453 $A78E15 dw 0002, FFE6,0028,9686,9453, 000E,FFF5,965C,9453 $A78E27 dw 0002, FFE8,0028,9686,9453, 0010,FFF6,965C,9453 $A78E39 dw 0002, FFEA,0028,9686,9453, 0012,FFF6,965C,9453 $A78E4B dw 0002, FFEC,0028,9686,9453, 0014,FFF6,965C,9453 $A78E5D dw 0002, FFEE,0028,9686,9453, 0006,FFF1,9632,9453 $A78E6F dw 0002, FFF0,0028,9686,9453, 0008,FFF1,9632,9453 $A78E81 dw 0002, FFF2,0028,9686,9453, FFF9,FFF6,9608,9453 $A78E93 dw 0002, FFF4,0028,9686,9453, FFFB,FFF6,9608,9453 $A78EA5 dw 0002, FFF6,0028,9686,9453, FFFD,FFF6,9608,9453 $A78EB7 dw 0002, FFF8,0028,9686,9453, FFFF,FFF6,9608,9453 $A78EC9 dw 0002, FFFA,0028,9686,9453, 0001,FFF6,9608,9453 $A78EDB dw 0002, FFFC,0028,9686,9453, 0003,FFF6,9608,9453 $A78EED dw 0002, FFFE,0028,9686,9453, 0005,FFF6,9608,9453 $A78EFF dw 0002, 0000,0028,9686,9453, 0007,FFF6,9608,9453 $A78F11 dw 0002, 0002,0028,9686,9453, FFFA,0000,95DE,9453 $A78F23 dw 0002, 0004,0028,9686,9453, FFFC,0000,95DE,9453 ;$A78F35 dw 0002, 0006,0028,9686,9453, FFFE,0000,95DE,9453 $A78F47 dw 0002, 0008,0028,9686,9453, 0000,0000,95DE,9453 } ;;; Kraid arm OAM / hitboxes ;;; { $A78F59 dw 0005, FFDC,FFDF,94E1,92D1, FFE4,FFE8,9572,93F7, 0000,0000,95B4,9439, FFDC,FFD8,94E1,92D1, FFE4,FFE1,9572,93F7 $A78F83 dw 0005, FFDA,FFDF,94E8,92EB, FFE2,FFE6,9572,93F7, 0000,0000,95B4,9439, FFDC,FFD8,94E1,92D1, FFE4,FFE1,9572,93F7 $A78FAD dw 0005, FFD0,FFF3,94F4,92F9, FFDA,FFF3,952D,9371, 0000,0000,958A,941F, FFD3,FFE5,94E8,92EB, FFDB,FFED,9572,93F7 $A78FD7 dw 0005, FFD2,FFF3,94FB,9313, FFDB,FFF3,952D,9371, 0000,0000,958A,941F, FFD3,FFED,94F4,92F9, FFDC,FFEE,952D,9371 $A79001 dw 0005, FFD3,0008,9507,9321, FFDA,0002,9539,937F, 0000,0000,9579,9411, FFD2,0003,94FB,9313, FFD9,FFFD,9539,937F $A7902B dw 0005, FFD4,0008,9507,9321, FFDB,0002,9539,937F, 0000,0000,9579,9411, FFD2,0004,9507,9321, FFD9,FFFE,9539,937F $A79055 dw 0005, FFD9,000A,950E,933B, FFDA,0000,9540,9399, 0000,0000,9579,9411, FFD5,000A,950E,933B, FFD7,FFFE,9540,9399 $A7907F dw 0005, FFD9,000A,950E,933B, FFDA,0000,9540,9399, 0000,0000,9579,9411, FFD5,0009,950E,933B, FFD7,FFFE,9540,9399 $A790A9 dw 0005, FFD9,000A,951A,9349, FFDA,0000,9540,9399, 0000,0000,9579,9411, FFD5,0009,950E,933B, FFD7,FFFE,9540,9399 $A790D3 dw 0005, FFD9,000A,951A,9349, FFDA,0000,9540,9399, 0000,0000,9579,9411, FFD6,0009,951A,9349, FFD6,FFFE,9540,9399 $A790FD dw 0005, FFDC,FFDF,A47C,92D1, FFE4,FFE8,A4DB,93F7, 0000,0000,A53B,9439, FFDC,FFD8,A47C,92D1, FFE4,FFE1,A4DB,93F7 $A79127 dw 0005, FFDA,FFDF,A483,92EB, FFE2,FFE6,A4DB,93F7, 0000,0000,A53B,9439, FFDC,FFD8,A47C,92D1, FFE4,FFE1,A4DB,93F7 $A79151 dw 0005, FFD0,FFF3,A48F,92F9, FFDA,FFF3,A4BC,9371, 0000,0000,A511,941F, FFD3,FFE5,A483,92EB, FFDB,FFED,A4DB,93F7 $A7917B dw 0005, FFD2,FFF3,A496,9313, FFDB,FFF3,A4BC,9371, 0000,0000,A511,941F, FFD3,FFED,A48F,92F9, FFDC,FFEE,A4BC,9371 $A791A5 dw 0005, FFD3,0008,A4A2,9321, FFDA,0002,A4C8,937F, 0000,0000,A500,9411, FFD2,0003,A496,9313, FFD9,FFFD,A4C8,937F $A791CF dw 0005, FFD4,0008,A4A2,9321, FFDB,0002,A4C8,937F, 0000,0000,A500,9411, FFD2,0004,A4A2,9321, FFD9,FFFE,A4C8,937F $A791F9 dw 0005, FFD9,000A,A4A9,933B, FFDA,0000,A4CF,9399, 0000,0000,A500,9411, FFD5,000A,A4A9,933B, FFD7,FFFE,A4CF,9399 $A79223 dw 0005, FFD9,000A,A4A9,933B, FFDA,0000,A4CF,9399, 0000,0000,A500,9411, FFD5,0009,A4A9,933B, FFD7,FFFE,A4CF,9399 $A7924D dw 0005, FFD9,000A,A4B5,9349, FFDA,0000,A4CF,9399, 0000,0000,A500,9411, FFD5,0009,A4A9,933B, FFD7,FFFE,A4CF,9399 $A79277 dw 0005, FFD9,000A,A4B5,9349, FFDA,0000,A4CF,9399, 0000,0000,A500,9411, FFD6,0009,A4B5,9349, FFD6,FFFE,A4CF,9399 $A792A1 dw 0001, 0000,0000,A69F,946F $A792AB dw 0001, 0000,0000,A6DD,947D } ;;; Kraid lint hitbox entry ;;; $A792B5 dw 0001, FFE8,FFFC,0004,0006,948B,94B5 ;$A792C3 dw 0001, FFF8,FFF8,0007,0007,948B,94B5 ;;; Kraid arm hitbox entries ;;; $A792D1 dw 0002, FFF3,FFF5,FFFD,FFFB,9490,94B6, FFF7,FFFB,0001,0002,9490,94B6 $A792EB dw 0001, FFF0,FFFB,0001,0002,9490,94B6 $A792F9 dw 0002, FFF7,FFFE,0001,0007,9490,94B6, FFF4,0003,FFFA,000C,9490,94B6 $A79313 dw 0001, FFFA,FFFF,0001,000E,9490,94B6 $A79321 dw 0002, FFFD,FFFE,0006,0009,9490,94B6, 0002,0007,000B,000B,9490,94B6 $A7933B dw 0001, FFFF,FFFC,000E,0004,9490,94B6 $A79349 dw 0002, FFFD,FFF9,0006,0002,9490,94B6, 0004,FFF4,000A,FFFF,9490,94B6 $A79371 dw 0001, FFF1,FFFB,0002,0004,9490,94B6 $A7937F dw 0002, FFF5,0002,FFFC,000A,9490,94B6, FFFA,FFFD,0003,0005,9490,94B6 $A79399 dw 0001, FFFC,FFFE,0003,000D,9490,94B6 $A793F7 dw 0002, FFF4,FFF4,FFFD,FFFD,9490,94B6, FFFA,FFFA,0003,0002,9490,94B6 $A79411 dw 0001, FFD3,FFF7,0004,0008,948B,94B6 $A7941F dw 0002, FFE4,FFEF,FFF4,0000,948B,94B6, FFD6,FFE9,FFE4,FFFA,948B,94B6 $A79439 dw 0002, FFEA,FFE7,FFF8,FFFB,948B,94B6, FFDD,FFDD,FFED,FFEF,948B,94B6 ;;; Kraid foot hitbox entry ;;; $A79453 dw 0001, FFFA,FFFA,0006,0006,948B,94B5 ;$A79461 dw 0001, FFFE,FFFD,0002,0003,948B,94B5 ;;; Kraid arm hitbox entry ;;; $A7946F dw 0001, FFC0,FFD0,FFE0,FFF0,948B,94B6 $A7947D dw 0001, FFC0,FFFC,0000,0004,948B,94B6 ;;; Kraid limbs Samus collision ;;; $A7948B 22 77 A4 A0 JSL $A0A477[$A0:A477] ; Normal Enemy Touch AI $A7948F 6B RTL ;;; Kraid arm Touch AI / Samus collision ;;; $A79490 AD A8 18 LDA $18A8 [$7E:18A8] ; Invincibility timer $A79493 F0 01 BEQ $01 [$9496] $A79495 6B RTL $A79496 20 A4 94 JSR $94A4 [$A7:94A4] ; Knock Samus back $A79499 A9 9B B8 LDA #$B89B ; Move forwards? $A7949C 8D A8 10 STA $10A8 [$7E:10A8] ;;; Kraid Touch AI ;;; $A7949F 22 97 A4 A0 JSL $A0A497[$A0:A497] ; Normal touch AI, but skips death animation $A794A3 6B RTL ;;; Knock Samus back ;;; $A794A4 A9 04 00 LDA #$0004 $A794A7 8D 58 0B STA $0B58 [$7E:0B58] $A794AA A9 F8 FF LDA #$FFF8 $A794AD 8D 5C 0B STA $0B5C [$7E:0B5C] $A794B0 60 RTS ;;; Normal Enemy Shot AI ;;; $A794B1 22 3D A6 A0 JSL $A0A63D[$A0:A63D] $A794B5 6B RTL ;;; Kraid arm projectile collision ;;; $A794B6 BB TYX $A794B7 20 CB B0 JSR $B0CB [$A7:B0CB] ; Spawn explosion enemy projectile $A794BA B9 04 0C LDA $0C04,y[$A7:F10D] ;\ $A794BD 09 10 00 ORA #$0010 ;} Kill beam $A794C0 99 04 0C STA $0C04,y[$A7:F10D] ;/ $A794C3 6B RTL ;;; Some Kraid arm OAM entries ;;; $A794E1 dx 0001, 81F2,F4,3126 $A794E8 dx 0002, 01F9,FB,3129, 01F1,FB,3128 $A794F4 dx 0001, 81F2,FD,312A $A794FB dx 0002, 01FA,07,3139, 01FA,FF,3138 $A79507 dx 0001, 81FD,FD,F126 $A7950E dx 0002, 01FF,FD,F129, 0007,FD,F128 $A7951A dx 0001, 81FD,F4,F12A ;$A79521 dx 0002, 01FC,F2,F139, 01FC,FA,F138 ;$A7952D dx 0002, 01FA,FC,F12E, 01F2,FC,B12E ;$A79539 dx 0001, 81F4,FC,B12C ;$A79540 dx 0002, 01FC,06,B13E, 01FC,FE,313E ;$A7954C dx 0001, 81FC,FC,312C ;$A79553 dx 0002, 0006,FC,712E, 01FE,FC,312E ;$A7955F dx 0001, 81FC,F4,712C ;$A79566 dx 0002, 01FD,FA,F13E, 01FD,F2,713E ;$A79572 dx 0001, 81F4,F4,312C ;$A79579 dx 0003, 81F4,F8,3104, 81E4,F8,3102, 81D4,F8,3100 ;$A7958A dx 0008, 01EC,00,311C, 01FC,F0,310F, 01F4,F0,310E, 01E4,E8,310D, 01DC,F8,310C, 81F4,F8,310A, 81E4,F0,3108, 81D4,E8,3106 ;$A795B4 dx 0008, 01FC,ED,313F, 01EC,FD,312F, 01EC,F5,311F, 01EC,DD,311E, 01E4,ED,311D, 81F4,F5,3124, 81EC,E5,3122, 81DC,DD,3120 ;;; Some Kraid foot OAM entries ;;; $A795DE dx 0008, 8020,1C,315A, 8020,14,314A, 8010,1C,3148, 01F8,0C,314C, 8010,0C,3146, 8000,0C,3144, 8008,FC,3142, 81F8,FC,3140 $A79608 dx 0008, 8012,28,3168, 800A,28,3167, 8010,18,3182, 8000,18,3180, 8008,08,3165, 81F8,08,3163, 8000,F8,3161, 81F8,F8,3160 $A79632 dx 0008, 81F9,2C,31AD, 81F8,1C,318D, 81F8,0C,316D, 81F8,FC,314D, 8001,2C,31AE, 8000,1C,318E, 8000,0C,316E, 8000,FC,314E $A7965C dx 0008, 81F0,2C,31A5, 81E8,2C,31A4, 81F8,1C,31CE, 81E8,1C,31CC, 8000,0C,317A, 81F0,0C,3188, 8000,FC,3186, 81F0,FC,3184 $A79686 dx 000C, 01D8,F4,31C3, 0018,F4,319A, 8000,F4,31C8, 81F0,F4,31C6, 81E0,F4,31C4, 81D0,FC,31A7, 8020,FC,31AB, 8020,F4,319B, 8010,FC,31DA, 8000,FC,31D8, 81F0,FC,31D6, 81E0,FC,31D4 ;$A796C4 dx 0001, 81F8,F8,21D0 ;$A796CB dx 0001, 01FC,FC,21D2 ;;; Some $0FAA instructions ;;; $A796D2 dw 000A,97C8,9788,FFFF, 000A,9AC8,9790,97B0, 000A,9DC8,9798,97B8, AF94, 0040,A0C8,97A0,97C0, 000A,9DC8,9798,97B8, 000A,9AC8,9790,97B0, 000A,97C8,9788,FFFF, FFFF $A7974A dw 0005,97C8,9788,FFFF, $A79752 dw 000A,9AC8,9790,97B0, 0005,97C8,9788,FFFF, FFFF $A79764 dw 0019,97C8,9788,FFFF, $A7976C dw 0019,9AC8,9790,97B0, 0019,9DC8,9798,97B8, AF9F, 0040,A0C8,97A0,97C0, FFFF ;;; ;;; $A79788 dw 0010, FF88, 0028, FFA8 $A79790 dw 0010, FF88, 0028, FF98 $A79798 dw 0010, FF80, 0028, FF90 $A797A0 dw 0010, FF80, 0028, FF88 ;$A797A8 dw 0000, 0000, 0000, 0000 $A797B0 dw 0006, FFA0, 0020, FFB0 $A797B8 dw 0000, FF98, 0020, FFB0 $A797C0 dw 0000, FF90, 0020, FFB0 ;;; Kraid lint tilemap ;;; { $A797C8 dw 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3C00, 3C01, 3C02, 3C03, 3C04, 3C05, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3C06, 3C07, 3C08, 3C09, 3C0A, 3C0B, 3C0C, 3C0D, 3C0E, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3C0F, 3C10, 3C11, 3C12, 3C13, 3C14, 3C15, 3C16, 3C17, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3C18, 3C19, 3C1A, 3C1B, 3C1C, 3C1D, 3C1E, 3C1F, 3C20, 3C21, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3C22, 3C23, 3C24, 3C25, 3C26, 3C27, 3C28, 3C29, 3C2A, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3C2B, 3C2C, 3C2D, 3C2E, 3C2F, 3C30, 3C31, 3C32, 3C33, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3C34, 3C35, 3C36, 3C37, 3C38, 3C39, 3C3A, 3C3B, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3C3C, 3C3D, 3C3E, 3C3F, 3C40, 3C41, 3C42, 3C43, 3C44, 3C45, 3C46, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3C47, 3C48, 3C49, 3C4A, 3C4B, 3C4C, 3C4D, 3C4E, 3C4F, 3C50, 3C51, 3C52, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3C53, 3C54, 3C55, 3C56, 3C57, 3C58, 3C59, 3C5A, 3C5B, 3C5C, 3C5D, 3C5E, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3C5F, 3C60, 3C61, 3D50, 3D50, 3C62, 3C63, 3C64, 3C65, 3C66, 3C67, 3C68, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3C69, 3C6A, 3D50, 3D50, 3D50, 3C6B, 3C6C, 3C6D, 3C6E, 3C6F, 3C70, 3C71, 3C72, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338 $A79AC8 dw 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3C73, 3C74, 3C75, 3C76, 3C77, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3C78, 3C79, 3C7A, 3C7B, 3C7C, 3C7D, 3C7E, 3C7F, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3C80, 3C81, 3C82, 3C83, 3C84, 3C85, 3C86, 3C87, 3C88, 3C89, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3C8A, 3C8B, 3C8C, 3C8D, 3C8E, 3C8F, 3C90, 3C91, 3C92, 3C93, 3C94, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3C95, 0338, 3C96, 3C97, 3C98, 3C99, 3C9A, 3C9B, 3C9C, 3C9D, 3C9E, 3C9F, 3CA0, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3CA1, 3CA2, 3CA3, 3CA4, 3CA5, 3CA6, 3CA7, 3CA8, 3CA9, 3CAA, 3CAB, 3CAC, 3CAD, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3CAE, 3CAF, 3CB0, 3CB1, 3CB2, 3CB3, 3CB4, 3C43, 3C44, 3C45, 3C46, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3CB5, 3CB6, 3CB7, 3CB8, 3C4C, 3C4D, 3C4E, 3C4F, 3C50, 3C51, 3C52, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3CB9, 3CBA, 3CBB, 3C56, 3C57, 3C58, 3C59, 3C5A, 3C5B, 3C5C, 3C5D, 3C5E, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3C5F, 3C60, 3C61, 3D50, 3D50, 3C62, 3C63, 3C64, 3C65, 3C66, 3C67, 3C68, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3C69, 3C6A, 3D50, 3D50, 3D50, 3C6B, 3C6C, 3C6D, 3C6E, 3C6F, 3C70, 3C71, 3C72, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338 $A79DC8 dw 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3CBC, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3CBD, 3CBE, 3CBF, 3CC0, 3CC1, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3CC2, 3CC3, 3CC4, 3CC5, 3CC6, 3CC7, 3CC8, 3CC9, 3CCA, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3CCB, 3CCC, 3CCD, 3CCE, 3CCF, 3CD0, 3CD1, 3CD2, 3CD3, 3CD4, 3D43, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3CD5, 3CD6, 3CD7, 3CD8, 3CD9, 3CDA, 3CDB, 3CDC, 3CDD, 3CDE, 3CDF, 3CE0, 3CE1, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3CE2, 3CE3, 3CE4, 3CE5, 3CE6, 3CE7, 3CE8, 3CE9, 3CEA, 3CEB, 3CEC, 3CED, 3CEE, 3CEF, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3CF0, 3CF1, 3CF2, 3CF3, 3CF4, 3CF5, 3CF6, 3CF7, 3CF8, 3CF9, 3CFA, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3CFB, 3CFC, 3CB7, 3CFD, 3CFE, 3C4D, 3C4E, 3C4F, 3C50, 3C51, 3CFF, 3D00, 3D44, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3CB9, 3CBA, 3CBB, 3C56, 3C57, 3C58, 3C59, 3C5A, 3C5B, 3C5C, 3C5D, 3C5E, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3C5F, 3C60, 3C61, 3D50, 3D50, 3C62, 3C63, 3C64, 3C65, 3C66, 3C67, 3C68, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3C69, 3C6A, 3D50, 3D50, 3D50, 3C6B, 3C6C, 3C6D, 3C6E, 3C6F, 3C70, 3C71, 3C72, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338 $A7A0C8 dw 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3D01, 3D02, 0338, 3D03, 3D04, 3D05, 3D06, 3D07, 3D08, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3D09, 3D0A, 3D0B, 3D0C, 3D0D, 3D0E, 3D0F, 3D10, 3D11, 3D12, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3D13, 3D14, 3D15, 3D16, 3D17, 3D18, 3D19, 3D1A, 3D1B, 3D1C, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3D1D, 3D1E, 3D1F, 3D20, 3D21, 3D22, 3D23, 3D24, 3D25, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3D26, 3D27, 3D28, 3D29, 3D2A, 3D2B, 3D2C, 3D2D, 3D2E, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3D2F, 3D30, 3CB7, 3D31, 3D32, 3D33, 3D34, 3D35, 3D36, 3C51, 3D37, 3D38, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3CB9, 3CBA, 3CBB, 3C56, 3C57, 3C58, 3C59, 3D39, 3D3A, 3D3B, 3D3C, 3D3D, 3D3E, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3C5F, 3C60, 3C61, 3D50, 3D50, 3C62, 3C63, 3C64, 3C65, 3C66, 3D3F, 3D40, 3D41, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 3C69, 3C6A, 3D50, 3D50, 3D50, 3C6B, 3C6C, 3C6D, 3C6E, 3C6F, 3C70, 3C71, 3D42, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338, 0338 } ;;; Kraid arm OAM entries ;;; $A7A47C dx 0001, 81F2,F4,2126 $A7A483 dx 0002, 01F9,FB,2129, 01F1,FB,2128 $A7A48F dx 0001, 81F2,FD,212A $A7A496 dx 0002, 01FA,07,2139, 01FA,FF,2138 $A7A4A2 dx 0001, 81FD,FD,E126 $A7A4A9 dx 0002, 01FF,FD,E129, 0007,FD,E128 $A7A4B5 dx 0001, 81FD,F4,E12A $A7A4BC dx 0002, 01FA,FC,E12E, 01F2,FC,A12E $A7A4C8 dx 0001, 81F4,FC,A12C $A7A4CF dx 0002, 01FC,06,A13E, 01FC,FE,213E $A7A4DB dx 0001, 81F4,F4,212C $A7A500 dx 0003, 81F4,F8,2104, 81E4,F8,2102, 81D4,F8,2100 $A7A511 dx 0008, 01EC,00,211C, 01FC,F0,210F, 01F4,F0,210E, 01E4,E8,210D, 01DC,F8,210C, 81F4,F8,210A, 81E4,F0,2108, 81D4,E8,2106 $A7A53B dx 0008, 01FC,ED,213F, 01EC,FD,212F, 01EC,F5,211F, 01EC,DD,211E, 01E4,ED,211D, 81F4,F5,2124, 81EC,E5,2122, 81DC,DD,2120 ;;; Kraid foot OAM / hitbox ;;; $A7A565 dw 0002, 0008,0028,A5A1,9453, 0000,0000,A577,9453 ;;; Kraid foot OAM entries ;;; $A7A577 dx 0008, 8020,1C,215A, 8020,14,214A, 8010,1C,2148, 01F8,0C,214C, 8010,0C,2146, 8000,0C,2144, 8008,FC,2142, 81F8,FC,2140 $A7A5A1 dx 000C, 01D8,F4,21C3, 0018,F4,219A, 8000,F4,21C8, 81F0,F4,21C6, 81E0,F4,21C4, 81D0,FC,21A7, 8020,FC,21AB, 8020,F4,219B, 8010,FC,21DA, 8000,FC,21D8, 81F0,FC,21D6, 81E0,FC,21D4 ;;; Kraid lint OAM entries ;;; $A7A5DF dx 0005, 0000,08,11C2, 81F0,00,11B0, 8000,F8,11A2, 81F0,F8,11A0, 8000,08,11A9 ;;; Kraid fingernail_A OAM entries ;;; $A7A617 dx 0002, C3F4,F8,212A, C3FC,F8,212C $A7A623 dx 0004, 01F9,FB,2138, 01F9,03,2139, 0002,F9,612E, 01FA,F9,212E $A7A639 dx 0002, C3F9,FB,E126, C3F9,F4,612C $A7A645 dx 0004, 01FC,FF,E129, 0004,FF,E128, 01F9,FE,E13E, 01F9,F6,613E $A7A65B dx 0002, C3FC,F8,E12A, C3F4,F8,212C $A7A667 dx 0004, 01FF,FD,E138, 01FF,F5,E139, 01FD,FF,E12E, 01F5,FF,A12E $A7A67D dx 0002, C3F7,F4,2126, C3F7,FC,A12C $A7A689 dx 0004, 01FD,F9,2129, 01F5,F9,2128, 01FF,03,A13E, 01FF,FB,213E $A7A69F db 0C, 00, C1, C3, D8, 26, 33, CE, C3, E3, 2C, 33, C2, C3, D2, 26, 33, CF, C3, DD, 2C, 33, FF, 01, EF, 0F, 33, F7, 01, EF, 0E, 33, EF, 01, FF, 1C, 33, DF, 01, F7, 0C, 33, E7, 01, E7, 0D, 33, F7, C3, F7, 0A, 33, E7, C3, EF, 08, 33, D7, C3, E7, 06, 33, 0B, 00, BD, 01, FE, 28, 33, C5, 01, FE, 29, 33, D4, 01, FE, 2E, 73, CC, 01, FE, 2E, 33, B9, 01, F9, 28, 33, C1, 01, F9, 29, 33, D0, 01, F9, 2E, 73, C8, 01, F9, 2E, 33, F4, C3, F8, 04, 33, E4, C3, F8, 02, 33, D4, C3, F8, 00, 33 ;;; 200h bytes of area graphics (VRAM $3F00) ;;; $A7A716 db 3F, FF, 4C, F3, 5F, E0, CB, F0, B9, C0, 8F, F0, B6, C9, B1, CE, 00, FF, 3F, C0, 39, C6, 3C, C3, 76, 89, 71, 8E, 7F, 80, 7F, 80, FF, FF, 3F, FF, 8F, 7F, 4E, BF, E7, 1F, EF, 1F, CF, 3F, 1F, FF, 03, FC, FB, 04, FF, 00, FF, 00, FE, 01, FD, 02, F3, 0C, E8, 17, 07, FF, 8F, FF, FE, FF, FE, FF, FF, FF, FF, FF, F6, FF, C3, FF, FE, 01, FE, 01, FD, 02, FD, 02, FF, 00, BB, 44, 0F, F0, 3F, C0, FF, F9, 07, FE, 13, EF, 29, D7, BD, C3, D5, EB, E1, FF, 61, FF, 06, F9, F9, 06, FC, 03, FE, 01, 7E, 81, BE, 41, DE, 21, DE, 21, 8D, F2, 0B, F4, E0, FF, 0F, FF, E7, 1F, 5B, A7, B4, 4B, FC, 03, 7F, 80, 7F, 80, 1F, E0, F0, 0F, FE, 01, FF, 00, FF, 00, CF, 30, 3E, FF, 3E, FD, 7F, F8, FB, F4, F9, F6, EF, F0, E5, FA, E3, FC, D1, 2E, E3, 1C, C7, 38, CF, 30, 4E, B1, 3E, C1, 9F, 60, DF, 20, E1, 1F, EC, 13, 7A, 85, 9E, 01, 99, 06, FF, 00, FE, 01, F8, 87, FF, 00, FF, 00, 9F, 60, 6F, D0, 67, 98, 07, F8, 8F, 70, FF, 00, E1, FF, A3, FF, FC, FF, 70, FF, 60, FF, 66, F9, 43, FC, 4F, F0, DE, 21, FC, 03, E3, 1C, EF, 10, FF, 00, DF, 20, FF, 00, FD, 02, 4E, 81, CE, 01, F8, 07, B4, 4B, B1, 4F, 23, DF, 02, FF, 0F, FF, B7, 68, B7, 48, CF, 30, FF, 00, FE, 01, FD, 02, FD, 02, F1, 0E, 66, F9, 71, FE, 70, FF, FC, FF, 87, FF, 03, FF, 1D, C3, 3E, C1, FF, 00, EF, 10, CF, 30, CB, 34, FF, 00, FF, 00, EF, 10, CF, 30, EC, 13, 68, 97, 41, BF, 03, FF, 8F, FF, FE, FF, F8, FF, F1, FE, FF, 00, FF, 00, FF, 00, FE, 01, F7, 08, FF, 00, FF, 00, FF, 00, CF, F0, EF, F0, E3, FC, E2, FD, F1, FE, 02, FF, EA, 17, 9D, 03, FC, 03, 9E, 61, 1F, E0, 1F, E0, 8F, 70, FD, 02, FD, 02, FE, 41, 3F, FF, FF, FF, C7, F9, 9F, E0, 9F, E0, 8E, F1, C3, FF, FF, 7F, C1, 3E, 01, FE, 3E, C1, 7F, 80, 77, 88, 7F, 80, 3C, C3, 80, 7F, 74, 8B, B9, C7, C1, FF, FB, FF, FF, FF, 9F, FF, FE, FF, 3C, FF, FF, 00, FF, 00, FF, 00, E7, 18, 27, D8, 6F, 90, 0F, F0, DF, 20, F3, FC, F2, FD, 79, FE, F9, FF, F8, FF, FC, FF, 3F, FF, 0F, FD, DF, 20, DF, 20, C7, 38, 07, F8, C7, 38, E3, 1C, F8, 07, F2, 0D, 9D, 03, F5, 0B, B9, 47, D3, 2F, A7, DF, 0F, FF, 1F, F9, FF, EF, 6E, 91, 8E, 71, FE, 01, FC, 03, F8, 07, F0, 0F, E6, 19, 10, EF ;;; Kraid lint function timers ;;; $A7A916 dw 0120, 00A0, 0040 ;;; Kraid Y speed ;;; $A7A91C dw 0003 ;;; ;$A7A91E dw 0005 ;;; Kraid X speed ;;; $A7A920 dw 0003 ;;; ;$A7A922 dw 0004 ;;; ;$A7A924 dw 0110 ;;; Kraid arm X (sub)speed ;;; $A7A926 dw 8000, 0003 ;;; Check Kraid-dead flag ;;; ; Returns A=0000 if clear, A=0001 if set $A7A92A C2 30 REP #$30 $A7A92C DA PHX $A7A92D AE 9F 07 LDX $079F [$7E:079F] $A7A930 BF 28 D8 7E LDA $7ED828,x[$7E:D829] $A7A934 89 01 00 BIT #$0001 $A7A937 F0 05 BEQ $05 [$A93E] $A7A939 FA PLX $A7A93A A9 01 00 LDA #$0001 $A7A93D 60 RTS $A7A93E FA PLX $A7A93F A9 00 00 LDA #$0000 $A7A942 60 RTS ;;; Set enemy properties to dead ;;; $A7A943 AE 54 0E LDX $0E54 [$7E:0E54] $A7A946 BD 86 0F LDA $0F86,x[$7E:0FC6] $A7A949 09 00 07 ORA #$0700 $A7A94C 29 FF F7 AND #$F7FF ;\ $A7A94F 29 FF DF AND #$DFFF ;} ~headdesk~, AND 57FFh, bit-clears A800h $A7A952 29 FF 7F AND #$7FFF ;/ $A7A955 9D 86 0F STA $0F86,x[$7E:0FC6] $A7A958 60 RTS ;;; Kraid Initiation AI ;;; { ; Good thing the BG1 and BG2 character bases are both $0000 ; [$5D] wasn't shifted correctly, it should be shifted left by 13? $A7A959 E2 20 SEP #$20 $A7A95B A9 A7 LDA #$A7 ;\ $A7A95D 8D 06 06 STA $0606 [$7E:0606] ;| $A7A960 A9 A7 LDA #$A7 ;| $A7A962 8D 03 06 STA $0603 [$7E:0603] ;| $A7A965 C2 20 REP #$20 ;} $0601 = $A7C325 (is this ever executed?) (done) $A7A967 A9 4E C2 LDA #$C24E ;} $0604 = $A7C24E (is this ever executed?) (done) $A7A96A 8D 04 06 STA $0604 [$7E:0604] ;| $A7A96D A9 25 C3 LDA #$C325 ;| $A7A970 8D 01 06 STA $0601 [$7E:0601] ;/ $A7A973 20 2C A9 JSR $A92C [$A7:A92C] ;\ $A7A976 D0 03 BNE $03 [$A97B] ;} If Kraid is dead: $A7A978 4C DC A9 JMP $A9DC [$A7:A9DC] ;/ $A7A97B A2 C0 00 LDX #$00C0 ;\ $A7A97E A0 00 00 LDY #$0000 ;| ;| $A7A981 B9 C7 86 LDA $86C7,y[$A7:86C7] ;| $A7A984 9F 00 C2 7E STA $7EC200,x[$7E:C2C0] ;| $A7A988 E8 INX ;} Write target colour palette line 6 $A7A989 E8 INX ;| $A7A98A C8 INY ;| $A7A98B C8 INY ;| $A7A98C C0 20 00 CPY #$0020 ;| $A7A98F 30 F0 BMI $F0 [$A981] ;/ $A7A991 A2 FE 07 LDX #$07FE ;\ $A7A994 A9 38 03 LDA #$0338 ;| ;| $A7A997 9F 00 20 7E STA $7E2000,x[$7E:27FE] ;} $7E2000..27FF = 0338h $A7A99B CA DEX ;| $A7A99C CA DEX ;| $A7A99D 10 F8 BPL $F8 [$A997] ;/ $A7A99F A9 00 00 LDA #$0000 ;\ $A7A9A2 8F 04 78 7E STA $7E7804[$7E:7804] ;} $7E7804 = 0 $A7A9A6 AE 30 03 LDX $0330 [$7E:0330] ;\ $A7A9A9 A9 00 02 LDA #$0200 ;| $A7A9AC 95 D0 STA $D0,x [$7E:00D0] ;| $A7A9AE A9 16 A7 LDA #$A716 ;| $A7A9B1 95 D2 STA $D2,x [$7E:00D2] ;| $A7A9B3 E2 20 SEP #$20 ;| $A7A9B5 A9 A7 LDA #$A7 ;| $A7A9B7 95 D4 STA $D4,x [$7E:00D4] ;| $A7A9B9 C2 20 REP #$20 ;| $A7A9BB A5 5D LDA $5D [$7E:005D] ;} $A7A716..A915 -> VRAM[BG1 character base + 3F00h] $A7A9BD 29 0F 00 AND #$000F ;| $A7A9C0 EB XBA ;| $A7A9C1 18 CLC ;| $A7A9C2 69 00 3F ADC #$3F00 ;| $A7A9C5 95 D5 STA $D5,x [$7E:00D5] ;| $A7A9C7 8A TXA ;| $A7A9C8 18 CLC ;| $A7A9C9 69 07 00 ADC #$0007 ;| $A7A9CC 8D 30 03 STA $0330 [$7E:0330] ;/ $A7A9CF 20 68 C1 JSR $C168 [$A7:C168] ; Clear ceiling $A7A9D2 20 71 C1 JSR $C171 [$A7:C171] ; Clear spikes $A7A9D5 A9 15 C7 LDA #$C715 ;\ $A7A9D8 8D A8 0F STA $0FA8 [$7E:0FA8] ;} Kraid function = fade in regular background (done) $A7A9DB 6B RTL ; Kraid is not dead: $A7A9DC E2 20 SEP #$20 $A7A9DE A9 43 LDA #$43 ;\ $A7A9E0 85 59 STA $59 [$7E:0059] ;} BG2 tilemap base = $4000, enable BG2 horizontal and vertical mirroring $A7A9E2 C2 20 REP #$20 $A7A9E4 A9 02 00 LDA #$0002 ;\ $A7A9E7 8D 41 09 STA $0941 [$7E:0941] ;} $0941 = 0002 $A7A9EA A9 00 00 LDA #$0000 ;\ $A7A9ED 8F 20 CD 7E STA $7ECD20[$7E:CD20] ;| $A7A9F1 A9 01 00 LDA #$0001 ;} Lock camera to bottom-left screen $A7A9F4 8F 22 CD 7E STA $7ECD22[$7E:CD22] ;/ $A7A9F8 A9 44 01 LDA #$0144 ;\ $A7A9FB 8F 08 78 7E STA $7E7808[$7E:7808] ;} $7E7808 = 0144h $A7A9FF A2 00 00 LDX #$0000 ;\ $A7AA02 AD 8C 0F LDA $0F8C [$7E:0F8C] ;| $A7AA05 4A LSR A ;| $A7AA06 4A LSR A ;| $A7AA07 4A LSR A ;| $A7AA08 85 12 STA $12 [$7E:0012] ;| ;} $7E780C[n] = Kraid health / 8 * (n+1) $A7AA0A 9F 0C 78 7E STA $7E780C,x[$7E:780C] ;} n = 0..7 $A7AA0E 18 CLC ;| $A7AA0F 65 12 ADC $12 [$7E:0012] ;| $A7AA11 E8 INX ;| $A7AA12 E8 INX ;| $A7AA13 E0 10 00 CPX #$0010 ;| $A7AA16 30 F2 BMI $F2 [$AA0A] ;/ $A7AA18 A9 FF DF LDA #$DFFF ;\ $A7AA1B 85 12 STA $12 [$7E:0012] ;} $12 = DFFFh (tile priority anti-mask) $A7AA1D AE 54 0E LDX $0E54 [$7E:0E54] ;} Set up Kraid graphics with the tile priority cleared (done) $A7AA20 20 C6 AA JSR $AAC6 [$A7:AAC6] ;/ $A7AA23 AD 8C 0F LDA $0F8C [$7E:0F8C] ;\ $A7AA26 4A LSR A ;| $A7AA27 4A LSR A ;| $A7AA28 8F 20 78 7E STA $7E7820[$7E:7820] ;| $A7AA2C 18 CLC ;| $A7AA2D 6F 20 78 7E ADC $7E7820[$7E:7820] ;| $A7AA31 8F 22 78 7E STA $7E7822[$7E:7822] ;} $7E7820[n] = Kraid health / 4 * (n+1) $A7AA35 18 CLC ;} n = 0..3 $A7AA36 6F 20 78 7E ADC $7E7820[$7E:7820] ;| $A7AA3A 8F 24 78 7E STA $7E7824[$7E:7824] ;| $A7AA3E 18 CLC ;| $A7AA3F 6F 20 78 7E ADC $7E7820[$7E:7820] ;| $A7AA43 8F 26 78 7E STA $7E7826[$7E:7826] ;/ $A7AA47 A9 00 00 LDA #$0000 ;\ $A7AA4A 8F 3E 78 7E STA $7E783E[$7E:783E] ;} $7E783E = 0000 $A7AA4E A9 B0 00 LDA #$00B0 ;\ $A7AA51 8D 7A 0F STA $0F7A [$7E:0F7A] ;} Kraid X position = 00B0h $A7AA54 A9 50 02 LDA #$0250 ;\ $A7AA57 8D 7E 0F STA $0F7E [$7E:0F7E] ;} Kraid Y position = 0250h $A7AA5A AD 86 0F LDA $0F86 [$7E:0F86] ;\ $A7AA5D 09 00 04 ORA #$0400 ;} Set Kraid to ignore Samus/projectiles $A7AA60 8D 86 0F STA $0F86 [$7E:0F86] ;/ $A7AA63 A9 65 C8 LDA #$C865 ;\ $A7AA66 8D A8 0F STA $0FA8 [$7E:0FA8] ;} Kraid function = restrict Samus X position to first screen; decrement enemy function timer (done) $A7AA69 A9 2C 01 LDA #$012C ;\ $A7AA6C 8D B2 0F STA $0FB2 [$7E:0FB2] ;} Kraid function timer = 300 $A7AA6F A9 6B C8 LDA #$C86B ;\ $A7AA72 8F 00 78 7E STA $7E7800[$7E:7800] ;} Kraid next function = $C86B (done) $A7AA76 A9 40 00 LDA #$0040 ;\ $A7AA79 8D AC 0F STA $0FAC [$7E:0FAC] ;} $0FAC = 40h $A7AA7C 22 E2 A7 90 JSL $90A7E2[$90:A7E2] ; Disable minimap and set entire room as explored $A7AA80 A2 3E 00 LDX #$003E ;\ $A7AA83 A9 38 03 LDA #$0338 ;| ;| $A7AA86 9F C0 2F 7E STA $7E2FC0,x[$7E:2FFE] ;} $7E2FC0..FF = 0338h $A7AA8A CA DEX ;| $A7AA8B CA DEX ;| $A7AA8C 10 F8 BPL $F8 [$AA86] ;/ $A7AA8E A9 05 00 LDA #$0005 ;\ $A7AA91 8D 3E 18 STA $183E [$7E:183E] ;} Set screen shaking to 5 $A7AA94 A2 00 00 LDX #$0000 ;\ ;| $A7AA97 BD A6 AA LDA $AAA6,x[$A7:AAA6] ;| $A7AA9A 9F 60 C3 7E STA $7EC360,x[$7E:C360] ;| $A7AA9E E8 INX ;} Write target colour palette line 3 $A7AA9F E8 INX ;| $A7AAA0 E0 20 00 CPX #$0020 ;| $A7AAA3 30 F2 BMI $F2 [$AA97] ;/ $A7AAA5 6B RTL ; Target enemy colour palette line 3 $A7AAA6 dw 0000, 0000, 0000, 0000, 0000, 0DF6, 0D92, 0CEC, 0CA9, 0000, 0000, 0000, 0000, 0000, 0000, 0000 } ;;; Set up Kraid graphics with the tile priority cleared ;;; { ; $7E2000..27FF = Kraid BGi ; $7E2800..2DFF = Kraid ass BGi $A7AAC6 E2 20 SEP #$20 $A7AAC8 A9 38 LDA #$38 ;\ $A7AACA 8F 47 00 00 STA $000047[$7E:0047] ;| $A7AACE A9 FA LDA #$FA ;| $A7AAD0 8F 48 00 00 STA $000048[$7E:0048] ;| $A7AAD4 A9 B9 LDA #$B9 ;| $A7AAD6 8F 49 00 00 STA $000049[$7E:0049] ;} Decompress $B9FA38 to $7E4000 (Kraid BGi) $A7AADA A9 00 LDA #$00 ;| $A7AADC 8F 4C 00 00 STA $00004C[$7E:004C] ;| $A7AAE0 A9 40 LDA #$40 ;| $A7AAE2 8F 4D 00 00 STA $00004D[$7E:004D] ;| $A7AAE6 22 19 B1 80 JSL $80B119[$80:B119] ;/ $A7AAEA A9 3E LDA #$3E ;\ $A7AAEC 8F 47 00 00 STA $000047[$7E:0047] ;| $A7AAF0 A9 FE LDA #$FE ;| $A7AAF2 8F 48 00 00 STA $000048[$7E:0048] ;| $A7AAF6 A9 B9 LDA #$B9 ;| $A7AAF8 8F 49 00 00 STA $000049[$7E:0049] ;} Decompress $B9FE3E to $7E2000 (Kraid ass BGi) $A7AAFC A9 00 LDA #$00 ;| $A7AAFE 8F 4C 00 00 STA $00004C[$7E:004C] ;| $A7AB02 A9 20 LDA #$20 ;| $A7AB04 8F 4D 00 00 STA $00004D[$7E:004D] ;| $A7AB08 22 19 B1 80 JSL $80B119[$80:B119] ;/ $A7AB0C C2 20 REP #$20 $A7AB0E A9 00 00 LDA #$0000 ;\ $A7AB11 8F 2A 78 7E STA $7E782A[$7E:782A] ;} Clear $7E782A..2D $A7AB15 8F 2C 78 7E STA $7E782C[$7E:782C] ;/ $A7AB19 A2 00 00 LDX #$0000 $A7AB1C BF 00 20 7E LDA $7E2000,x[$7E:2000] ;\ $A7AB20 29 FF DF AND #$DFFF ;| $A7AB23 9F 00 28 7E STA $7E2800,x[$7E:2800] ;| $A7AB27 E8 INX ;} $7E2000..25FF -> DFFFh mask -> $7E2800..2DFF $A7AB28 E8 INX ;} DFFFh mask clears the tile priority $A7AB29 E0 00 06 CPX #$0600 ;| $A7AB2C 30 EE BMI $EE [$AB1C] ;/ $A7AB2E A2 00 00 LDX #$0000 $A7AB31 BF 00 40 7E LDA $7E4000,x[$7E:4000] ;\ $A7AB35 25 12 AND $12 [$7E:0012] ;| $A7AB37 9F 00 20 7E STA $7E2000,x[$7E:2000] ;| $A7AB3B E8 INX ;} $7E4000..47FF -> [$12] mask -> $7E2000..27FF $A7AB3C E8 INX ;} $12 seems to always be DFFFh $A7AB3D E0 00 08 CPX #$0800 ;| $A7AB40 30 EF BMI $EF [$AB31] ;/ $A7AB42 60 RTS } ;;; Kraid arm Initiation AI ;;; { $A7AB43 20 2C A9 JSR $A92C [$A7:A92C] ;\ $A7AB46 D0 1C BNE $1C [$AB64] ;} If Kraid not dead: $A7AB48 AD 96 0F LDA $0F96 [$7E:0F96] ;\ $A7AB4B 8D D6 0F STA $0FD6 [$7E:0FD6] ;} Kraid arm palette = Kraid palette $A7AB4E A9 2D BA LDA #$BA2D ;\ $A7AB51 8D E8 0F STA $0FE8 [$7E:0FE8] ;} Kraid arm function = RTS $A7AB54 A9 A4 8A LDA #$8AA4 ;\ $A7AB57 8D D2 0F STA $0FD2 [$7E:0FD2] ;} Kraid arm instruction = $8AA4 (done) $A7AB5A A9 01 00 LDA #$0001 ;\ $A7AB5D 8D D4 0F STA $0FD4 [$7E:0FD4] ;} Kraid arm instruction timer = 1 $A7AB60 9C EA 0F STZ $0FEA [$7E:0FEA] ; Kraid arm $0FAA = 0 $A7AB63 6B RTL $A7AB64 20 43 A9 JSR $A943 [$A7:A943] ; Else (Kraid dead): Set enemy properties to dead $A7AB67 6B RTL } ;;; Kraid top lint Initiation AI ;;; { $A7AB68 20 2C A9 JSR $A92C [$A7:A92C] ;\ $A7AB6B D0 2B BNE $2B [$AB98] ;} If Kraid not dead: $A7AB6D AD 96 0F LDA $0F96 [$7E:0F96] ;\ $A7AB70 8D 16 10 STA $1016 [$7E:1016] ;} Kraid top lint palette = Kraid palette $A7AB73 A9 FF 7F LDA #$7FFF ;\ $A7AB76 8D 14 10 STA $1014 [$7E:1014] ;} Kraid top lint instruction delay = 7FFFh $A7AB79 A9 FE 8A LDA #$8AFE ;\ $A7AB7C 8D 12 10 STA $1012 [$7E:1012] ;} Kraid top lint instruction = $8AFE (done) $A7AB7F A9 DF A5 LDA #$A5DF ;\ $A7AB82 8D 0E 10 STA $100E [$7E:100E] ;} Kraid top lint OAM / hitbox = $A5DF (done) $A7AB85 A9 31 B8 LDA #$B831 ;\ $A7AB88 8D 28 10 STA $1028 [$7E:1028] ;} Kraid top lint function = RTL $A7AB8B A9 FF 7F LDA #$7FFF ;\ $A7AB8E 8D 32 10 STA $1032 [$7E:1032] ;} Kraid top lint function timer = 7FFFh $A7AB91 A9 00 00 LDA #$0000 ;\ $A7AB94 8D 2C 10 STA $102C [$7E:102C] ;} Kraid top lint $0FAC = 0 $A7AB97 6B RTL $A7AB98 20 43 A9 JSR $A943 [$A7:A943] ; Else (Kraid dead): Set enemy properties to dead $A7AB9B 6B RTL } ;;; Kraid middle lint Initiation AI ;;; { $A7AB9C 20 2C A9 JSR $A92C [$A7:A92C] ;\ $A7AB9F D0 25 BNE $25 [$ABC6] ;} If Kraid not dead: $A7ABA1 AD 96 0F LDA $0F96 [$7E:0F96] ;\ $A7ABA4 8D 56 10 STA $1056 [$7E:1056] ;} Kraid middle lint palette = Kraid palette $A7ABA7 A9 FF 7F LDA #$7FFF ;\ $A7ABAA 8D 54 10 STA $1054 [$7E:1054] ;} Kraid middle lint instruction delay = 7FFFh $A7ABAD A9 FE 8A LDA #$8AFE ;\ $A7ABB0 8D 52 10 STA $1052 [$7E:1052] ;} Kraid middle lint instruction = $8AFE (done) $A7ABB3 A9 DF A5 LDA #$A5DF ;\ $A7ABB6 8D 4E 10 STA $104E [$7E:104E] ;} Kraid middle lint OAM / hitbox = $A5DF (done) $A7ABB9 A9 31 B8 LDA #$B831 ;\ $A7ABBC 8D 68 10 STA $1068 [$7E:1068] ;} Kraid middle lint function = RTL $A7ABBF A9 F0 FF LDA #$FFF0 ;\ $A7ABC2 8D 6C 10 STA $106C [$7E:106C] ;} Kraid middle lint $0FAC = 7FFFh $A7ABC5 6B RTL $A7ABC6 20 43 A9 JSR $A943 [$A7:A943] ; Else (Kraid dead): Set enemy properties to dead $A7ABC9 6B RTL } ;;; Kraid bottom lint Initiation AI ;;; { $A7ABCA 20 2C A9 JSR $A92C [$A7:A92C] ;\ $A7ABCD D0 25 BNE $25 [$ABF4] ;} If Kraid not dead: $A7ABCF AD 96 0F LDA $0F96 [$7E:0F96] ;\ $A7ABD2 8D 96 10 STA $1096 [$7E:1096] ;} Kraid bottom lint palette = Kraid palette $A7ABD5 A9 FF 7F LDA #$7FFF ;\ $A7ABD8 8D 94 10 STA $1094 [$7E:1094] ;} Kraid bottom lint instruction delay = 7FFFh $A7ABDB A9 FE 8A LDA #$8AFE ;\ $A7ABDE 8D 92 10 STA $1092 [$7E:1092] ;} Kraid bottom lint instruction = $8AFE (done) $A7ABE1 A9 DF A5 LDA #$A5DF ;\ $A7ABE4 8D 8E 10 STA $108E [$7E:108E] ;} Kraid bottom lint OAM / hitbox = $A5DF (done) $A7ABE7 A9 31 B8 LDA #$B831 ;\ $A7ABEA 8D A8 10 STA $10A8 [$7E:10A8] ;} Kraid bottom lint function = RTL $A7ABED A9 F0 FF LDA #$FFF0 ;\ $A7ABF0 8D AC 10 STA $10AC [$7E:10AC] ;} Kraid bottom lint $0FAC = 7FFFh $A7ABF3 6B RTL $A7ABF4 20 43 A9 JSR $A943 [$A7:A943] ; Else (Kraid dead): Set enemy properties to dead $A7ABF7 6B RTL } ;;; Kraid foot Initiation AI ;;; { $A7ABF8 20 2C A9 JSR $A92C [$A7:A92C] ;\ $A7ABFB D0 20 BNE $20 [$AC1D] ;} If Kraid not dead: $A7ABFD AD 96 0F LDA $0F96 [$7E:0F96] ;\ $A7AC00 8D D6 10 STA $10D6 [$7E:10D6] ;} Kraid foot palette = Kraid palette $A7AC03 A9 E7 86 LDA #$86E7 ;\ $A7AC06 8D D2 10 STA $10D2 [$7E:10D2] ;} Kraid foot instruction = $86E7 (done) $A7AC09 A9 01 00 LDA #$0001 ;\ $A7AC0C 8D D4 10 STA $10D4 [$7E:10D4] ;} Kraid foot instruction timer = 1 $A7AC0F A9 2D BA LDA #$BA2D ;\ $A7AC12 8D E8 10 STA $10E8 [$7E:10E8] ;} Kraid foot function = RTL $A7AC15 A9 00 00 LDA #$0000 ;\ $A7AC18 8F 40 79 7E STA $7E7940[$7E:7940] ;} Kraid foot next function = 0000 $A7AC1C 6B RTL $A7AC1D 20 43 A9 JSR $A943 [$A7:A943] ; Else (Kraid dead): Set enemy properties to dead $A7AC20 6B RTL } ;;; Kraid graph AI ;;; { $A7AC21 20 AA AF JSR $AFAA [$A7:AFAA] ; Kraid's mouth projectile collision detection $A7AC24 20 37 B3 JSR $B337 [$A7:B337] ; Kraid palette handling $A7AC27 20 81 B1 JSR $B181 [$A7:B181] ; Kraid collision detection - projectiles $A7AC2A 20 F3 B0 JSR $B0F3 [$A7:B0F3] ; Kraid collision detection - Samus $A7AC2D AE 54 0E LDX $0E54 [$7E:0E54] $A7AC30 A5 B1 LDA $B1 [$7E:00B1] ;\ $A7AC32 38 SEC ;| $A7AC33 ED 1D 09 SBC $091D [$7E:091D] ;| $A7AC36 ED 7A 0F SBC $0F7A [$7E:0F7A] ;} BG2 X scroll offset = BG1 X scroll offset - Kraid right boundary $A7AC39 6D 82 0F ADC $0F82 [$7E:0F82] ;| $A7AC3C 85 B5 STA $B5 [$7E:00B5] ;/ $A7AC3E AD 15 09 LDA $0915 [$7E:0915] ;\ $A7AC41 38 SEC ;| $A7AC42 ED 7E 0F SBC $0F7E [$7E:0F7E] ;} BG2 Y scroll offset = BG1 Y position - Kraid Y position + 98h $A7AC45 69 98 00 ADC #$0098 ;| $A7AC48 85 B7 STA $B7 [$7E:00B7] ;/ $A7AC4A 6C A8 0F JMP ($0FA8)[$A7:C865] ; Execute Kraid instruction } ;;; Break ceiling into platform ;;; { $A7AC4D AD B6 05 LDA $05B6 [$7E:05B6] ;\ $A7AC50 29 07 00 AND #$0007 ;} If frame counter is multiple of 8: $A7AC53 D0 03 BNE $03 [$AC58] ;/ $A7AC55 20 95 C9 JSR $C995 [$7E:C995] ; Spawn random earthquake projectile $A7AC58 A0 01 00 LDY #$0001 ;\ $A7AC5B AD 7E 0F LDA $0F7E [$7E:0F7E] ;| $A7AC5E 89 02 00 BIT #$0002 ;| $A7AC61 F0 03 BEQ $03 [$AC66] ;} $12 = 1 if Kraid Y position / 2 is odd, else $12 = -1: $A7AC63 A0 FF FF LDY #$FFFF ;| ;| $A7AC66 84 12 STY $12 [$7E:0012] ;/ $A7AC68 AD 7A 0F LDA $0F7A [$7E:0F7A] ;\ $A7AC6B 18 CLC ;| $A7AC6C 65 12 ADC $12 [$7E:0012] ;} Kraid X position += $12 $A7AC6E 8D 7A 0F STA $0F7A [$7E:0F7A] ;/ $A7AC71 CE 7E 0F DEC $0F7E [$7E:0F7E] ; Kraid Y position -= 1 $A7AC74 AD 7E 0F LDA $0F7E [$7E:0F7E] ;\ $A7AC77 29 03 00 AND #$0003 ;} If Kraid Y position is multiple of 4: $A7AC7A D0 28 BNE $28 [$ACA4] ;/ $A7AC7C AE B2 0F LDX $0FB2 [$7E:0FB2] ;\ $A7AC7F E0 12 00 CPX #$0012 ;} If [$0FB2] < 18: $A7AC82 10 20 BPL $20 [$ACA4] ;/ $A7AC84 BD B3 AC LDA $ACB3,x[$A7:ACB3] ;\ $A7AC87 A0 53 9C LDY #$9C53 ;| $A7AC8A AE 54 0E LDX $0E54 [$7E:0E54] ;} Spawn ER projectile $9C53 with parameter [$ACB3 + [$0FB2]] $A7AC8D 22 27 80 86 JSL $868027[$86:8027] ;/ $A7AC91 AE B2 0F LDX $0FB2 [$7E:0FB2] ;\ $A7AC94 BD C5 AC LDA $ACC5,x[$A7:ACC5] ;| $A7AC97 85 12 STA $12 [$7E:0012] ;} Execute [$ACC5 + [$0FB2]] $A7AC99 6C 12 00 JMP ($0012) ;/ $A7AC9C AE B2 0F LDX $0FB2 [$7E:0FB2] ;\ $A7AC9F E8 INX ;| $A7ACA0 E8 INX ;} $0FB2 += 2 $A7ACA1 8E B2 0F STX $0FB2 [$7E:0FB2] ;/ $A7ACA4 AD 7E 0F LDA $0F7E [$7E:0F7E] ;\ $A7ACA7 C9 28 01 CMP #$0128 ;} If Kraid Y position < 128h $A7ACAA 10 06 BPL $06 [$ACB2] ;/ $A7ACAC A9 3A AD LDA #$AD3A ;\ $A7ACAF 8D A8 0F STA $0FA8 [$7E:0FA8] ;} Kraid function = $AD3A $A7ACB2 6B RTL $A7ACB3 dw 0068, 00D8, 0028, 00A8, 0058, 00C8, 0038, 00B8, 0048 $A7ACC5 dw AD03, AD2F, ACD7, AD0E, ACF8, AD24, ACE2, AD19, ACED ;;; The following PLM spawns are for the ceiling crumbling into the platform $A7ACD7 22 D7 83 84 JSL $8483D7[$84:83D7] $A7ACDB dx 02, 12, B7A3 $A7ACDF 4C 9C AC JMP $AC9C [$A7:AC9C] $A7ACE2 22 D7 83 84 JSL $8483D7[$84:83D7] $A7ACE6 dx 03, 12, B7AB $A7ACEA 4C 9C AC JMP $AC9C [$A7:AC9C] $A7ACED 22 D7 83 84 JSL $8483D7[$84:83D7] $A7ACF1 dx 04, 12, B7B3 $A7ACF5 4C 9C AC JMP $AC9C [$A7:AC9C] $A7ACF8 22 D7 83 84 JSL $8483D7[$84:83D7] $A7ACFC dx 05, 12, B7AB $A7AD00 4C 9C AC JMP $AC9C [$A7:AC9C] $A7AD03 22 D7 83 84 JSL $8483D7[$84:83D7] $A7AD07 dx 06, 12, B7B3 $A7AD0B 4C 9C AC JMP $AC9C [$A7:AC9C] $A7AD0E 22 D7 83 84 JSL $8483D7[$84:83D7] $A7AD12 dx 0A, 12, B7B3 $A7AD16 4C 9C AC JMP $AC9C [$A7:AC9C] $A7AD19 22 D7 83 84 JSL $8483D7[$84:83D7] $A7AD1D dx 0B, 12, B7AB $A7AD21 4C 9C AC JMP $AC9C [$A7:AC9C] $A7AD24 22 D7 83 84 JSL $8483D7[$84:83D7] $A7AD28 dx 0C, 12, B7B3 $A7AD2C 4C 9C AC JMP $AC9C [$A7:AC9C] $A7AD2F 22 D7 83 84 JSL $8483D7[$84:83D7] $A7AD23 dx 0D, 12, B7AB $A7AD37 4C 9C AC JMP $AC9C [$A7:AC9C] ;;; $A7AD3A A2 00 00 LDX #$0000 ;\ ;| $A7AD3D BF 00 20 7E LDA $7E2000,x[$7E:2000] ;| $A7AD41 09 00 20 ORA #$2000 ;| $A7AD44 9F 00 20 7E STA $7E2000,x[$7E:2000] ;} $7E2000..2FFF |= 2000h $A7AD48 E8 INX ;| $A7AD49 E8 INX ;| $A7AD4A E0 00 10 CPX #$1000 ;| $A7AD4D 30 EE BMI $EE [$AD3D] ;/ $A7AD4F AD C6 0F LDA $0FC6 [$7E:0FC6] ;\ $A7AD52 29 FF FB AND #$FBFF ;} Set Kraid arm to ignore Samus/projectiles $A7AD55 8D C6 0F STA $0FC6 [$7E:0FC6] ;/ $A7AD58 A9 61 AD LDA #$AD61 ;\ $A7AD5B 8D A8 0F STA $0FA8 [$7E:0FA8] ;} Kraid function = $AD61 $A7AD5E 4C 74 C8 JMP $C874 [$A7:C874] ; Kraid BGi -> VRAM[BG2 tilemap base] ;;; $A7AD61 A9 8E AD LDA #$AD8E ;\ $A7AD64 8D A8 0F STA $0FA8 [$7E:0FA8] ;} Kraid function = $AD8E $A7AD67 A9 01 00 LDA #$0001 ;\ $A7AD6A 8D D4 10 STA $10D4 [$7E:10D4] ;} Kraid foot instruction delay = 1 $A7AD6D A9 ED 86 LDA #$86ED ;\ $A7AD70 8D D2 10 STA $10D2 [$7E:10D2] ;} Kraid foot instruction = $86ED (done) $A7AD73 A9 04 8B LDA #$8B04 ;\ $A7AD76 8D 12 10 STA $1012 [$7E:1012] ;| $A7AD79 8D 52 10 STA $1052 [$7E:1052] ;} Kraid lints instruction = $8B04 (done) $A7AD7C 8D 92 10 STA $1092 [$7E:1092] ;/ $A7AD7F A9 6C 8C LDA #$8C6C ;\ $A7AD82 8D 0E 10 STA $100E [$7E:100E] ;| $A7AD85 8D 4E 10 STA $104E [$7E:104E] ;} Kraid lints OAM = $8C6C (done) $A7AD88 8D 8E 10 STA $108E [$7E:108E] ;/ $A7AD8B 4C B6 C8 JMP $C8B6 [$A7:C8B6] ; Kraid ass BGi -> VRAM[BG2 tilemap base + $0800] ;;; ; Good thing the BG1 and BG2 character bases are both $0000 ; [$5D] wasn't shifted correctly, it should be shifted left by 13 ; Actually, revise this understanding $A7AD8E A9 23 AE LDA #$AE23 ;\ $A7AD91 8D A8 0F STA $0FA8 [$7E:0FA8] ;} Kraid function = $AE23 $A7AD94 9C B0 0F STZ $0FB0 [$7E:0FB0] ; $0FB0 = 0 $A7AD97 9C B2 0F STZ $0FB2 [$7E:0FB2] ; Kraid function timer = 0 $A7AD9A A2 C0 00 LDX #$00C0 ;\ $A7AD9D A0 00 00 LDY #$0000 ;| ;| $A7ADA0 B9 C7 86 LDA $86C7,y[$A7:86C7] ;| $A7ADA3 9F 00 C2 7E STA $7EC200,x[$7E:C2C0] ;| $A7ADA7 E8 INX ;} Write target colour palette line 6 $A7ADA8 E8 INX ;| $A7ADA9 C8 INY ;| $A7ADAA C8 INY ;| $A7ADAB C0 20 00 CPY #$0020 ;| $A7ADAE 30 F0 BMI $F0 [$ADA0] ;/ $A7ADB0 A9 00 00 LDA #$0000 ;\ $A7ADB3 8F 00 C4 7E STA $7EC400[$7E:C400] ;} Colour palette change fraction numerator = 0 $A7ADB7 AE 30 03 LDX $0330 [$7E:0330] ;\ $A7ADBA A9 00 02 LDA #$0200 ;| $A7ADBD 95 D0 STA $D0,x [$7E:00D0] ;| $A7ADBF A9 16 A7 LDA #$A716 ;| $A7ADC2 95 D2 STA $D2,x [$7E:00D2] ;| $A7ADC4 E2 20 SEP #$20 ;| $A7ADC6 A9 A7 LDA #$A7 ;| $A7ADC8 95 D4 STA $D4,x [$7E:00D4] ;| $A7ADCA C2 20 REP #$20 ;| $A7ADCC A5 5D LDA $5D [$7E:005D] ;} $A7A716..A915 -> VRAM[BG1 character base + 3F00h] $A7ADCE 29 0F 00 AND #$000F ;| $A7ADD1 EB XBA ;| $A7ADD2 18 CLC ;| $A7ADD3 69 00 3F ADC #$3F00 ;| $A7ADD6 95 D5 STA $D5,x [$7E:00D5] ;| $A7ADD8 8A TXA ;| $A7ADD9 18 CLC ;| $A7ADDA 69 07 00 ADC #$0007 ;| $A7ADDD 8D 30 03 STA $0330 [$7E:0330] ;/ $A7ADE0 6B RTL } ;;; { $A7ADE1 A9 C4 AE LDA #$AEC4 ;\ $A7ADE4 8D A8 0F STA $0FA8 [$7E:0FA8] ;} Kraid function = $AEC4 (done) $A7ADE7 80 06 BRA $06 [$ADEF] ; Branch to $ADEF ;;; $A7ADE9 A9 A4 AE LDA #$AEA4 ;\ $A7ADEC 8D A8 0F STA $0FA8 [$8C:0FA8] ;} Kraid function = $AEA4 (done) $A7ADEF AD 7E 0F LDA $0F7E [$8C:0F7E] ;\ $A7ADF2 38 SEC ;| $A7ADF3 E9 14 00 SBC #$0014 ;} Kraid top lint Y position = Kraid Y position - 14h $A7ADF6 8D FE 0F STA $0FFE [$8C:0FFE] ;/ $A7ADF9 AD 7E 0F LDA $0F7E [$8C:0F7E] ;\ $A7ADFC 18 CLC ;| $A7ADFD 69 2E 00 ADC #$002E ;} Kraid middle lint Y position = Kraid Y position + 2Eh $A7AE00 8D 3E 10 STA $103E [$8C:103E] ;/ $A7AE03 AD 7E 0F LDA $0F7E [$8C:0F7E] ;\ $A7AE06 18 CLC ;| $A7AE07 69 70 00 ADC #$0070 ;} Kraid bottom lint Y position = Kraid Y position + 70h $A7AE0A 8D 7E 10 STA $107E [$8C:107E] ;/ $A7AE0D AD E5 05 LDA $05E5 [$8C:05E5] ;\ $A7AE10 29 07 00 AND #$0007 ;} A = random number % 8 $A7AE13 D0 03 BNE $03 [$AE18] ; If A == 0: $A7AE15 A9 02 00 LDA #$0002 ; A = 2 $A7AE18 0A ASL A ;\ $A7AE19 0A ASL A ;| $A7AE1A 0A ASL A ;| $A7AE1B 0A ASL A ;} $7E7806 = A * 64 $A7AE1C 0A ASL A ;| $A7AE1D 0A ASL A ;| $A7AE1E 8F 06 78 7E STA $7E7806[$7E:7806] ;/ $A7AE22 60 RTS ;;; $A7AE23 C2 30 REP #$30 $A7AE25 22 6C D9 82 JSL $82D96C[$82:D96C] ; Iteration of gradual colour change of area colour palette line 6 $A7AE29 B0 01 BCS $01 [$AE2C] ;\ $A7AE2B 6B RTL ;} If colour palette change numerator <= 13: return $A7AE2C 20 E1 AD JSR $ADE1 [$A7:ADE1] ; Execute subroutine $ADE1 (done) $A7AE2F A2 80 00 LDX #$0080 ;\ $A7AE32 AD 16 A9 LDA $A916 [$A7:A916] ;| $A7AE35 20 90 AE JSR $AE90 [$A7:AE90] ;| $A7AE38 A2 C0 00 LDX #$00C0 ;| $A7AE3B AD 18 A9 LDA $A918 [$A7:A918] ;} Set Kraid lint functions and timers $A7AE3E 20 90 AE JSR $AE90 [$A7:AE90] ;| $A7AE41 A2 00 01 LDX #$0100 ;| $A7AE44 AD 1A A9 LDA $A91A [$A7:A91A] ;| $A7AE47 20 90 AE JSR $AE90 [$A7:AE90] ;/ $A7AE4A A9 60 BD LDA #$BD60 ;\ $A7AE4D 8F 80 79 7E STA $7E7980[$7E:7980] ;} Kraid fingernail next function = $BD60 (done) $A7AE51 8F C0 79 7E STA $7E79C0[$7E:79C0] ;/ $A7AE55 A9 2D B9 LDA #$B92D ;\ $A7AE58 8D 28 11 STA $1128 [$7E:1128] ;} Kraid fingernail function = decrement enemy function timer $A7AE5B 8D 68 11 STA $1168 [$7E:1168] ;/ $A7AE5E A9 40 00 LDA #$0040 ;\ $A7AE61 8D 32 11 STA $1132 [$7E:1132] ;} Kraid fingernail_A function timer = 64 $A7AE64 A9 80 00 LDA #$0080 ;\ $A7AE67 8D 72 11 STA $1172 [$7E:1172] ;} Kraid fingernail_B function timer = 128 $A7AE6A A9 01 00 LDA #$0001 ;\ $A7AE6D 8D EC 0F STA $0FEC [$7E:0FEC] ;} Kraid arm instruction timer = 1 $A7AE70 A9 DA 96 LDA #$96DA ;\ $A7AE73 8D AA 0F STA $0FAA [$7E:0FAA] ;} $0FAA = $96DA (done) $A7AE76 A9 20 01 LDA #$0120 ;\ $A7AE79 8F 1E 78 7E STA $7E781E[$7E:781E] ;} $7E781E = 120h $A7AE7D A9 6E BB LDA #$BB6E ;\ $A7AE80 8D E8 10 STA $10E8 [$7E:10E8] ;} Kraid foot function = $BB6E (done) $A7AE83 A9 01 00 LDA #$0001 ;\ $A7AE86 8D D4 10 STA $10D4 [$7E:10D4] ;} Kraid foot instruction delay = 1 $A7AE89 A9 87 88 LDA #$8887 ;\ $A7AE8C 8D D2 10 STA $10D2 [$7E:10D2] ;} Kraid foot instruction = $8887 (done) $A7AE8F 6B RTL ;;; $A7AE90 9D B2 0F STA $0FB2,x[$7E:1032] ; Enemy function timer = A $A7AE93 A9 23 B9 LDA #$B923 ;\ $A7AE96 9D A8 0F STA $0FA8,x[$7E:1028] ;} Enemy function = vertically align enemy to Kraid; decrement enemy function timer $A7AE99 A9 32 B8 LDA #$B832 ;\ $A7AE9C 9F 00 78 7E STA $7E7800,x[$7E:7880] ;} Enemy next function = $B832 (done) $A7AEA0 9E AA 0F STZ $0FAA,x[$7E:102A] ; $0FAA = 0 $A7AEA3 60 RTS ;;; $A7AEA4 AF 06 78 7E LDA $7E7806[$7E:7806] ;\ $A7AEA8 F0 19 BEQ $19 [$AEC3] ;} If [$7E7806] == 0: return $A7AEAA 3A DEC A ;\ $A7AEAB 8F 06 78 7E STA $7E7806[$7E:7806] ;} --$7E7806 $A7AEAF D0 12 BNE $12 [$AEC3] ; If [$7E7806] != 0: return $A7AEB1 A9 EA BB LDA #$BBEA ;\ $A7AEB4 8D A8 0F STA $0FA8 [$A7:0FA8] ;} Kraid function = $BBEA (done) $A7AEB7 A9 DA 96 LDA #$96DA ;\ $A7AEBA 8D AA 0F STA $0FAA [$A7:0FAA] ;} $0FAA = $96DA (done) $A7AEBD AD D2 96 LDA $96D2 [$A7:96D2] ;\ $A7AEC0 8D AC 0F STA $0FAC [$A7:0FAC] ;} $0FAA timer = 10 $A7AEC3 6B RTL $A7AEC4 AF 06 78 7E LDA $7E7806[$7E:7806] ;\ $A7AEC8 F0 19 BEQ $19 [$AEE3] ;} If [$7E7806] == 0: return $A7AECA 3A DEC A ;\ $A7AECB 8F 06 78 7E STA $7E7806[$7E:7806] ;} --$7E7806 $A7AECF D0 12 BNE $12 [$AEE3] ; If [$7E7806] != 0: return $A7AED1 A9 E4 AE LDA #$AEE4 ;\ $A7AED4 8D A8 0F STA $0FA8 [$7E:0FA8] ;} Kraid function = $AEE4 (done) $A7AED7 A9 DA 96 LDA #$96DA ;\ $A7AEDA 8D AA 0F STA $0FAA [$7E:0FAA] ;} $0FAA = $96DA (done) $A7AEDD AD D2 96 LDA $96D2 [$A7:96D2] ;\ $A7AEE0 8D AC 0F STA $0FAC [$7E:0FAC] ;} $0FAA timer = 10 $A7AEE3 6B RTL } ;;; $A7AEE4 20 32 AF JSR $AF32 [$A7:AF32] ; Process Kraid instruction ($0FAA) $A7AEE7 C9 FF FF CMP #$FFFF ;\ $A7AEEA D0 3C BNE $3C [$AF28] ;} If not returned A = FFFFh: return ; This branch will never be executed (I swear!?) $A7AEEC A9 A4 AE LDA #$AEA4 ;\ $A7AEEF 8D A8 0F STA $0FA8 [$7E:0FA8] ;} Kraid function = $AEA4 (done) $A7AEF2 A9 5A 00 LDA #$005A ;\ $A7AEF5 8D AC 0F STA $0FAC [$7E:0FAC] ;} $0FAC = 90 $A7AEF8 AF 0A 78 7E LDA $7E780A[$7E:780A] ;\ $A7AEFC 89 04 00 BIT #$0004 ;} If [$7E780A] hasn't 0004h: clear $7E780A and return $A7AEFF F0 28 BEQ $28 [$AF29] ;/ $A7AF00 28 PLP $A7AF01 38 SEC ;\ $A7AF02 E9 00 01 SBC #$0100 ;} $7E780A -= 100h $A7AF05 8F 0A 78 7E STA $7E780A[$7E:780A] ;/ $A7AF09 29 00 FF AND #$FF00 ;\ $A7AF0C F0 1B BEQ $1B [$AF29] ;} If [$7E780B] == 0: clear $7E780A and return $A7AF0E A9 2D B9 LDA #$B92D ;\ $A7AF11 8D A8 0F STA $0FA8 [$80:0FA8] ;} Kraid function = decrement enemy function timer $A7AF14 A9 40 00 LDA #$0040 ;\ $A7AF17 8D B2 0F STA $0FB2 [$80:0FB2] ;} Kraid function timer = 64 $A7AF1A A9 BF B6 LDA #$B6BF ;\ $A7AF1D 8F 00 78 7E STA $7E7800[$7E:7800] ;} Kraid next function = $B6BF (done) $A7AF21 A9 02 00 LDA #$0002 ;\ $A7AF24 8F 02 78 7E STA $7E7802[$7E:7802] ;} $7E7802 = 2 $A7AF28 6B RTL $A7AF29 A9 00 00 LDA #$0000 $A7AF2C 8F 0A 78 7E STA $7E780A[$7E:780A] $A7AF30 80 F6 BRA $F6 [$AF28] ;;; Process Kraid instruction ($0FAA) ;;; ; Hopefully [$0FAA] != 7FFFh ^_^; $A7AF32 AD AC 0F LDA $0FAC [$7E:0FAC] ;\ $A7AF35 F0 05 BEQ $05 [$AF3C] ;} If [$0FAC] == 0: return A = 0 $A7AF37 CE AC 0F DEC $0FAC [$7E:0FAC] ; Decrement [$0FAC] $A7AF3A F0 01 BEQ $01 [$AF3D] ; If [$0FAC] != 0: return A = [$0FAC] $A7AF3C 60 RTS $A7AF3D AE AA 0F LDX $0FAA [$7E:0FAA] ; X = [$0FAA] $A7AF40 BD 00 00 LDA $0000,x[$A7:9752] ; A = [X] $A7AF43 C9 FF FF CMP #$FFFF ;\ $A7AF46 F0 3A BEQ $3A [$AF82] ;} If A == FFFFh: return $A7AF48 30 39 BMI $39 [$AF83] ; If A+1 >= 0: $A7AF4A 8D AC 0F STA $0FAC [$7E:0FAC] ; $0FAC = A $A7AF4D 8A TXA ;\ $A7AF4E 18 CLC ;| $A7AF4F 69 08 00 ADC #$0008 ;} $0FAA += 8 $A7AF52 8D AA 0F STA $0FAA [$7E:0FAA] ;/ $A7AF55 BD 02 00 LDA $0002,x[$A7:9754] ;\ $A7AF58 A8 TAY ;| $A7AF59 DA PHX ;| $A7AF5A AE 30 03 LDX $0330 [$7E:0330] ;| $A7AF5D A9 C0 02 LDA #$02C0 ;| $A7AF60 95 D0 STA $D0,x [$7E:00D0] ;| $A7AF62 E8 INX ;| $A7AF63 E8 INX ;| $A7AF64 94 D0 STY $D0,x [$7E:00D2] ;| $A7AF66 E8 INX ;| $A7AF67 E8 INX ;| $A7AF68 E2 20 SEP #$20 ;| $A7AF6A A9 A7 LDA #$A7 ;} $A7:[X+2]..[X+2]+02BFh -> VRAM[BG2 tilemap base] $A7AF6C 95 D0 STA $D0,x [$7E:00D4] ;| $A7AF6E C2 20 REP #$20 ;| $A7AF70 E8 INX ;| $A7AF71 A5 59 LDA $59 [$7E:0059] ;| $A7AF73 29 FC 00 AND #$00FC ;| $A7AF76 EB XBA ;| $A7AF77 95 D0 STA $D0,x [$7E:00D5] ;| $A7AF79 E8 INX ;| $A7AF7A E8 INX ;| $A7AF7B 8E 30 03 STX $0330 [$7E:0330] ;| $A7AF7E FA PLX ;/ $A7AF7F A9 01 00 LDA #$0001 ; Return A = 1 $A7AF82 60 RTS $A7AF83 85 12 STA $12 [$7E:0012] ;\ Else ([$0FAA]+1 < 0): $A7AF85 6C 12 00 JMP ($0012)[$A7:AF94] ;} Execute [$0FAA] $A7AF88 AD AA 0F LDA $0FAA [$7E:0FAA] ;\ $A7AF8B 18 CLC ;| $A7AF8C 69 02 00 ADC #$0002 ;} $0FAA += 2 $A7AF8F 8D AA 0F STA $0FAA [$7E:0FAA] ;/ $A7AF92 80 A9 BRA $A9 [$AF3D] ; Next! ;;; $A7AF94 DA PHX $A7AF95 A9 2D 00 LDA #$002D ;\ $A7AF98 22 CB 90 80 JSL $8090CB[$80:90CB] ;} Sound library 2: 2Dh $A7AF9C FA PLX $A7AF9D 80 E9 BRA $E9 [$AF88] ; $0FAA += 2; next! ;;; $A7AF9F DA PHX $A7AFA0 A9 2E 00 LDA #$002E ;\ $A7AFA3 22 A3 90 80 JSL $8090A3[$80:90CB] ;} Sound library 2: 2Eh $A7AFA7 FA PLX $A7AFA8 80 DE BRA $DE [$AF88] ; $0FAA += 2; next! ;;; Kraid's mouth projectile collision detection ;;; $A7AFAA C2 30 REP #$30 $A7AFAC DA PHX $A7AFAD AD A8 0F LDA $0FA8 [$7E:0FA8] ;\ $A7AFB0 C9 37 C5 CMP #$C537 ;} If Kraid function >= $C537 (dying): return $A7AFB3 30 02 BMI $02 [$AFB7] ;/ $A7AFB5 FA PLX $A7AFB6 60 RTS $A7AFB7 AD AA 0F LDA $0FAA [$7E:0FAA] ;\ $A7AFBA 38 SEC ;| $A7AFBB E9 08 00 SBC #$0008 ;} A = [[$0FAA]-2] $A7AFBE AA TAX ;| $A7AFBF BD 06 00 LDA $0006,x[$A7:96D8] ;/ $A7AFC2 C9 FF FF CMP #$FFFF ;\ $A7AFC5 D0 06 BNE $06 [$AFCD] ;| $A7AFC7 A0 00 00 LDY #$0000 ;} If A == FFFFh (invulnerable): return $A7AFCA 4C 50 B0 JMP $B050 [$A7:B050] ;/ $A7AFCD AA TAX ; X = A $A7AFCE A9 01 00 LDA #$0001 ;\ $A7AFD1 8D B0 0F STA $0FB0 [$7E:0FB0] ;} $0FB0 = 1 $A7AFD4 A0 00 00 LDY #$0000 ; Clear Y $A7AFD7 BD 00 00 LDA $0000,x[$A7:97B0] ;\ $A7AFDA 18 CLC ;| $A7AFDB 6D 7A 0F ADC $0F7A [$7E:0F7A] ;} $16 = Kraid left boundary $A7AFDE 85 16 STA $16 [$7E:0016] ;/ $A7AFE0 BD 02 00 LDA $0002,x[$A7:97B2] ;\ $A7AFE3 18 CLC ;| $A7AFE4 6D 7E 0F ADC $0F7E [$7E:0F7E] ;} $14 = Kraid bottom boundary $A7AFE7 85 14 STA $14 [$7E:0014] ;/ $A7AFE9 BD 06 00 LDA $0006,x[$A7:97B6] ;\ $A7AFEC 18 CLC ;| $A7AFED 6D 7E 0F ADC $0F7E [$7E:0F7E] ;} $12 = Kraid top boundary $A7AFF0 85 12 STA $12 [$7E:0012] ;/ $A7AFF2 AD CE 0C LDA $0CCE [$7E:0CCE] ; A = projectile counter $A7AFF5 F0 59 BEQ $59 [$B050] ; If A == 0: return $A7AFF7 0A ASL A ;\ $A7AFF8 AA TAX ;} X = A*2 $A7AFF9 BD 78 0B LDA $0B78,x[$7E:0B7C] ;\ $A7AFFC 38 SEC ;| $A7AFFD FD C8 0B SBC $0BC8,x[$7E:0BCC] ;| $A7B000 3A DEC A ;| $A7B001 C5 12 CMP $12 [$7E:0012] ;| $A7B003 10 47 BPL $47 [$B04C] ;| $A7B005 BD 78 0B LDA $0B78,x[$7E:0B7C] ;| $A7B008 18 CLC ;| $A7B009 7D C8 0B ADC $0BC8,x[$7E:0BCC] ;| $A7B00C C5 14 CMP $14 [$7E:0014] ;| $A7B00E 30 3C BMI $3C [$B04C] ;| $A7B010 BD 64 0B LDA $0B64,x[$7E:0B66] ;} For each projectile within the boundaries of Kraid not an uncharged beam: $A7B013 18 CLC ;} (If charged beam: $7E780A |= 1) $A7B014 7D B4 0B ADC $0BB4,x[$7E:0BB6] ;| $A7B017 C5 16 CMP $16 [$7E:0016] ;| $A7B019 30 31 BMI $31 [$B04C] ;| $A7B01B BD 18 0C LDA $0C18,x[$7E:0C18] ;| $A7B01E 89 00 0F BIT #$0F00 ;| $A7B021 D0 10 BNE $10 [$B033] ;| $A7B023 89 10 00 BIT #$0010 ;| $A7B026 F0 24 BEQ $24 [$B04C] ;| $A7B028 AF 0A 78 7E LDA $7E780A[$7E:780A] ;| $A7B02C 09 01 00 ORA #$0001 ;| $A7B02F 8F 0A 78 7E STA $7E780A[$7E:780A] ;/ $A7B033 DA PHX $A7B034 8A TXA ;\ $A7B035 4A LSR A ;} Enemy-projectile collision detection index = X*2 $A7B036 8D A6 18 STA $18A6 [$7E:18A6] ;/ $A7B039 08 PHP $A7B03A 22 A7 A6 A0 JSL $A0A6A7[$A0:A6A7] ; Handles beam damage, freezing, and sound. Clears enemy hit flag $A7B03E 28 PLP $A7B03F FA PLX $A7B040 BD 04 0C LDA $0C04,x[$7E:0C04] ;\ $A7B043 09 10 00 ORA #$0010 ;} Kill projectile $A7B046 9D 04 0C STA $0C04,x[$7E:0C04] ;/ $A7B049 A0 01 00 LDY #$0001 ; Set Y $A7B04C CA DEX $A7B04D CA DEX $A7B04E 10 A9 BPL $A9 [$AFF9] $A7B050 FA PLX $A7B051 C0 00 00 CPY #$0000 $A7B054 D0 01 BNE $01 [$B057] $A7B056 60 RTS ; If Y set: $A7B057 A9 06 00 LDA #$0006 ;\ $A7B05A 8F 2A 78 7E STA $7E782A[$7E:782A] ;} $7E782A = 6 $A7B05E A9 02 00 LDA #$0002 ;\ $A7B061 8F 2C 78 7E STA $7E782C[$7E:782C] ;} $7E782C = 2 $A7B065 AF 0A 78 7E LDA $7E780A[$7E:780A] ;\ $A7B069 89 02 00 BIT #$0002 ;} If [$7E780A] has 2: $A7B06C F0 07 BEQ $07 [$B075] ;/ $A7B06E 09 04 00 ORA #$0004 ;\ $A7B071 8F 0A 78 7E STA $7E780A[$7E:780A] ;} $7E780A |= 4 $A7B075 AD 8C 0F LDA $0F8C [$7E:0F8C] ;\ $A7B078 C9 01 00 CMP #$0001 ;} If Kraid health >= 1: return $A7B07B 30 01 BMI $01 [$B07E] ;/ $A7B07D 60 RTS ; $A7B07E AD A8 0F LDA $0FA8 [$7E:0FA8] ;\ $A7B081 C9 60 C3 CMP #$C360 ;} If Kraid function >= $C360: return $A7B084 10 44 BPL $44 [$B0CA] ;/ $A7B086 A9 60 C3 LDA #$C360 ;\ $A7B089 8D A8 0F STA $0FA8 [$7E:0FA8] ;} Kraid function = $C360 (done) $A7B08C A9 00 00 LDA #$0000 ;\ $A7B08F 8F 0A 78 7E STA $7E780A[$7E:780A] ;} $78780A = 0 $A7B093 AD 86 0F LDA $0F86 [$7E:0F86] ;\ $A7B096 09 00 04 ORA #$0400 ;} Set Kraid to ignore Samus/projectiles $A7B099 8D 86 0F STA $0F86 [$7E:0F86] ;/ $A7B09C A9 FF DF LDA #$DFFF ;\ $A7B09F 85 12 STA $12 [$7E:0012] ;} $12 = DFFFh (tile priority anti-mask) $A7B0A1 20 C6 AA JSR $AAC6 [$A7:AAC6] ;} Set up Kraid graphics with the tile priority cleared $A7B0A4 A2 00 00 LDX #$0000 ;\ ;| $A7B0A7 BD 86 0F LDA $0F86,x[$7E:0F86] ;| $A7B0AA 09 00 04 ORA #$0400 ;| $A7B0AD 9D 86 0F STA $0F86,x[$7E:0F86] ;| $A7B0B0 8A TXA ;} Set Kraid arm, lint and foot to ignore Samus/projectiles $A7B0B1 18 CLC ;| $A7B0B2 69 40 00 ADC #$0040 ;| $A7B0B5 AA TAX ;| $A7B0B6 E0 80 01 CPX #$0180 ;| $A7B0B9 30 EC BMI $EC [$B0A7] ;/ $A7B0BB AD AA 0F LDA $0FAA [$7E:0FAA] ;\ $A7B0BE C9 0E 97 CMP #$970E ;} If [$0FAA] < $970E: $A7B0C1 10 07 BPL $07 [$B0CA] ;/ $A7B0C3 18 CLC ;\ $A7B0C4 69 3C 00 ADC #$003C ;} $0FAA += 3Ch $A7B0C7 8D AA 0F STA $0FAA [$7E:0FAA] ;/ $A7B0CA 60 RTS ;;; Spawn explosion enemy projectile ;;; $A7B0CB BD 64 0B LDA $0B64,x[$7E:0B64] ;\ $A7B0CE 85 12 STA $12 [$7E:0012] ;} $12 = projectile X position $A7B0D0 BD 78 0B LDA $0B78,x[$7E:0B78] ;\ $A7B0D3 85 14 STA $14 [$7E:0014] ;} $14 = projectile Y position $A7B0D5 BD 18 0C LDA $0C18,x[$7E:0C18] ;\ $A7B0D8 A0 1D 00 LDY #$001D ;| $A7B0DB 89 00 02 BIT #$0200 ;| $A7B0DE D0 03 BNE $03 [$B0E3] ;} If super missile, A=001Dh, else A=0006h (stored to $1993) $A7B0E0 A0 06 00 LDY #$0006 ;| ;| $A7B0E3 98 TYA ;/ $A7B0E4 A0 09 E5 LDY #$E509 ; Y = E509h $A7B0E7 22 97 80 86 JSL $868097[$86:8097] ; Spawn enemy projectile $A7B0EB A9 3D 00 LDA #$003D ;\ $A7B0EE 22 49 90 80 JSL $809049[$80:9049] ;} Sound library 1: 3Dh $A7B0F2 60 RTS ;;; Kraid collision detection - Samus ;;; $A7B0F3 AD A8 0F LDA $0FA8 [$7E:0FA8] ;\ $A7B0F6 C9 60 C3 CMP #$C360 ;} If Kraid function >= $C360: return $A7B0F9 10 64 BPL $64 [$B15F] ;/ $A7B0FB AD F6 0A LDA $0AF6 [$7E:0AF6] ;\ $A7B0FE 18 CLC ;| $A7B0FF 6D FE 0A ADC $0AFE [$7E:0AFE] ;} $12 = Samus right boundary $A7B102 85 12 STA $12 [$7E:0012] ;/ $A7B104 AD FA 0A LDA $0AFA [$7E:0AFA] ;\ $A7B107 38 SEC ;| $A7B108 ED 7E 0F SBC $0F7E [$7E:0F7E] ;| $A7B10B A2 00 00 LDX #$0000 ;| ;| $A7B10E DD 61 B1 CMP $B161,x[$A7:B161] ;| $A7B111 10 0B BPL $0B [$B11E] ;| $A7B113 DD 65 B1 CMP $B165,x[$A7:B165] ;} X = index of first entry >= Samus Y position - Kraid Y position $A7B116 10 06 BPL $06 [$B11E] ;| $A7B118 E8 INX ;| $A7B119 E8 INX ;| $A7B11A E8 INX ;| $A7B11B E8 INX ;| $A7B11C 80 F0 BRA $F0 [$B10E] ;/ $A7B11E BD 63 B1 LDA $B163,x[$A7:B173] ;\ $A7B121 18 CLC ;| $A7B122 6D 7A 0F ADC $0F7A [$7E:0F7A] ;| $A7B125 38 SEC ;} If Kraid X position + [$B163+X] >= Samus right boundary: return $A7B126 E5 12 SBC $12 [$7E:0012] ;| $A7B128 10 36 BPL $36 [$B160] ;/ $A7B12A AD F6 0A LDA $0AF6 [$82:0AF6] ;\ $A7B12D C9 28 00 CMP #$0028 ;} If Samus X position >= 40: $A7B130 30 0A BMI $0A [$B13C] ;/ $A7B132 38 SEC ;\ $A7B133 E9 08 00 SBC #$0008 ;} Samus X position -= 8 $A7B136 8D F6 0A STA $0AF6 [$82:0AF6] ;/ $A7B139 8D 10 0B STA $0B10 [$82:0B10] ; Previous Samus X position = Samus X position $A7B13C AD FA 0A LDA $0AFA [$82:0AFA] ;\ $A7B13F 38 SEC ;} A = Samus Y position - 8 $A7B140 E9 08 00 SBC #$0008 ;/ $A7B143 CF 08 78 7E CMP $7E7808[$7E:7808] ;\ $A7B147 10 04 BPL $04 [$B14D] ;} If A < [$7E7808]: $A7B149 AF 08 78 7E LDA $7E7808[$7E:7808] ; A = [$7E7808] $A7B14D 8D FA 0A STA $0AFA [$82:0AFA] ;\ $A7B150 8D 14 0B STA $0B14 [$82:0B14] ;} Samus Y position = previous Samus Y position = A $A7B153 20 A4 94 JSR $94A4 [$81:94A4] ; Knock Samus back $A7B156 AD A8 18 LDA $18A8 [$82:18A8] ;\ $A7B159 D0 05 BNE $05 [$B160] ;} If Samus invincibility timer == 0: $A7B15B 22 77 A4 A0 JSL $A0A477[$A0:A477] ; Normal enemy touch AI $A7B15F 60 RTS $A7B160 60 RTS $A7B161 dw 03FF,FFD0, 0010,FFD0, 0000,FFE0, FFE0,FFE8, FFD0,FFF8, FFB0,0000, FF90,0008, 8000,0008 ;;; Kraid collision detection - projectiles ;;; $A7B181 DA PHX $A7B182 AD A8 0F LDA $0FA8 [$7E:0FA8] ;\ $A7B185 C9 37 C5 CMP #$C537 ;} If Kraid function >= $C537: return $A7B188 30 02 BMI $02 [$B18C] ;/ $A7B18A FA PLX $A7B18B 60 RTS $A7B18C 9C B0 0F STZ $0FB0 [$7E:0FB0] ; $0FB0 = 0 $A7B18F AF 0A 78 7E LDA $7E780A[$7E:780A] ;\ $A7B193 29 FE FF AND #$FFFE ;} $7E780A &= !0001 $A7B196 8F 0A 78 7E STA $7E780A[$7E:780A] ;/ $A7B19A 64 30 STZ $30 [$7E:0030] ; $30 = 0 $A7B19C AD AA 0F LDA $0FAA [$7E:0FAA] ;\ $A7B19F 38 SEC ;| $A7B1A0 E9 08 00 SBC #$0008 ;| $A7B1A3 AA TAX ;} X = [[$0FAA]-4] $A7B1A4 BD 04 00 LDA $0004,x[$A7:96D6] ;| $A7B1A7 AA TAX ;/ $A7B1A8 BD 00 00 LDA $0000,x[$A7:9788] ;\ $A7B1AB 18 CLC ;| $A7B1AC 6D 7A 0F ADC $0F7A [$7E:0F7A] ;} $16 = Kraid left boundary $A7B1AF 85 16 STA $16 [$7E:0016] ;/ $A7B1B1 BD 02 00 LDA $0002,x[$A7:978A] ;\ $A7B1B4 18 CLC ;| $A7B1B5 6D 7E 0F ADC $0F7E [$7E:0F7E] ;} $14 = Kraid bottom boundary $A7B1B8 85 14 STA $14 [$7E:0014] ;/ $A7B1BA BD 06 00 LDA $0006,x[$A7:978E] ;\ $A7B1BD 18 CLC ;| $A7B1BE 6D 7E 0F ADC $0F7E [$7E:0F7E] ;} $12 = Kraid top boundary $A7B1C1 85 12 STA $12 [$7E:0012] ;/ $A7B1C3 AD CE 0C LDA $0CCE [$7E:0CCE] ; A = projectile counter $A7B1C6 F0 49 BEQ $49 [$B211] ; If A == 0: return $A7B1C8 0A ASL A ;\ $A7B1C9 AA TAX ;} X = A*2 $A7B1CA BD 78 0B LDA $0B78,x[$7E:0B7A] ;\ $A7B1CD 38 SEC ;| $A7B1CE FD C8 0B SBC $0BC8,x[$7E:0BCA] ;| $A7B1D1 3A DEC A ;} If projectile top boundary > Kraid top boundary: branch to $B238 $A7B1D2 C5 12 CMP $12 [$7E:0012] ;| $A7B1D4 10 62 BPL $62 [$B238] ;/ $A7B1D6 BD 78 0B LDA $0B78,x[$7E:0B7A] ;\ $A7B1D9 18 CLC ;| $A7B1DA 7D C8 0B ADC $0BC8,x[$7E:0BCA] ;} If projectile bottom boundary < Kraid bottom boundary: next! $A7B1DD C5 14 CMP $14 [$7E:0014] ;| $A7B1DF 30 2C BMI $2C [$B20D] ;/ $A7B1E1 BD 64 0B LDA $0B64,x[$7E:0B64] ;\ $A7B1E4 18 CLC ;| $A7B1E5 7D B4 0B ADC $0BB4,x[$7E:0BB4] ;} If projectile right boundary < Kraid left boundary: next! $A7B1E8 C5 16 CMP $16 [$7E:0016] ;| $A7B1EA 30 21 BMI $21 [$B20D] ;/ $A7B1EC 20 CB B0 JSR $B0CB [$A7:B0CB] ; Spawn explosion enemy projectile $A7B1EF BD 04 0C LDA $0C04,x[$7E:0C04] ;\ $A7B1F2 09 10 00 ORA #$0010 ;} Kill beam $A7B1F5 9D 04 0C STA $0C04,x[$7E:0C04] ;/ $A7B1F8 BD 18 0C LDA $0C18,x[$7E:0C18] ;\ $A7B1FB 89 10 00 BIT #$0010 ;} If charged beam $A7B1FE F0 0B BEQ $0B [$B20B] ;/ $A7B200 AF 0A 78 7E LDA $7E780A[$7E:780A] ;\ $A7B204 09 01 00 ORA #$0001 ;} $7E780A |= 1 $A7B207 8F 0A 78 7E STA $7E780A[$7E:780A] ;/ $A7B20B E6 30 INC $30 [$7E:0030] ; ++$30 $A7B20D CA DEX ;\ $A7B20E CA DEX ;} Next! $A7B20F 10 B9 BPL $B9 [$B1CA] ;/ $A7B211 FA PLX $A7B212 A4 30 LDY $30 [$7E:0030] ;\ $A7B214 C0 00 00 CPY #$0000 ;} If [$30] == 0: return $A7B217 F0 1E BEQ $1E [$B237] ;/ $A7B219 AD A8 0F LDA $0FA8 [$7E:0FA8] ;\ $A7B21C C9 A4 AE CMP #$AEA4 ;} If Kraid function == $AEA4: return $A7B21F D0 16 BNE $16 [$B237] ;/ $A7B221 A9 BF B6 LDA #$B6BF ;\ $A7B224 8D A8 0F STA $0FA8 [$7E:0FA8] ;} Kraid function = $B6BF $A7B227 AF 0A 78 7E LDA $7E780A[$7E:780A] ;\ $A7B22B 89 01 00 BIT #$0001 ;} If [$7E780A] hasn't 0001: return $A7B22E F0 07 BEQ $07 [$B237] ;/ $A7B230 09 02 03 ORA #$0302 ;\ $A7B233 8F 0A 78 7E STA $7E780A[$7E:780A] ;} $7E780A |= 0302h $A7B237 60 RTS $A7B238 BD 64 0B LDA $0B64,x[$7E:0B66] ;\ $A7B23B 18 CLC ;| $A7B23C 7D B4 0B ADC $0BB4,x[$7E:0BB6] ;} $12 = projectile right boundary $A7B23F 85 12 STA $12 [$7E:0012] ;/ $A7B241 BD 78 0B LDA $0B78,x[$7E:0B7A] ;\ $A7B244 38 SEC ;| $A7B245 ED 7E 0F SBC $0F7E [$7E:0F7E] ;| $A7B248 A0 00 00 LDY #$0000 ;| ;| $A7B24B D9 61 B1 CMP $B161,y[$A7:B161] ;| $A7B24E 10 0B BPL $0B [$B25B] ;| $A7B250 D9 65 B1 CMP $B165,y[$A7:B165] ;} Y = index of first entry >= projectile Y position - Kraid Y position $A7B253 10 06 BPL $06 [$B25B] ;| $A7B255 C8 INY ;| $A7B256 C8 INY ;| $A7B257 C8 INY ;| $A7B258 C8 INY ;| $A7B259 80 F0 BRA $F0 [$B24B] ;/ $A7B25B B9 63 B1 LDA $B163,y[$A7:B177] ;\ $A7B25E 18 CLC ;| $A7B25F 6D 7A 0F ADC $0F7A [$7E:0F7A] ;| $A7B262 38 SEC ;} If Kraid X position + [$B163+X] >= projectile right boundary: next! $A7B263 E5 12 SBC $12 [$7E:0012] ;| $A7B265 10 A6 BPL $A6 [$B20D] ;/ $A7B267 80 83 BRA $83 [$B1EC] ; Branch to $B1EC ;;; Kraid palette handling ;;; $A7B337 DA PHX $A7B338 5A PHY $A7B339 AD 8C 0F LDA $0F8C [$7E:0F8C] ;\ $A7B33C C9 01 00 CMP #$0001 ;} If Kraid health < 1: $A7B33F 10 06 BPL $06 [$B347] ;/ $A7B341 8F 2A 78 7E STA $7E782A[$7E:782A] ; $7E782A = Kraid health $A7B345 80 21 BRA $21 [$B368] $A7B347 AF 2A 78 7E LDA $7E782A[$7E:782A] ;\ Else (Kraid health >= 1): $A7B34B F0 21 BEQ $21 [$B36E] ;} If [$7E782A] == 0: return $A7B34D AF 2C 78 7E LDA $7E782C[$7E:782C] ;\ $A7B351 3A DEC A ;} --$7E782C $A7B352 8F 2C 78 7E STA $7E782C[$7E:782C] ;/ $A7B356 D0 16 BNE $16 [$B36E] ; If [7E782C] != 0: return $A7B358 A9 02 00 LDA #$0002 ;\ $A7B35B 8F 2C 78 7E STA $7E782C[$7E:782C] ;} $7E782C = 2 $A7B35F AF 2A 78 7E LDA $7E782A[$7E:782A] ;\ $A7B363 3A DEC A ;} --$7E782A $A7B364 8F 2A 78 7E STA $7E782A[$7E:782A] ;/ $A7B368 20 71 B3 JSR $B371 [$A7:B371] ; Kraid hurt flash handling $A7B36B 20 94 B3 JSR $B394 [$A7:B394] ; Kraid health-based palette handling $A7B36E 7A PLY $A7B36F FA PLX $A7B370 60 RTS ;;; Kraid hurt flash handling ;;; $A7B371 A0 00 00 LDY #$0000 ; Y = 0 $A7B374 AF 2A 78 7E LDA $7E782A[$7E:782A] ;\ $A7B378 89 01 00 BIT #$0001 ;} If [$7E782A] is even: $A7B37B D0 03 BNE $03 [$B380] ;/ $A7B37D A0 20 00 LDY #$0020 ; Y = 20h $A7B380 A2 00 00 LDX #$0000 $A7B383 B9 13 B5 LDA $B513,y[$A7:B513] ;\ $A7B386 9F E0 C1 7E STA $7EC1E0,x[$7E:C1E0] ;| $A7B38A E8 INX ;| $A7B38B E8 INX ;| $A7B38C C8 INY ;} Enemy colour palette line 7 = [$B513+Y..$B532+Y] $A7B38D C8 INY ;| $A7B38E E0 20 00 CPX #$0020 ;| $A7B391 30 F0 BMI $F0 [$B383] ;/ $A7B393 60 RTS ;;; Kraid health-based palette handling ;;; $A7B394 A0 00 00 LDY #$0000 ; Y = 0 $A7B397 AF 2A 78 7E LDA $7E782A[$7E:782A] ;\ $A7B39B 89 01 00 BIT #$0001 ;} If [$7E782A] is even: $A7B39E D0 18 BNE $18 [$B3B8] ;/ $A7B3A0 A2 0E 00 LDX #$000E ;\ $A7B3A3 AD 8C 0F LDA $0F8C [$7E:0F8C] ;| ;| $A7B3A6 DF 0C 78 7E CMP $7E780C,x[$7E:781A] ;| $A7B3AA 10 04 BPL $04 [$B3B0] ;| $A7B3AC CA DEX ;| $A7B3AD CA DEX ;| $A7B3AE D0 F6 BNE $F6 [$B3A6] ;| ;} (Current eighth of health) * 32 $A7B3B0 E8 INX ;| $A7B3B1 E8 INX ;| $A7B3B2 8A TXA ;| $A7B3B3 0A ASL A ;| $A7B3B4 0A ASL A ;| $A7B3B5 0A ASL A ;| $A7B3B6 0A ASL A ;| $A7B3B7 A8 TAY ;/ $A7B3B8 A2 00 00 LDX #$0000 $A7B3BB B9 D3 B3 LDA $B3D3,y[$A7:B3D3] ;\ $A7B3BE 9F E0 C0 7E STA $7EC0E0,x[$7E:C0E0] ;| $A7B3C2 B9 13 B5 LDA $B513,y[$A7:B513] ;| $A7B3C5 9F E0 C1 7E STA $7EC1E0,x[$7E:C1E0] ;| $A7B3C9 C8 INY ;} Area colour palette line 7 = [$B3D3+Y..$B3F2+Y] $A7B3CA C8 INY ;} Enemy colour palette line 7 = [$B513+Y..$B532+Y] $A7B3CB E8 INX ;| $A7B3CC E8 INX ;| $A7B3CD E0 20 00 CPX #$0020 ;| $A7B3D0 30 E9 BMI $E9 [$B3BB] ;/ $A7B3D2 60 RTS ;;; Area colour palette line 7 ;;; $A7B3D3 dw 7FFF, 7FFF, 7FFF, 7FFF, 7FFF, 7FFF, 7FFF, 7FFF, 7FFF, 7FFF, 7FFF, 7FFF, 7FFF, 7FFF, 7FFF, 7FFF $A7B3F3 dw 0000, 559D, 1816, 100D, 127A, 0E17, 0DD3, 0970, 092D, 04CA, 0486, 0023, 0443, 3E52, 4AD5, 0000 $A7B413 dw 3800, 559D, 1816, 100D, 1A9B, 1637, 11F3, 0D8F, 0D4C, 08E9, 04A6, 0043, 0443, 4273, 52F6, 0000 $A7B433 dw 3800, 559D, 1816, 100D, 22DB, 1A77, 1A12, 15AE, 116C, 0D09, 08A6, 0444, 0423, 4A94, 5B38, 0000 $A7B453 dw 3800, 559D, 1816, 100D, 2AFC, 2297, 1E32, 19CD, 158B, 1128, 08C6, 0464, 0423, 4EB5, 6359, 0000 $A7B473 dw 3800, 559D, 1816, 100D, 331D, 2AB7, 2A91, 1E0C, 19AA, 1148, 0CE5, 0484, 0023, 52B5, 677B, 0000 $A7B493 dw 3800, 559D, 1816, 100D, 3B3E, 32D7, 32B0, 222B, 1DC9, 1567, 0D05, 04A4, 0023, 56D6, 6F9C, 0000 $A7B4B3 dw 3800, 559D, 1816, 100D, 437E, 3717, 32B0, 2A4A, 21E9, 1987, 1105, 08A5, 0003, 5EF7, 77DE, 0000 $A7B4D3 dw 3800, 559D, 1816, 100D, 4B9F, 3F37, 36D0, 2E69, 2608, 1DA6, 1125, 08C5, 0003, 6318, 7FFF, 0000 ; Kraid death $A7B4F3 dw 3800, 0807, 0404, 0000, 127A, 0E17, 0DD3, 0970, 092D, 04CA, 0486, 0023, 0443, 3E52, 4AD5, 0000 ;;; Enemy colour palette line 7 ;;; $A7B513 dw 7FFF, 7FFF, 7FFF, 7FFF, 7FFF, 7FFF, 7FFF, 7FFF, 7FFF, 7FFF, 7FFF, 7FFF, 7FFF, 7FFF, 7FFF, 7FFF $A7B533 dw 0000, 559D, 1816, 100D, 127A, 0E17, 0DD3, 0970, 092D, 04CA, 0486, 0023, 0443, 3E52, 4AD5, 0000 $A7B553 dw 3800, 559D, 1816, 100D, 1A9B, 1637, 11F3, 0D8F, 0D4C, 08E9, 04A6, 0043, 0443, 4273, 52F6, 0000 $A7B573 dw 3800, 559D, 1816, 100D, 22DB, 1A77, 1A12, 15AE, 116C, 0D09, 08A6, 0444, 0423, 4A94, 5B38, 0000 $A7B593 dw 3800, 559D, 1816, 100D, 2AFC, 2297, 1E32, 19CD, 158B, 1128, 08C6, 0464, 0423, 4EB5, 6359, 0000 $A7B5B3 dw 3800, 559D, 1816, 100D, 331D, 2AB7, 2A91, 1E0C, 19AA, 1148, 0CE5, 0484, 0023, 52B5, 677B, 0000 $A7B5D3 dw 3800, 559D, 1816, 100D, 3B3E, 32D7, 32B0, 222B, 1DC9, 1567, 0D05, 04A4, 0023, 56D6, 6F9C, 0000 $A7B5F3 dw 3800, 559D, 1816, 100D, 437E, 3717, 32B0, 2A4A, 21E9, 1987, 1105, 08A5, 0003, 5EF7, 77DE, 0000 $A7B613 dw 3800, 559D, 1816, 100D, 4B9F, 3F37, 36D0, 2E69, 2608, 1DA6, 1125, 08C5, 0003, 6318, 7FFF, 0000 ;;; Enemy instruction: NOP ;;; $A7B633 DA PHX $A7B634 FA PLX $A7B635 6B RTL ;;; Enemy instruction: Decrement Kraid Y position ;;; $A7B636 DA PHX $A7B637 CE 7E 0F DEC $0F7E [$7E:0F7E] $A7B63A FA PLX $A7B63B 6B RTL ;;; Enemy instruction: Increment Kraid Y position, set screen shaking ;;; $A7B63C DA PHX $A7B63D EE 7E 0F INC $0F7E [$7E:0F7E] $A7B640 A9 01 00 LDA #$0001 ;\ $A7B643 8D 3E 18 STA $183E [$7E:183E] ;} Set screen shaking to 1 $A7B646 A9 0A 00 LDA #$000A ;\ $A7B649 8D 40 18 STA $1840 [$7E:1840] ;} Screen shaking timer = 10 $A7B64C FA PLX $A7B64D 6B RTL ;;; Enemy instruction: Play sound library 2: 76h ;;; $A7B64E DA PHX $A7B64F 5A PHY $A7B650 A9 76 00 LDA #$0076 $A7B653 22 CB 90 80 JSL $8090CB[$80:90CB] $A7B657 7A PLY $A7B658 FA PLX $A7B659 6B RTL ;;; Enemy instruction: Decrement Kraid X position ;;; $A7B65A DA PHX $A7B65B AD 7A 0F LDA $0F7A [$7E:0F7A] $A7B65E 38 SEC $A7B65F ED 1C A9 SBC $A91C [$A7:A91C] $A7B662 8D 7A 0F STA $0F7A [$7E:0F7A] $A7B665 FA PLX $A7B666 6B RTL ;;; Enemy instruction: Decrement Kraid X position ;;; ; This is exactly identical to $B65A $A7B667 DA PHX $A7B668 AD 7A 0F LDA $0F7A [$7E:0F7A] $A7B66B 38 SEC $A7B66C ED 1C A9 SBC $A91C [$A7:A91C] $A7B66F 8D 7A 0F STA $0F7A [$7E:0F7A] $A7B672 FA PLX $A7B673 6B RTL ;;; Enemy instruction: Increment Kraid X position ;;; $A7B674 DA PHX $A7B675 5A PHY $A7B676 AD 20 A9 LDA $A920 [$A7:A920] $A7B679 18 CLC $A7B67A 6D 7A 0F ADC $0F7A [$7E:0F7A] $A7B67D 8D 7A 0F STA $0F7A [$7E:0F7A] $A7B680 7A PLY $A7B681 FA PLX $A7B682 6B RTL ;;; Enemy instruction: ;;; ;$A7B683 DA PHX ;$A7B684 5A PHY ;$A7B685 AD 7A 0F LDA $0F7A [$7E:0F7A] ;\ ;$A7B688 C9 40 01 CMP #$0140 ;} If Kraid X position >= 0140h: ;$A7B68B 30 0B BMI $0B [$B698] ;/ ;$A7B68D AF 1E 78 7E LDA $7E781E[$7E:781E] ;\ ;$A7B691 3A DEC A ;} --$7E781E ;$A7B692 8F 1E 78 7E STA $7E781E[$7E:781E] ;/ ;$A7B696 D0 10 BNE $10 [$B6A8] ; If [$7E781E] != 0: return ;$A7B698 A2 00 00 LDX #$0000 ;\ ;$A7B69B 64 12 STZ $12 [$7E:0012] ;| ;$A7B69D AD 22 A9 LDA $A922 [$82:A922] ;} Move Kraid right 4 pixels ;$A7B6A0 85 14 STA $14 [$7E:0014] ;| ;$A7B6A2 22 AB C6 A0 JSL $A0C6AB[$A0:C6AB] ;/ ;$A7B6A6 B0 03 BCS $03 [$B6AB] ;} If returned carry clear: return ;$A7B6A8 7A PLY ;$A7B6A9 FA PLX ;$A7B6AA 6B RTL ;$A7B6AB A9 00 00 LDA #$0000 ;\ Else (returned carry set): ;$A7B6AE 8D 3E 18 STA $183E [$7E:183E] ;} Set room shaking 0 ;$A7B6B1 A9 07 00 LDA #$0007 ;\ ;$A7B6B4 8D 40 18 STA $1840 [$7E:1840] ;} Room shaking timer = 7 ;$A7B6B7 AD 7A 0F LDA $0F7A [$7E:0F7A] ;\ ;$A7B6BA 8D BA 10 STA $10BA [$7E:10BA] ;} Kraid foot X position = Kraid X position ;$A7B6BD 80 E9 BRA $E9 [$B6A8] ;;; { $A7B6BF A9 E4 AE LDA #$AEE4 ;\ $A7B6C2 8D A8 0F STA $0FA8 [$7E:0FA8] ;} ...Just go back to sleep $A7B6C5 A9 D7 B6 LDA #$B6D7 ;\ $A7B6C8 8D A8 0F STA $0FA8 [$7E:0FA8] ;} Kraid function = $B6D7 (done) $A7B6CB A9 52 97 LDA #$9752 ;\ $A7B6CE 8D AA 0F STA $0FAA [$7E:0FAA] ;} $0FAA = $9752 (done) $A7B6D1 AD 4A 97 LDA $974A [$A7:974A] ;\ $A7B6D4 8D AC 0F STA $0FAC [$7E:0FAC] ;} $0FAA delay = 5 $A7B6D7 DA PHX $A7B6D8 5A PHY $A7B6D9 20 32 AF JSR $AF32 [$A7:AF32] ; Process Kraid instruction ($0FAA) $A7B6DC C9 FF FF CMP #$FFFF ;\ $A7B6DF D0 06 BNE $06 [$B6E7] ;} If returned A = FFFFh: (never) $A7B6E1 A9 00 01 LDA #$0100 ;\ $A7B6E4 AD AC 0F LDA $0FAC [$7E:0FAC] ;} $0FAA delay = 0100h $A7B6E7 A2 E2 00 LDX #$00E2 ;\ $A7B6EA A0 00 00 LDY #$0000 ;| ;| $A7B6ED BF 00 C0 7E LDA $7EC000,x[$7E:C0E2] ;| $A7B6F1 29 1F 00 AND #$001F ;| $A7B6F4 18 CLC ;| $A7B6F5 69 01 00 ADC #$0001 ;| $A7B6F8 C9 1F 00 CMP #$001F ;| $A7B6FB 30 04 BMI $04 [$B701] ;| $A7B6FD C8 INY ;| $A7B6FE A9 1F 00 LDA #$001F ;| ;| $A7B701 85 12 STA $12 [$7E:0012] ;| $A7B703 BF 00 C0 7E LDA $7EC000,x[$7E:C0E2] ;| $A7B707 29 E0 03 AND #$03E0 ;| $A7B70A 18 CLC ;} Increment yellow component of $7E:C0E2..E7 $A7B70B 69 20 00 ADC #$0020 ;} Y = number of maximum intensities of green and red $A7B70E C9 E0 03 CMP #$03E0 ;| $A7B711 30 04 BMI $04 [$B717] ;| $A7B713 C8 INY ;| $A7B714 A9 E0 03 LDA #$03E0 ;| ;| $A7B717 85 14 STA $14 [$7E:0014] ;| $A7B719 BF 00 C0 7E LDA $7EC000,x[$7E:C0E2] ;| $A7B71D 29 00 FC AND #$FC00 ;| $A7B720 05 12 ORA $12 [$7E:0012] ;| $A7B722 05 14 ORA $14 [$7E:0014] ;| $A7B724 9F 00 C0 7E STA $7EC000,x[$7E:C0E2] ;| $A7B728 E8 INX ;| $A7B729 E8 INX ;| $A7B72A E0 E8 00 CPX #$00E8 ;| $A7B72D 30 BE BMI $BE [$B6ED] ;/ $A7B72F C0 06 00 CPY #$0006 ;\ $A7B732 30 06 BMI $06 [$B73A] ;} If maximum yellow: $A7B734 A9 3D B7 LDA #$B73D ;\ $A7B737 8D A8 0F STA $0FA8 [$7E:0FA8] ;} Kraid function = $B73D (done) $A7B73A 7A PLY $A7B73B FA PLX $A7B73C 6B RTL ;;; $A7B73D DA PHX $A7B73E 5A PHY $A7B73F A2 0E 00 LDX #$000E ;\ $A7B742 AD 8C 0F LDA $0F8C [$7E:0F8C] ;| ;| $A7B745 DF 0C 78 7E CMP $7E780C,x[$7E:781A] ;| $A7B749 10 04 BPL $04 [$B74F] ;| $A7B74B CA DEX ;| $A7B74C CA DEX ;| $A7B74D D0 F6 BNE $F6 [$B745] ;| ;} Y = (Current eighth of health) * 32 $A7B74F E8 INX ;| $A7B750 E8 INX ;| $A7B751 8A TXA ;| $A7B752 0A ASL A ;| $A7B753 0A ASL A ;| $A7B754 0A ASL A ;| $A7B755 0A ASL A ;| $A7B756 A8 TAY ;/ $A7B757 A2 E2 00 LDX #$00E2 ;\ $A7B75A 64 14 STZ $14 [$7E:0014] ;| ;| $A7B75C BF 00 C0 7E LDA $7EC000,x[$7E:C0E2] ;| $A7B760 29 1F 00 AND #$001F ;| $A7B763 85 12 STA $12 [$7E:0012] ;| $A7B765 B9 D5 B3 LDA $B3D5,y[$A7:B4D5] ;| $A7B768 29 1F 00 AND #$001F ;| $A7B76B C5 12 CMP $12 [$7E:0012] ;| $A7B76D F0 0B BEQ $0B [$B77A] ;| $A7B76F E6 14 INC $14 [$7E:0014] ;| $A7B771 BF 00 C0 7E LDA $7EC000,x[$7E:C0E2] ;| $A7B775 3A DEC A ;| $A7B776 9F 00 C0 7E STA $7EC000,x[$7E:C0E2] ;| ;| $A7B77A BF 00 C0 7E LDA $7EC000,x[$7E:C0E2] ;| $A7B77E 29 E0 03 AND #$03E0 ;} Decrement yellow component of $7E:C0E2..E7 down to [$B3D5+Y..B3DA+Y] $A7B781 85 12 STA $12 [$7E:0012] ;} $14 = number of green and red components that reached their destination $A7B783 B9 D5 B3 LDA $B3D5,y[$A7:B4D5] ;| $A7B786 29 E0 03 AND #$03E0 ;| $A7B789 C5 12 CMP $12 [$7E:0012] ;| $A7B78B F0 0E BEQ $0E [$B79B] ;| $A7B78D E6 14 INC $14 [$7E:0014] ;| $A7B78F BF 00 C0 7E LDA $7EC000,x[$7E:C0E2] ;| $A7B793 38 SEC ;| $A7B794 E9 20 00 SBC #$0020 ;| $A7B797 9F 00 C0 7E STA $7EC000,x[$7E:C0E2] ;| ;| $A7B79B E8 INX ;| $A7B79C E8 INX ;| $A7B79D C8 INY ;| $A7B79E C8 INY ;| $A7B79F E0 E8 00 CPX #$00E8 ;| $A7B7A2 30 B8 BMI $B8 [$B75C] ;/ $A7B7A4 A5 14 LDA $14 [$7E:0014] ;\ $A7B7A6 D0 12 BNE $12 [$B7BA] ;} If $14 == 0: $A7B7A8 A9 E4 AE LDA #$AEE4 ;\ $A7B7AB 8D A8 0F STA $0FA8 [$7E:0FA8] ;} Kraid function = $AEE4 (done) $A7B7AE A9 DA 96 LDA #$96DA ;\ $A7B7B1 8D AA 0F STA $0FAA [$7E:0FAA] ;| $A7B7B4 AD D2 96 LDA $96D2 [$A7:96D2] ;} $0FAA = $96DA (done) $A7B7B7 8D AC 0F STA $0FAC [$7E:0FAC] ;/ $A7B7BA 7A PLY $A7B7BB FA PLX $A7B7BC 6B RTL } ;;; Kraid arm graph AI ;;; $A7B7BD AD 15 09 LDA $0915 [$7E:0915] ;\ $A7B7C0 18 CLC ;| $A7B7C1 69 E0 00 ADC #$00E0 ;} $12 = BG1 Y position + E0h $A7B7C4 85 12 STA $12 [$7E:0012] ;/ $A7B7C6 AD 7E 0F LDA $0F7E [$7E:0F7E] ;\ $A7B7C9 38 SEC ;| $A7B7CA E9 2C 00 SBC #$002C ;} Kraid arm Y position = Kraid Y position - 2Ch $A7B7CD 8D BE 0F STA $0FBE [$7E:0FBE] ;/ $A7B7D0 A8 TAY $A7B7D1 AD C6 0F LDA $0FC6 [$7E:0FC6] ;\ $A7B7D4 09 00 01 ORA #$0100 ;| $A7B7D7 CC 15 09 CPY $0915 [$7E:0915] ;| $A7B7DA 30 07 BMI $07 [$B7E3] ;} If BG1 Y position <= Kraid arm Y position < BG1 Y position + E0h $A7B7DC C4 12 CPY $12 [$7E:0012] ;} Set Kraid arm visible $A7B7DE 10 03 BPL $03 [$B7E3] ;} Else: Set Kraid arm invisible $A7B7E0 29 FF FE AND #$FEFF ;| ;| $A7B7E3 8D C6 0F STA $0FC6 [$7E:0FC6] ;/ $A7B7E6 AD 7A 0F LDA $0F7A [$7E:0F7A] ;\ $A7B7E9 18 CLC ;| $A7B7EA 69 00 00 ADC #$0000 ;} Kraid arm X position = Kraid X position $A7B7ED 8D BA 0F STA $0FBA [$7E:0FBA] ;/ $A7B7F0 AF 0A 78 7E LDA $7E780A[$7E:780A] ;\ $A7B7F4 89 00 FF BIT #$FF00 ;} If [$7E780B] set: $A7B7F7 F0 07 BEQ $07 [$B800] ;/ $A7B7F9 AD D4 0F LDA $0FD4 [$82:0FD4] ;\ $A7B7FC 1A INC A ;} Increment Kraid arm instruction delay $A7B7FD 8D D4 0F STA $0FD4 [$82:0FD4] ;/ $A7B800 6B RTL ;;; Kraid top lint graph AI ;;; $A7B801 A2 80 00 LDX #$0080 ; X = Kraid top lint enemy index $A7B804 A9 FF 7F LDA #$7FFF ;\ $A7B807 9D 94 0F STA $0F94,x[$7E:1014] ;} Kraid top lint instruction delay = 7FFFh $A7B80A 4C 22 B8 JMP $B822 [$A7:B822] ; Kraid lint graph AI ;;; Kraid middle lint graph AI ;;; $A7B80D A2 C0 00 LDX #$00C0 ; X = Kraid middle lint enemy index $A7B810 A9 FF 7F LDA #$7FFF ;\ $A7B813 9D 94 0F STA $0F94,x[$7E:1054] ;} Kraid top lint instruction delay = 7FFFh $A7B816 4C 22 B8 JMP $B822 [$A7:B822] ; Kraid lint graph AI ;;; Kraid bottom lint graph AI ;;; $A7B819 A2 00 01 LDX #$0100 ; X = +Kraid bottom lint enemy index $A7B81C A9 FF 7F LDA #$7FFF ;\ $A7B81F 9D 94 0F STA $0F94,x[$7E:1094] ;} Kraid top lint instruction delay = 7FFFh ;;; Kraid lint graph AI ;;; ; Takes parameter: X = enemy index $A7B822 20 6A B9 JSR $B96A [$A7:B96A] ; $A7B825 AD 15 09 LDA $0915 [$7E:0915] ;\ $A7B828 18 CLC ;| $A7B829 69 E0 00 ADC #$00E0 ;} $12 = BG1 Y position + E0h $A7B82C 85 12 STA $12 [$7E:0012] ;/ $A7B82E 7C A8 0F JMP ($0FA8,x)[$A7:B831] ; Execute enemy function $A7B831 6B RTL ;;; { $A7B832 BD 86 0F LDA $0F86,x[$7E:1086] ;\ $A7B835 29 FF FE AND #$FEFF ;| $A7B838 29 FF FB AND #$FBFF ;} Clear 0500h from enemy property bits (invisible and untouchable) $A7B83B 9D 86 0F STA $0F86,x[$7E:1086] ;/ $A7B83E AD 7A 0F LDA $0F7A [$7E:0F7A] ;\ $A7B841 18 CLC ;| $A7B842 7D AC 0F ADC $0FAC,x[$7E:10AC] ;| $A7B845 38 SEC ;} Enemy X position += [$0FAC,X] - [$0FAA,X] $A7B846 FD AA 0F SBC $0FAA,x[$7E:10AA] ;| $A7B849 9D 7A 0F STA $0F7A,x[$7E:107A] ;/ $A7B84C BD AA 0F LDA $0FAA,x[$7E:10AA] ;\ $A7B84F 18 CLC ;| $A7B850 69 01 00 ADC #$0001 ;} Increment $0FAA,X $A7B853 9D AA 0F STA $0FAA,x[$7E:10AA] ;/ $A7B856 C9 20 00 CMP #$0020 ;\ $A7B859 30 0C BMI $0C [$B867] ;} If [$0FAA,X] >= 20h: $A7B85B A9 68 B8 LDA #$B868 ;\ $A7B85E 9D A8 0F STA $0FA8,x[$7E:10A8] ;} $0FA8,X = $B868 $A7B861 A9 1E 00 LDA #$001E ;\ $A7B864 9D B2 0F STA $0FB2,x[$7E:10B2] ;} $0FB2,X = 001Eh $A7B867 6B RTL ;;; $A7B868 A0 00 00 LDY #$0000 ;\ $A7B86B BD B2 0F LDA $0FB2,x[$7E:10B2] ;| $A7B86E 89 01 00 BIT #$0001 ;| $A7B871 F0 03 BEQ $03 [$B876] ;| $A7B873 A0 00 0E LDY #$0E00 ;} If [$0FB2,X] has 0001: enemy palette slot = 0E00h, else = 0000 ;| $A7B876 98 TYA ;| $A7B877 9D 96 0F STA $0F96,x[$7E:1096] ;/ $A7B87A AD 7A 0F LDA $0F7A [$7E:0F7A] ;\ $A7B87D 18 CLC ;| $A7B87E 7D AC 0F ADC $0FAC,x[$7E:10AC] ;| $A7B881 38 SEC ;} Enemy X position += [$0FAC,X] - [$0FAA,X] $A7B882 FD AA 0F SBC $0FAA,x[$7E:10AA] ;| $A7B885 9D 7A 0F STA $0F7A,x[$7E:107A] ;/ $A7B888 DE B2 0F DEC $0FB2,x[$7E:10B2] ; Decrement $0FB2,X $A7B88B D0 0D BNE $0D [$B89A] ; If [$0FB2,X] == 0: $A7B88D A9 9B B8 LDA #$B89B ;\ $A7B890 9D A8 0F STA $0FA8,x[$7E:10A8] ;} $0FA8,X = $B89B $A7B893 A9 1F 00 LDA #$001F ;\ $A7B896 22 4D 91 80 JSL $80914D[$80:914D] ;} Sound library 3: 1Fh $A7B89A 6B RTL ;;; $A7B89B BD 7C 0F LDA $0F7C,x[$7E:107C] ;\ $A7B89E 38 SEC ;| $A7B89F ED 26 A9 SBC $A926 [$A7:A926] ;| $A7B8A2 9D 7C 0F STA $0F7C,x[$7E:107C] ;} Enemy X position -= 3.8000h $A7B8A5 BD 7A 0F LDA $0F7A,x[$7E:107A] ;| $A7B8A8 ED 28 A9 SBC $A928 [$A7:A928] ;| $A7B8AB 9D 7A 0F STA $0F7A,x[$7E:107A] ;/ $A7B8AE C9 38 00 CMP #$0038 ;\ $A7B8B1 10 0B BPL $0B [$B8BE] ;} If enemy X position < 38h $A7B8B3 48 PHA $A7B8B4 BD 86 0F LDA $0F86,x[$7E:1086] ;\ $A7B8B7 09 00 04 ORA #$0400 ;} Sets enemy properties to ignore Samus/projectiles $A7B8BA 9D 86 0F STA $0F86,x[$7E:1086] ;/ $A7B8BD 68 PLA $A7B8BE C9 20 00 CMP #$0020 ;\ $A7B8C1 10 1F BPL $1F [$B8E2] ;} If Enemy X position < 20h $A7B8C3 BD 86 0F LDA $0F86,x[$7E:1086] ;\ $A7B8C6 09 00 01 ORA #$0100 ;} Set enemy properties to invisible $A7B8C9 9D 86 0F STA $0F86,x[$7E:1086] ;/ $A7B8CC A9 23 B9 LDA #$B923 ;\ $A7B8CF 9D A8 0F STA $0FA8,x[$7E:10A8] ;} Enemy function = vertically align enemy to Kraid; decrement enemy function timer $A7B8D2 A9 2C 01 LDA #$012C ;\ $A7B8D5 9D B2 0F STA $0FB2,x[$7E:10B2] ;} Enemy function timer = 012Ch $A7B8D8 A9 32 B8 LDA #$B832 ;\ $A7B8DB 9F 00 78 7E STA $7E7800,x[$7E:7900] ;} Enemy next function = $B832 (done) $A7B8DF 9E AA 0F STZ $0FAA,x[$7E:10AA] ; Clear $0FAA,X $A7B8E2 22 E7 AB A0 JSL $A0ABE7[$A0:ABE7] ;\ $A7B8E6 29 FF FF AND #$FFFF ;} If Samus is not touching the enemy: return $A7B8E9 F0 1B BEQ $1B [$B906] ;/ $A7B8EB AD 56 0B LDA $0B56 [$7E:0B56] ;\ $A7B8EE 38 SEC ;| $A7B8EF ED 26 A9 SBC $A926 [$A7:A926] ;| $A7B8F2 8D 56 0B STA $0B56 [$7E:0B56] ;| $A7B8F5 AD 58 0B LDA $0B58 [$7E:0B58] ;| $A7B8F8 ED 28 A9 SBC $A928 [$A7:A928] ;} Distance to move Samus -= 3.8000h, cap at -10h $A7B8FB C9 F0 FF CMP #$FFF0 ;| $A7B8FE 10 03 BPL $03 [$B903] ;| $A7B900 A9 F0 FF LDA #$FFF0 ;| ;| $A7B903 8D 58 0B STA $0B58 [$7E:0B58] ;/ $A7B906 6B RTL } ;;; $A7B907 AD FA 0F LDA $0FFA [$7E:0FFA] ;\ $A7B90A C9 00 01 CMP #$0100 ;} If top lint X position >= 100h: $A7B90D 30 13 BMI $13 [$B922] ;/ $A7B90F BF 00 78 7E LDA $7E7800,x[$7E:7808] ;\ $A7B913 9D A8 0F STA $0FA8,x[$7E:0FB0] ;} Enemy function = enemy next function $A7B916 BD 86 0F LDA $0F86,x[$7E:0F8E] ;\ $A7B919 29 FF FE AND #$FEFF ;| $A7B91C 29 FF FB AND #$FBFF ;} Clear enemy properties to visibile and interactible $A7B91F 9D 86 0F STA $0F86,x[$7E:0F8E] ;/ $A7B922 6B RTL ;;; Vertically align enemy to Kraid; decrement enemy function timer ;;; $A7B923 AD 7A 0F LDA $0F7A [$7E:0F7A] ;\ $A7B926 38 SEC ;| $A7B927 FD 82 0F SBC $0F82,x[$7E:1002] ;} Enemy X position = Kraid X position - enemy X-radius $A7B92A 9D 7A 0F STA $0F7A,x[$7E:0FFA] ;/ $A7B92D BD B2 0F LDA $0FB2,x[$7E:0FB2] ;\ $A7B930 F0 0C BEQ $0C [$B93E] ;} If enemy function timer != 0: $A7B932 DE B2 0F DEC $0FB2,x[$7E:0FB2] ; Decrement enemy function timer $A7B935 D0 07 BNE $07 [$B93E] ; If enemy function == 0: $A7B937 BF 00 78 7E LDA $7E7800,x[$7E:7980] ;\ $A7B93B 9D A8 0F STA $0FA8,x[$7E:1128] ;} Enemy function = next enemy function $A7B93E 6B RTL ;;; Decrement enemy function timer; set enemy instruction $8887 ;;; $A7B93F AE 54 0E LDX $0E54 [$7E:0E54] $A7B942 BD B2 0F LDA $0FB2,x[$7E:10F2] ;\ $A7B945 F0 18 BEQ $18 [$B95F] ;} If enemy function timer != 0: $A7B947 DE B2 0F DEC $0FB2,x[$7E:10F2] ; Decrement enemy function timer $A7B94A D0 13 BNE $13 [$B95F] ; If enemy function == 0: $A7B94C BF 00 78 7E LDA $7E7800,x[$7E:7940] ;\ $A7B950 9D A8 0F STA $0FA8,x[$7E:10E8] ;} Enemy function = next enemy function $A7B953 A9 87 88 LDA #$8887 ;\ $A7B956 9D 92 0F STA $0F92,x[$7E:10D2] ;} Enemy instruction = $8887 (done) $A7B959 A9 01 00 LDA #$0001 ;\ $A7B95C 9D 94 0F STA $0F94,x[$7E:10D4] ;} Enemy instruction delay = 1 $A7B95F 6B RTL ;;; $A7B960 20 05 C0 JSR $C005 [$A7:C005] ; Execute subroutine $C005 (done) $A7B963 80 C8 BRA $C8 [$B92D] ; Decrement enemy function timer ;;; Process Kraid instruction and decrement enemy function timer ;;; $A7B965 20 32 AF JSR $AF32 [$A7:AF32] ; Process Kraid instruction ($0FAA) $A7B968 80 C3 BRA $C3 [$B92D] ; Decrement enemy function timer ;;; $A7B96A BD 86 0F LDA $0F86,x[$7E:1006] ;\ $A7B96D 89 00 04 BIT #$0400 ;| $A7B970 F0 01 BEQ $01 [$B973] ;} If enemy set to ignore Samus/projectiles: return $A7B972 60 RTS ;/ $A7B973 AD A8 18 LDA $18A8 [$7E:18A8] ;\ $A7B976 D0 7D BNE $7D [$B9F5] ;} If Samus' invincibility timer is set: return $A7B978 BD 7A 0F LDA $0F7A,x[$7E:0FFA] ;\ $A7B97B 18 CLC ;| $A7B97C 6D B7 92 ADC $92B7 [$A7:92B7] ;| $A7B97F 38 SEC ;| $A7B980 E9 02 00 SBC #$0002 ;| $A7B983 85 12 STA $12 [$7E:0012] ;| $A7B985 AD F6 0A LDA $0AF6 [$7E:0AF6] ;| $A7B988 18 CLC ;| $A7B989 6D FE 0A ADC $0AFE [$7E:0AFE] ;} If not Samus left boundary < Kraid lint left boundary - 2 <= Samus right boundary: return $A7B98C C5 12 CMP $12 [$7E:0012] ;| $A7B98E 30 65 BMI $65 [$B9F5] ;| $A7B990 AD F6 0A LDA $0AF6 [$7E:0AF6] ;| $A7B993 38 SEC ;| $A7B994 ED FE 0A SBC $0AFE [$7E:0AFE] ;| $A7B997 C5 12 CMP $12 [$7E:0012] ;| $A7B999 10 5A BPL $5A [$B9F5] ;/ $A7B99B BD 7E 0F LDA $0F7E,x[$7E:107E] ;\ $A7B99E 18 CLC ;| $A7B99F 6D B9 92 ADC $92B9 [$A7:92B9] ;| $A7B9A2 18 CLC ;| $A7B9A3 69 02 00 ADC #$0002 ;| $A7B9A6 85 16 STA $16 [$7E:0016] ;} If Samus bottom boundary < Kraid lint top boundary + 2: return $A7B9A8 AD FA 0A LDA $0AFA [$7E:0AFA] ;| $A7B9AB 18 CLC ;| $A7B9AC 6D 00 0B ADC $0B00 [$7E:0B00] ;| $A7B9AF C5 16 CMP $16 [$7E:0016] ;| $A7B9B1 30 42 BMI $42 [$B9F5] ;/ $A7B9B3 BD 7E 0F LDA $0F7E,x[$7E:0FFE] ;\ $A7B9B6 18 CLC ;| $A7B9B7 6D BD 92 ADC $92BD [$A7:92BD] ;| $A7B9BA 38 SEC ;| $A7B9BB E9 02 00 SBC #$0002 ;| $A7B9BE 85 18 STA $18 [$7E:0018] ;} If Samus top boundary >= Kraid lint bottom boundary - 2: return $A7B9C0 AD FA 0A LDA $0AFA [$7E:0AFA] ;| $A7B9C3 38 SEC ;| $A7B9C4 ED 00 0B SBC $0B00 [$7E:0B00] ;| $A7B9C7 C5 18 CMP $18 [$7E:0018] ;| $A7B9C9 10 2A BPL $2A [$B9F5] ;/ $A7B9CB AD FE 0A LDA $0AFE [$7E:0AFE] ;\ $A7B9CE 18 CLC ;| $A7B9CF 69 10 00 ADC #$0010 ;| $A7B9D2 49 FF FF EOR #$FFFF ;} A = Samus movement distance X - Samus radius X - 11h $A7B9D5 18 CLC ;| $A7B9D6 6D 58 0B ADC $0B58 [$7E:0B58] ;/ $A7B9D9 C9 10 00 CMP #$0010 ;\ $A7B9DC 30 03 BMI $03 [$B9E1] ;} If A >= 10h: $A7B9DE A9 10 00 LDA #$0010 ; A = 10h $A7B9E1 8D 58 0B STA $0B58 [$7E:0B58] ; Samus movement distance X = A $A7B9E4 DA PHX $A7B9E5 08 PHP $A7B9E6 22 77 A4 A0 JSL $A0A477[$A0:A477] ; Normal enemy touch AI $A7B9EA 28 PLP $A7B9EB FA PLX $A7B9EC BD 86 0F LDA $0F86,x[$7E:1006] ;\ $A7B9EF 09 00 04 ORA #$0400 ;} Set enemy to ignore Samus/projectiles $A7B9F2 9D 86 0F STA $0F86,x[$7E:1006] ;/ $A7B9F5 60 RTS ;;; Kraid foot graph AI ;;; $A7B9F6 AD 7A 0F LDA $0F7A [$7E:0F7A] ;\ $A7B9F9 8D BA 10 STA $10BA [$7E:10BA] ;} Kraid foot X position = Kraid X position $A7B9FC AD 7E 0F LDA $0F7E [$7E:0F7E] ;\ $A7B9FF 18 CLC ;| $A7BA00 69 64 00 ADC #$0064 ;} Kraid foot Y position = Kraid Y position + 100 $A7BA03 8D BE 10 STA $10BE [$7E:10BE] ;/ $A7BA06 A8 TAY ; Y = Kraid foot Y position $A7BA07 38 SEC ;\ $A7BA08 E9 E0 00 SBC #$00E0 ;} X = Kraid foot Y position - E0h $A7BA0B AA TAX ;/ $A7BA0C AD C6 10 LDA $10C6 [$7E:10C6] ;\ $A7BA0F 29 FF FE AND #$FEFF ;| $A7BA12 CC 15 09 CPY $0915 [$7E:0915] ;| $A7BA15 10 05 BPL $05 [$BA1C] ;| $A7BA17 09 00 01 ORA #$0100 ;| $A7BA1A 80 08 BRA $08 [$BA24] ;} If Kraid foot Y position - E0h < BG1 Y position <= Kraid foot Y position: ;} Set Kraid foot visible $A7BA1C EC 15 09 CPX $0915 [$7E:0915] ;} Else: Set Kraid foot invisible $A7BA1F 30 03 BMI $03 [$BA24] ;| $A7BA21 09 00 01 ORA #$0100 ;| ;| $A7BA24 8D C6 10 STA $10C6 [$7E:10C6] ;/ $A7BA27 AE 54 0E LDX $0E54 [$7E:0E54] ; X = Kraid foot index $A7BA2A 6C E8 10 JMP ($10E8)[$A7:BA2D] ; Execute Kraid foot function $A7BA2D 6B RTL ;;; $A7BA2E AF 40 79 7E LDA $7E7940[$7E:7940] ;\ $A7BA32 3A DEC A ;} Decrement Kraid foot next function $A7BA33 8F 40 79 7E STA $7E7940[$7E:7940] ;/ $A7BA37 D0 43 BNE $43 [$BA7C] ; If Kraid foot next function != 0: return $A7BA39 A2 00 00 LDX #$0000 ;\ ;| $A7BA3C AD 7A 0F LDA $0F7A [$7E:0F7A] ;| $A7BA3F DD 7D BA CMP $BA7D,x[$A7:BA7D] ;| $A7BA42 F0 0C BEQ $0C [$BA50] ;| $A7BA44 E8 INX ;} X = index of Kraid X position in [$BA7D + X] or 18h (18h should fail horribly though) :/ $A7BA45 E8 INX ;| $A7BA46 E8 INX ;| $A7BA47 E8 INX ;| $A7BA48 E0 18 00 CPX #$0018 ;| $A7BA4B 30 EF BMI $EF [$BA3C] ;/ $A7BA50 AD E5 05 LDA $05E5 [$7E:05E5] ;\ $A7BA53 29 1C 00 AND #$001C ;| $A7BA56 C9 10 00 CMP #$0010 ;} A = randomly 10h, 14h, 18h or 1Ch $A7BA59 30 03 BMI $03 [$BA5E] ;| $A7BA5B A9 10 00 LDA #$0010 ;/ $A7BA5E 18 CLC ;\ $A7BA5F 7D 7F BA ADC $BA7F,x[$A7:BA83] ;} X = [$BA7D + X+2] + A $A7BA62 AA TAX ;/ $A7BA63 BD 02 00 LDA $0002,x[$A7:BABB] ;\ $A7BA66 A8 TAY ;} Y = [X+2] $A7BA67 BD 00 00 LDA $0000,x[$A7:BAB9] ;\ $A7BA6A CD 7A 0F CMP $0F7A [$7E:0F7A] ;} If [X] < Kraid X position: $A7BA6D 10 07 BPL $07 [$BA76] ;/ $A7BA6F BD 00 00 LDA $0000,x[$A7:BAF9] $A7BA72 20 29 BB JSR $BB29 [$A7:BB29] ; Execute subroutine $BB29 (done) $A7BA75 6B RTL $A7BA76 BD 00 00 LDA $0000,x[$A7:BAB9] ;\ Else ([X] >= Kraid X position): $A7BA79 20 0D BB JSR $BB0D [$A7:BB0D] ; Execute subroutine $BB0D (done) $A7BA7C 6B RTL $A7BA7D dw 00F0,BA95, 0160,BAA9, 0180,BABD, 00D0,BAD1, 0140,BAE5, 0170,BAF9, 0180,0158 $A7BAA5 db 70, 01, 2C, 00 $A7BAB9 db 70, 01, 2C, 00 $A7BACD db 70, 01, 2C, 00 $A7BAD9 db 80, 01, 58, 01 $A7BAED db 80, 01, 58, 01 $A7BAF5 db 70, 01, 2C, 00, F0, 00, 00, 01 $A7BB05 db D0, 00, 2C, 00, 40, 01, 2C, 00 ;;; $A7BB0D 8F 1E 78 7E STA $7E781E[$7E:781E] ; $7E781E = A $A7BB11 98 TYA ;\ $A7BB12 8F 40 79 7E STA $7E7940[$7E:7940] ;} Kraid foot next function = Y (probably not actually, Y=180) $A7BB16 A9 45 BB LDA #$BB45 ;\ $A7BB19 8D E8 10 STA $10E8 [$7E:10E8] ;} Kraid foot function = $BB45 (done) $A7BB1C A9 01 00 LDA #$0001 ;\ $A7BB1F 8D D4 10 STA $10D4 [$7E:10D4] ;} Kraid foot instruction delay = 1 $A7BB22 A9 87 88 LDA #$8887 ;\ $A7BB25 8D D2 10 STA $10D2 [$7E:10D2] ;} Kraid foot instruction = $8887 (done) $A7BB28 60 RTS ;;; $A7BB29 8F 1E 78 7E STA $7E781E[$7E:781E] ; $7E781E = A $A7BB2D 98 TYA ;\ $A7BB2E 8F 40 79 7E STA $7E7940[$7E:7940] ;} Kraid foot next function = Y $A7BB32 A9 AE BB LDA #$BBAE ;\ $A7BB35 8D E8 10 STA $10E8 [$7E:10E8] ;} Kraid foot function = $BBAE (done) $A7BB38 A9 01 00 LDA #$0001 ;\ $A7BB3B 8D D4 10 STA $10D4 [$7E:10D4] ;} Kraid foot instruction delay = 1 $A7BB3E A9 F3 86 LDA #$86F3 ;\ $A7BB41 8D D2 10 STA $10D2 [$7E:10D2] ;} Kraid foot instruction = $86F3 (done) $A7BB44 60 RTS ;;; $A7BB45 AF 1E 78 7E LDA $7E781E[$7E:781E] ;\ $A7BB49 CD 7A 0F CMP $0F7A [$7E:0F7A] ;| $A7BB4C F0 05 BEQ $05 [$BB53] ;} If [$7E781E] > Kraid X position: return $A7BB4E 10 1D BPL $1D [$BB6D] ;/ $A7BB50 8D 7A 0F STA $0F7A [$7E:0F7A] ; Kraid X position = [$7E781E] $A7BB53 AD D2 10 LDA $10D2 [$7E:10D2] ;\ $A7BB56 C9 39 89 CMP #$8939 ;} If Kraid foot instruction >= $8939: $A7BB59 30 12 BMI $12 [$BB6D] ;/ $A7BB5B A9 2E BA LDA #$BA2E ;\ $A7BB5E 8D E8 10 STA $10E8 [$7E:10E8] ;} Kraid foot function = $BA2E (done) $A7BB61 A9 01 00 LDA #$0001 ;\ $A7BB64 8D D4 10 STA $10D4 [$7E:10D4] ;} Kraid foot instruction delay = 1 $A7BB67 A9 ED 86 LDA #$86ED ;\ $A7BB6A 8D D2 10 STA $10D2 [$7E:10D2] ;} Kraid foot instruction = $86ED (done) $A7BB6D 6B RTL ;;; { $A7BB6E AF 1E 78 7E LDA $7E781E[$7E:781E] ;\ $A7BB72 CD 7A 0F CMP $0F7A [$7E:0F7A] ;| $A7BB75 F0 05 BEQ $05 [$BB7C] ;} If [$7E781E] > Kraid X position: return $A7BB77 10 2A BPL $2A [$BBA3] ;/ $A7BB79 8D 7A 0F STA $0F7A [$7E:0F7A] ; Kraid X position = [$7E781E] $A7BB7C AD D2 10 LDA $10D2 [$7E:10D2] ;\ $A7BB7F C9 39 89 CMP #$8939 ;} If Kraid foot instruction >= $8939: $A7BB82 30 1F BMI $1F [$BBA3] ;/ $A7BB84 A9 2D B9 LDA #$B92D ;\ $A7BB87 8D E8 10 STA $10E8 [$7E:10E8] ;} Kraid foot function = decrement enemy function timer $A7BB8A A9 B4 00 LDA #$00B4 ;\ $A7BB8D 8D F2 10 STA $10F2 [$7E:10F2] ;} Kraid foot function timer = 180 $A7BB90 A9 A4 BB LDA #$BBA4 ;\ $A7BB93 8F 40 79 7E STA $7E7940[$7E:7940] ;} Kraid foot next function = $BBA4 (done) $A7BB97 A9 01 00 LDA #$0001 ;\ $A7BB9A 8D D4 10 STA $10D4 [$7E:10D4] ;} Kraid foot instruction delay = 1 $A7BB9D A9 ED 86 LDA #$86ED ;\ $A7BBA0 8D D2 10 STA $10D2 [$7E:10D2] ;} Kraid foot instruction = $86ED (done) $A7BBA3 6B RTL ;;; $A7BBA4 A9 60 01 LDA #$0160 ; A = 0160h $A7BBA7 A0 B4 00 LDY #$00B4 ; Y = 180 $A7BBAA 20 0D BB JSR $BB0D [$A7:BB0D] ; Execute subroutine $BB0D (done) $A7BBAD 6B RTL } ;;; $A7BBAE AF 1E 78 7E LDA $7E781E[$7E:781E] ;\ $A7BBB2 CD 7A 0F CMP $0F7A [$7E:0F7A] ;} If [$7E781E] < Kraid X position: $A7BBB5 30 1E BMI $1E [$BBD5] ;/ $A7BBB7 8D 7A 0F STA $0F7A [$7E:0F7A] ; Kraid X position = [$7E781E] $A7BBBA AD D2 10 LDA $10D2 [$7E:10D2] ;\ $A7BBBD C9 BB 87 CMP #$87BB ;} If Kraid foot instruction == $8939: $A7BBC0 D0 12 BNE $12 [$BBD4] ;/ $A7BBC2 A9 2E BA LDA #$BA2E ;\ $A7BBC5 8D E8 10 STA $10E8 [$7E:10E8] ;} Kraid foot function = $BA2E (done) $A7BBC8 A9 01 00 LDA #$0001 ;\ $A7BBCB 8D D4 10 STA $10D4 [$7E:10D4] ;} Kraid foot instruction delay = 1 $A7BBCE A9 ED 86 LDA #$86ED ;\ $A7BBD1 8D D2 10 STA $10D2 [$7E:10D2] ;} Kraid foot instruction = $86ED (done) $A7BBD4 6B RTL $A7BBD5 AD D2 10 LDA $10D2 [$7E:10D2] ;\ Else ([$7E781E] >= Kraid X position): $A7BBD8 C9 BB 87 CMP #$87BB ;} If Kraid foot instruction == $87BB $A7BBDB D0 F7 BNE $F7 [$BBD4] ;/ $A7BBDD A9 F3 86 LDA #$86F3 ;\ $A7BBE0 8D D2 10 STA $10D2 [$7E:10D2] ;} Kraid foot instruction = $86F3 (done) $A7BBE3 A9 01 00 LDA #$0001 ;\ $A7BBE6 8D D4 10 STA $10D4 [$7E:10D4] ;} Kraid foot instruction delay = 1 $A7BBE9 6B RTL ;;; $A7BBEA 20 32 AF JSR $AF32 [$A7:AF32] ; Process Kraid instruction ($0FAA) $A7BBED C9 FF FF CMP #$FFFF ;\ $A7BBF0 F0 31 BEQ $31 [$BC23] ;} If not returned A = FFFFh: $A7BBF2 AD AA 0F LDA $0FAA [$7E:0FAA] ;\ $A7BBF5 38 SEC ;| $A7BBF6 E9 08 00 SBC #$0008 ;| $A7BBF9 AA TAX ;} If [[$0FAA]-6] == $A0C8: $A7BBFA BD 02 00 LDA $0002,x[$A7:96D4] ;| $A7BBFD C9 C8 A0 CMP #$A0C8 ;| $A7BC00 D0 20 BNE $20 [$BC22] ;/ $A7BC02 AD AC 0F LDA $0FAC [$7E:0FAC] ;\ $A7BC05 29 0F 00 AND #$000F ;} If [$0FAC] is multiple of 16: $A7BC08 D0 18 BNE $18 [$BC22] ;/ $A7BC0A A0 45 9C LDY #$9C45 ;\ $A7BC0D AD E5 05 LDA $05E5 [$7E:05E5] ;| $A7BC10 29 0E 00 AND #$000E ;| $A7BC13 AA TAX ;} Spawn ER projectile $9C45 with random parameter FB40h/FB80h/FC00h/FC40h $A7BC14 BD 65 BC LDA $BC65,x[$A7:BC65] ;| $A7BC17 22 27 80 86 JSL $868027[$86:8027] ;/ $A7BC1B A9 1E 00 LDA #$001E ;\ $A7BC1E 22 4D 91 80 JSL $80914D[$80:914D] ;} Sound library 3: 1Eh $A7BC22 6B RTL ; This branch is never taken, $AF32 cannot return A = FFFFh $A7BC23 20 E9 AD JSR $ADE9 [$A7:ADE9] ; Execute subroutine $ADE9 (done) $A7BC26 A9 5A 00 LDA #$005A ;\ $A7BC29 8D AC 0F STA $0FAC [$7E:0FAC] ;} $0FAC = 90 $A7BC2C AF 0A 78 7E LDA $7E780A[$7E:780A] ;\ $A7BC30 89 04 00 BIT #$0004 ;} If [$7E780A] hasn't 0004h: clear $7E780A and return $A7BC33 F0 28 BEQ $28 [$BC5D] ;/ $A7BC35 38 SEC ;\ $A7BC36 E9 00 01 SBC #$0100 ;} $7E780A -= 100h $A7BC39 8F 0A 78 7E STA $7E780A[$7E:780A] ;/ $A7BC3D 29 00 FF AND #$FF00 ;\ $A7BC40 F0 1B BEQ $1B [$BC5D] ;} If [$7E780B] == 0: clear $7E780A and return $A7BC42 A9 2D B9 LDA #$B92D ;\ $A7BC45 8D A8 0F STA $0FA8 [$7E:0FA8] ;} Kraid function = decrement enemy function timer $A7BC48 A9 40 00 LDA #$0040 ;\ $A7BC4B 8D B2 0F STA $0FB2 [$7E:0FB2] ;} Kraid function timer = 64 $A7BC4E A9 BF B6 LDA #$B6BF ;\ $A7BC51 8F 00 78 7E STA $7E7800[$7E:7800] ;} Kraid next function = $B6BF (done) $A7BC55 A9 02 00 LDA #$0002 ;\ $A7BC58 8F 02 78 7E STA $7E7802[$7E:7802] ;} $7E7802 = 2 $A7BC5C 6B RTL $A7BC5D A9 00 00 LDA #$0000 $A7BC60 8F 0A 78 7E STA $7E780A[$7E:780A] $A7BC64 6B RTL $A7BC65 dw FC00, FC40, FB40, FB80, FB40, FC00, FB80, FC40 ;;; Kraid fingernail_A touch AI ;;; $A7BCCF 22 77 A4 A0 JSL $A0A477[$A0:A477] ; Normal enemy touch AI $A7BCD3 AE 54 0E LDX $0E54 [$7E:0E54] $A7BCD6 22 AF A3 A0 JSL $A0A3AF[$A0:A3AF] ; Death animation $A7BCDA AE 54 0E LDX $0E54 [$7E:0E54] $A7BCDD 6B RTL ;;; Kraid fingernail_B touch AI ;;; $A7BCDE 22 77 A4 A0 JSL $A0A477[$A0:A477] ; Normal enemy touch AI $A7BCE2 AE 54 0E LDX $0E54 [$7E:0E54] $A7BCE5 22 AF A3 A0 JSL $A0A3AF[$A0:A3AF] ; Death animation $A7BCE9 AE 54 0E LDX $0E54 [$7E:0E54] $A7BCEC 6B RTL $A7BCED 6B RTL $A7BCEE 6B RTL ;;; Kraid fingernail_A initiation AI ;;; { $A7BCEF AE 54 0E LDX $0E54 [$7E:0E54] $A7BCF2 AD 96 0F LDA $0F96 [$7E:0F96] ;\ $A7BCF5 9D 96 0F STA $0F96,x[$7E:1116] ;} Enemy palette = Kraid palette $A7BCF8 A9 28 00 LDA #$0028 ;\ $A7BCFB 9D AA 0F STA $0FAA,x[$7E:112A] ;} [$0FAA + X] = 40 $A7BCFE BD 86 0F LDA $0F86,x[$7E:1106] ;\ $A7BD01 09 00 01 ORA #$0100 ;} Set enemy invisible $A7BD04 9D 86 0F STA $0F86,x[$7E:1106] ;/ $A7BD07 A9 FF 7F LDA #$7FFF ;\ $A7BD0A 9D 94 0F STA $0F94,x[$7E:1114] ;} Enemy instruction delay = 7FFFh $A7BD0D A9 0A 8B LDA #$8B0A ;\ $A7BD10 9D 92 0F STA $0F92,x[$7E:1112] ;} Enemy instruction = $8B0A (done) $A7BD13 AD 0C 8B LDA $8B0C [$A7:8B0C] ;\ $A7BD16 9D 8E 0F STA $0F8E,x[$7E:110E] ;} Enemy OAM / hitbox = $A617 (done) $A7BD19 A9 60 BD LDA #$BD60 ;\ $A7BD1C 9F 00 78 7E STA $7E7800,x[$7E:7980] ;} Enemy next function = $BD60 (done) $A7BD20 A9 2D B9 LDA #$B92D ;\ $A7BD23 9D A8 0F STA $0FA8,x[$7E:1128] ;} Enemy function = decrement enemy function timer $A7BD26 A9 40 00 LDA #$0040 ;\ $A7BD29 9D B2 0F STA $0FB2,x[$7E:1132] ;} Enemy function timer = 64 $A7BD2C 6B RTL ;;; Kraid fingernail_B initiation AI ;;; ; If you even thought about looking at these next two instructions, you're just monkeying around $A7BD2D AE 54 0E LDX $0E54 [$7E:0E54] $A7BD30 80 C0 BRA $C0 [$BCF2] ;;; Kraid fingernail_A graph AI ;;; $A7BD32 C2 30 REP #$30 $A7BD34 AD 8C 0F LDA $0F8C [$7E:0F8C] ;\ $A7BD37 C9 01 00 CMP #$0001 ;} If Kraid health >= 1: $A7BD3A 30 03 BMI $03 [$BD3F] ;/ $A7BD3C 6C 28 11 JMP ($1128)[$A7:B92D] ; Execute Kraid fingernail_A instruction $A7BD3F AD 06 11 LDA $1106 [$A0:1106] ;\ $A7BD42 09 00 03 ORA #$0300 ;} Set Kraid fingernail_A invisible and to delete $A7BD45 8D 06 11 STA $1106 [$A0:1106] ;/ $A7BD48 6B RTL ;;; Kraid fingernail_B graph AI ;;; $A7BD49 C2 30 REP #$30 $A7BD4B AD 8C 0F LDA $0F8C [$7E:0F8C] ;\ $A7BD4E C9 01 00 CMP #$0001 ;} If Kraid health >= 1: $A7BD51 30 03 BMI $03 [$BD56] ;/ $A7BD53 6C 68 11 JMP ($1168)[$A7:B92D] ; Execute Kraid fingernail_B instruction $A7BD56 AD 46 11 LDA $1146 [$A0:1146] ;\ $A7BD59 09 00 03 ORA #$0300 ;} Set Kraid fingernail_B invisible and to delete $A7BD5C 8D 46 11 STA $1146 [$A0:1146] ;/ $A7BD5F 6B RTL ;;; $A7BD60 AD E5 05 LDA $05E5 [$7E:05E5] ;\ $A7BD63 29 06 00 AND #$0006 ;} Y = 0, 2, 4 or 6 randomly $A7BD66 A8 TAY ;/ $A7BD67 AD 30 11 LDA $1130 [$7E:1130] ;\ $A7BD6A AE 54 0E LDX $0E54 [$7E:0E54] ;| $A7BD6D E0 80 01 CPX #$0180 ;} If Kraid fingernail_A: A = Kraid fingernail_B $0FB0 $A7BD70 D0 03 BNE $03 [$BD75] ;} Else: A = Kraid fingernail_A $0FB0 $A7BD72 AD 70 11 LDA $1170 [$7E:1170] ;/ $A7BD75 C9 00 00 CMP #$0000 ;\ $A7BD78 10 05 BPL $05 [$BD7F] ;} If A >= 0: $A7BD7A B9 3E BE LDA $BE3E,y[$A7:BE42] ;\ $A7BD7D 80 03 BRA $03 [$BD82] ;} A = $BE4E + Y*8 $A7BD7F B9 46 BE LDA $BE46,y[$A7:BE4A] ; Else (A < 0): A = $BE56 + Y*8 $A7BD82 A8 TAY ; Y = A $A7BD83 B9 00 00 LDA $0000,y[$A7:BE76] ;\ $A7BD86 9D AA 0F STA $0FAA,x[$7E:112A] ;| $A7BD89 B9 02 00 LDA $0002,y[$A7:BE78] ;| $A7BD8C 9D AC 0F STA $0FAC,x[$7E:112C] ;| $A7BD8F B9 04 00 LDA $0004,y[$A7:BE7A] ;} Enemy speeds = [Y..Y+7] $A7BD92 9D AE 0F STA $0FAE,x[$7E:112E] ;| $A7BD95 B9 06 00 LDA $0006,y[$A7:BE7C] ;| $A7BD98 9D B0 0F STA $0FB0,x[$7E:1130] ;/ $A7BD9B A9 01 00 LDA #$0001 ;\ $A7BD9E 9D B4 0F STA $0FB4,x[$7E:1134] ;} Enemy 'speed' = 1 $A7BDA1 BD 86 0F LDA $0F86,x[$7E:1106] ;\ $A7BDA4 29 FF FE AND #$FEFF ;| $A7BDA7 29 FF FB AND #$FBFF ;} Set enemy to respect Samus/projectiles and visible $A7BDAA 9D 86 0F STA $0F86,x[$7E:1106] ;/ $A7BDAD A9 01 00 LDA #$0001 ;\ $A7BDB0 9D 94 0F STA $0F94,x[$7E:1114] ;} Enemy instruction delay = 1 $A7BDB3 A9 0A 8B LDA #$8B0A ;\ $A7BDB6 9D 92 0F STA $0F92,x[$7E:1112] ;} Enemy instruction = $8B0A (done) $A7BDB9 A9 8E BE LDA #$BE8E ;\ $A7BDBC 9D A8 0F STA $0FA8,x[$7E:1128] ;} Enemy function = $BE8E (done) $A7BDBF AD E5 05 LDA $05E5 [$7E:05E5] ;\ $A7BDC2 89 01 00 BIT #$0001 ;} Randomly: $A7BDC5 D0 23 BNE $23 [$BDEA] ;/ $A7BDC7 A9 00 00 LDA #$0000 ;\ $A7BDCA 9F 0E 78 7E STA $7E780E,x[$7E:798E] ;} Enemy $7E780E = 0 $A7BDCE AD 7A 0F LDA $0F7A [$7E:0F7A] ;\ $A7BDD1 38 SEC ;| $A7BDD2 ED 82 0F SBC $0F82 [$7E:0F82] ;| $A7BDD5 38 SEC ;} Enemy X position = Kraid left boundary - enemy width, aligned to the tile $A7BDD6 FD 82 0F SBC $0F82,x[$7E:1102] ;| $A7BDD9 29 F0 FF AND #$FFF0 ;| $A7BDDC 9D 7A 0F STA $0F7A,x[$7E:10FA] ;/ $A7BDDF AD BE 0F LDA $0FBE [$7E:0FBE] ;\ $A7BDE2 18 CLC ;| $A7BDE3 69 80 00 ADC #$0080 ;} Enemy Y position = Kraid arm Y position + 80h $A7BDE6 9D 7E 0F STA $0F7E,x[$7E:10FE] ;/ $A7BDE9 6B RTL ; Else randomly: $A7BDEA AF 8E 79 7E LDA $7E798E[$7E:798E] ; A = [Kraid fingernail_A $7E780E] $A7BDEE E0 C0 01 CPX #$01C0 ;} If A != Kraid fingernail_B index: $A7BDF1 F0 04 BEQ $04 [$BDF7] ;/ $A7BDF3 AF CE 79 7E LDA $7E79CE[$7E:79CE] ; A = [Kraid fingernail_B $7E780E] $A7BDF7 C9 01 00 CMP #$0001 ;\ $A7BDFA F0 CB BEQ $CB [$BDC7] ;} If A == 1: execute the other random branch $A7BDFC A9 01 00 LDA #$0001 ;\ $A7BDFF 9F 0E 78 7E STA $7E780E,x[$7E:798E] ;} Enemy $7E780E = 1 $A7BE03 A9 32 00 LDA #$0032 ;\ $A7BE06 9D 7A 0F STA $0F7A,x[$7E:10FA] ;} Enemy X position = 0032h $A7BE09 A9 F0 00 LDA #$00F0 ;\ $A7BE0C 9D 7E 0F STA $0F7E,x[$7E:10FE] ;} Enemy Y position = 00F0h $A7BE0F A9 00 00 LDA #$0000 ;\ $A7BE12 9D AA 0F STA $0FAA,x[$7E:112A] ;} Enemy X subspeed = 0 $A7BE15 A9 01 00 LDA #$0001 ;\ $A7BE18 9D AC 0F STA $0FAC,x[$7E:112C] ;} Enemy X speed = 1 $A7BE1B A9 00 00 LDA #$0000 ;\ $A7BE1E 9D AE 0F STA $0FAE,x[$7E:112E] ;} Enemy Y subspeed = 0 $A7BE21 A9 00 00 LDA #$0000 ;\ $A7BE24 9D B0 0F STA $0FB0,x[$7E:1130] ;} Enemy Y speed = 0 $A7BE27 A9 07 B9 LDA #$B907 ;\ $A7BE2A 9D A8 0F STA $0FA8,x[$7E:1128] ;} Enemy function = $B907 (done) $A7BE2D A9 8E BE LDA #$BE8E ;\ $A7BE30 9F 00 78 7E STA $7E7800,x[$7E:7980] ;} Enemy next function = $BE8E (done) $A7BE34 BD 86 0F LDA $0F86,x[$7E:1106] ;\ $A7BE37 09 00 05 ORA #$0500 ;} Set enemy to ignore Samus/projectiles and invisible $A7BE3A 9D 86 0F STA $0F86,x[$7E:1106] ;/ $A7BE3D 6B RTL ; Table of Kraid fingernail rightward speeds $A7BE3E dw BE4E, BE5E, BE6E, BE7E ; Table of Kraid fingernail leftward speeds $A7BE46 dw BE56, BE66, BE76, BE86 ; Kraid fingernail speeds: $A7BE4E dw 0000, FFFF, 0000, 0001 $A7BE56 dw 0000, FFFF, 0000, FFFF $A7BE5E dw 0000, FFFF, 0000, 0001 $A7BE66 dw 0000, FFFF, 0000, FFFF $A7BE6E dw 0000, FFFF, 0000, 0001 $A7BE76 dw 0000, FFFF, 0000, FFFF $A7BE7E dw 0000, FFFF, 0000, 0001 $A7BE86 dw 0000, FFFF, 0000, FFFF ;;; $A7BE8E BD AA 0F LDA $0FAA,x[$7E:112A] ;\ $A7BE91 85 12 STA $12 [$7E:0012] ;| $A7BE93 BD AC 0F LDA $0FAC,x[$7E:112C] ;} Move enemy horizontally $A7BE96 85 14 STA $14 [$7E:0014] ;| $A7BE98 22 AB C6 A0 JSL $A0C6AB[$A0:C6AB] ;/ $A7BE9C 90 16 BCC $16 [$BEB4] ; If returned carry set: $A7BE9E BD AA 0F LDA $0FAA,x[$7E:112A] ;\ $A7BEA1 49 FF FF EOR #$FFFF ;| $A7BEA4 1A INC A ;} Negate enemy subspeed $A7BEA5 9D AA 0F STA $0FAA,x[$7E:112A] ;/ $A7BEA8 BD AC 0F LDA $0FAC,x[$7E:112C] ;\ $A7BEAB 49 FF FF EOR #$FFFF ;| $A7BEAE 1A INC A ;} Negate enemy speed $A7BEAF 9D AC 0F STA $0FAC,x[$7E:112C] ;/ $A7BEB2 80 42 BRA $42 [$BEF6] $A7BEB4 A0 00 00 LDY #$0000 ;\ Else (returned carry clear): ;| $A7BEB7 AD 7E 0F LDA $0F7E [$7E:0F7E] ;| $A7BEBA 18 CLC ;| $A7BEBB 79 1F BF ADC $BF1F,y[$A7:BF1F] ;| $A7BEBE DD 7E 0F CMP $0F7E,x[$7E:10FE] ;| $A7BEC1 30 06 BMI $06 [$BEC9] ;} Y = first index of $BF1D,Y such that [$BF1F+Y] < enemy Y position - Kraid Y position $A7BEC3 C8 INY ;| $A7BEC4 C8 INY ;| $A7BEC5 C8 INY ;| $A7BEC6 C8 INY ;| $A7BEC7 80 EE BRA $EE [$BEB7] ;/ $A7BEC9 AD 7A 0F LDA $0F7A [$7E:0F7A] ;\ $A7BECC 18 CLC ;| $A7BECD 79 1D BF ADC $BF1D,y[$A7:BF1D] ;| $A7BED0 85 12 STA $12 [$7E:0012] ;| $A7BED2 BD 7A 0F LDA $0F7A,x[$7E:10FA] ;} If [$BF1D+Y] <= enemy right boundary - Kraid X position: $A7BED5 18 CLC ;| $A7BED6 7D 82 0F ADC $0F82,x[$7E:1102] ;| $A7BED9 C5 12 CMP $12 [$7E:0012] ;| $A7BEDB 30 19 BMI $19 [$BEF6] ;/ $A7BEDD BD AC 0F LDA $0FAC,x[$7E:112C] ;\ $A7BEE0 30 14 BMI $14 [$BEF6] ;} And moving right: $A7BEE2 BD AA 0F LDA $0FAA,x[$7E:116A] ;\ $A7BEE5 49 FF FF EOR #$FFFF ;| $A7BEE8 1A INC A ;} Negate enemy X subspeed $A7BEE9 9D AA 0F STA $0FAA,x[$7E:116A] ;/ $A7BEEC BD AC 0F LDA $0FAC,x[$7E:116C] ;\ $A7BEEF 49 FF FF EOR #$FFFF ;| $A7BEF2 1A INC A ;} Negative enemy X speed $A7BEF3 9D AC 0F STA $0FAC,x[$7E:116C] ;/ $A7BEF6 BD AE 0F LDA $0FAE,x[$7E:112E] ;\ $A7BEF9 85 12 STA $12 [$7E:0012] ;| $A7BEFB BD B0 0F LDA $0FB0,x[$7E:1130] ;} Move enemy vertically $A7BEFE 85 14 STA $14 [$7E:0014] ;| $A7BF00 22 86 C7 A0 JSL $A0C786[$A0:C786] ;/ $A7BF04 90 16 BCC $16 [$BF1C] ; If returned carry set: $A7BF06 BD AE 0F LDA $0FAE,x[$7E:116E] ;\ $A7BF09 49 FF FF EOR #$FFFF ;| $A7BF0C 1A INC A ;} Negate enemy Y subspeed $A7BF0D 9D AE 0F STA $0FAE,x[$7E:116E] ;/ $A7BF10 BD B0 0F LDA $0FB0,x[$7E:1170] ;\ $A7BF13 49 FF FF EOR #$FFFF ;| $A7BF16 69 00 00 ADC #$0000 ;} Negate enemy Y speed $A7BF19 9D B0 0F STA $0FB0,x[$7E:1170] ;/ $A7BF1C 6B RTL $A7BF1D dw FFC0,0010, FFD8,FFD8, FFF0,FFA0, 0008,FF80 } ;;; { $A7BF2D 20 05 C0 JSR $C005 [$A7:C005] ; Execute subroutine $C005 (done) $A7BF30 AD D2 0F LDA $0FD2 [$7E:0FD2] ;\ $A7BF33 C9 37 8A CMP #$8A37 ;} If Kraid arm instruction >= $8A37: $A7BF36 30 24 BMI $24 [$BF5C] ;/ $A7BF38 A9 F0 8A LDA #$8AF0 ;\ $A7BF3B 8D D2 0F STA $0FD2 [$7E:0FD2] ;} Kraid arm instruction = $8AF0 (done) $A7BF3E A9 01 00 LDA #$0001 ;\ $A7BF41 8D D4 0F STA $0FD4 [$7E:0FD4] ;} Kraid arm instruction delay = 1 $A7BF44 A9 01 00 LDA #$0001 ;\ $A7BF47 8D D4 10 STA $10D4 [$7E:10D4] ;} Kraid foot instruction delay = 1 $A7BF4A A9 BD 87 LDA #$87BD ;\ $A7BF4D 8D D2 10 STA $10D2 [$7E:10D2] ;} Kraid foot instruction = $87BD (done) $A7BF50 A9 5D BF LDA #$BF5D ;\ $A7BF53 8D E8 10 STA $10E8 [$7E:10E8] ;} Kraid foot function = $BF5D (done) $A7BF56 A9 00 00 LDA #$0000 ;\ $A7BF59 8D F2 10 STA $10F2 [$7E:10F2] ;} Kraid foot function timer = 0 $A7BF5C 6B RTL ;;; $A7BF5D 20 05 C0 JSR $C005 [$A7:C005] ; Execute subroutine $C005 (done) $A7BF60 AD 7A 0F LDA $0F7A [$7E:0F7A] ;\ $A7BF63 C9 5C 00 CMP #$005C ;} If Kraid X position < 005Ch $A7BF66 10 06 BPL $06 [$BF6E] ;/ $A7BF68 A9 5C 00 LDA #$005C ;\ $A7BF6B 8D 7A 0F STA $0F7A [$7E:0F7A] ;} Kraid X position = 005Ch $A7BF6E AD D2 10 LDA $10D2 [$7E:10D2] ;\ $A7BF71 C9 85 88 CMP #$8885 ;} If Kraid foot instruction != $8885: return $A7BF74 D0 34 BNE $34 [$BFAA] ;/ $A7BF76 AD 7A 0F LDA $0F7A [$7E:0F7A] ;\ $A7BF79 C9 5C 00 CMP #$005C ;} If Kraid X position != 005Ch: $A7BF7C F0 0D BEQ $0D [$BF8B] ;/ $A7BF7E A9 01 00 LDA #$0001 ;\ $A7BF81 8D D4 10 STA $10D4 [$7E:10D4] ;} Kraid foot instruction delay = 1 $A7BF84 A9 BD 87 LDA #$87BD ;\ $A7BF87 8D D2 10 STA $10D2 [$7E:10D2] ;} Kraid foot instruction = $87BD $A7BF8A 6B RTL $A7BF8B A9 AB BF LDA #$BFAB ;\ Else (Kraid X position == 005Ch): $A7BF8E 8F 40 79 7E STA $7E7940[$7E:7940] ;} Kraid foot next function = $BFAB (done) $A7BF92 A9 3F B9 LDA #$B93F ;\ $A7BF95 8D E8 10 STA $10E8 [$7E:10E8] ;} Kraid foot function = decrement enemy function timer; set enemy instruction $8887 $A7BF98 A9 01 00 LDA #$0001 ;\ $A7BF9B 8D F2 10 STA $10F2 [$7E:10F2] ;} Kraid foot function delay = 1 $A7BF9E A9 01 00 LDA #$0001 ;\ $A7BFA1 8D D4 10 STA $10D4 [$7E:10D4] ;} Kraid foot instruction delay = 1 $A7BFA4 A9 ED 86 LDA #$86ED ;\ $A7BFA7 8D D2 10 STA $10D2 [$7E:10D2] ;} Kraid foot instruction = $86ED (done) $A7BFAA 6B RTL ;;; $A7BFAB 20 05 C0 JSR $C005 [$A7:C005] ; Execute subroutine $C005 (done) $A7BFAE AD 7A 0F LDA $0F7A [$7E:0F7A] ;\ $A7BFB1 C9 B0 00 CMP #$00B0 ;} If Kraid X position >= 00B0h $A7BFB4 30 06 BMI $06 [$BFBC] ;/ $A7BFB6 A9 B0 00 LDA #$00B0 ;\ $A7BFB9 8D 7A 0F STA $0F7A [$7E:0F7A] ;} Kraid X position = 00B0h $A7BFBC AD D2 10 LDA $10D2 [$7E:10D2] ;\ $A7BFBF C9 39 89 CMP #$8939 ;} If Kraid foot instruction < $8939: return $A7BFC2 30 40 BMI $40 [$C004] ;/ $A7BFC4 AD 7A 0F LDA $0F7A [$7E:0F7A] ;\ $A7BFC7 C9 B0 00 CMP #$00B0 ;} If Kraid X position != 00B0h: $A7BFCA F0 0D BEQ $0D [$BFD9] ;/ $A7BFCC A9 87 88 LDA #$8887 ;\ $A7BFCF 9D 92 0F STA $0F92,x[$7E:10D2] ;} Kraid instruction = $8887 (done) $A7BFD2 A9 01 00 LDA #$0001 ;\ $A7BFD5 9D 94 0F STA $0F94,x[$7E:10D4] ;} Kraid instruction delay = 1 $A7BFD8 6B RTL $A7BFD9 A9 F3 89 LDA #$89F3 ;\ Else (Kraid X position == 00B0h): $A7BFDC 8D D2 0F STA $0FD2 [$7E:0FD2] ;} Kraid arm instruction = $89F3 (done) $A7BFDF A9 01 00 LDA #$0001 ;\ $A7BFE2 8D D4 0F STA $0FD4 [$7E:0FD4] ;} Kraid arm instruction delay = 1 $A7BFE5 A9 01 00 LDA #$0001 ;\ $A7BFE8 8D D4 10 STA $10D4 [$7E:10D4] ;} Kraid foot instruction delay = 1 $A7BFEB A9 ED 86 LDA #$86ED ;\ $A7BFEE 8D D2 10 STA $10D2 [$7E:10D2] ;} Kraid foot instruction = $86ED (done) $A7BFF1 A9 60 B9 LDA #$B960 ;\ $A7BFF4 8D E8 10 STA $10E8 [$7E:10E8] ;} Kraid foot function = $B960 (done) $A7BFF7 A9 2C 01 LDA #$012C ;\ $A7BFFA 8D F2 10 STA $10F2 [$7E:10F2] ;} Kraid foot function timer = 300 $A7BFFD A9 2D BF LDA #$BF2D ;\ $A7C000 8F 40 79 7E STA $7E7940[$7E:7940] ;} Kraid foot next function = $BF2D (done) $A7C004 6B RTL } ;;; { $A7C005 AD 8C 0F LDA $0F8C [$7E:0F8C] ;\ $A7C008 CF 18 78 7E CMP $7E7818[$7E:7818] ;| $A7C00C 30 01 BMI $01 [$C00F] ;} If Kraid HP >= 7/8 Kraid health: return $A7C00E 60 RTS ;/ $A7C00F A9 65 B9 LDA #$B965 ;\ $A7C012 8D A8 0F STA $0FA8 [$7E:0FA8] ;} Kraid function = process Kraid instruction and decrement enemy function timer (done) $A7C015 A9 B4 00 LDA #$00B4 ;\ $A7C018 8D B2 0F STA $0FB2 [$7E:0FB2] ;} Kraid function timer = 180 $A7C01B A9 A1 C0 LDA #$C0A1 ;\ $A7C01E 8F 00 78 7E STA $7E7800[$7E:7800] ;} Kraid next function = $C0A1 (done) $A7C022 AD AA 0F LDA $0FAA [$7E:0FAA] ;\ $A7C025 AA TAX ;} A = [[$0FAA] + 2] $A7C026 BD 02 00 LDA $0002,x[$A7:96F6] ;/ $A7C029 A0 32 00 LDY #$0032 ;\ $A7C02C C9 C8 97 CMP #$97C8 ;} If A == $97C8: Y = 50 $A7C02F F0 13 BEQ $13 [$C044] ;/ $A7C031 A0 2A 00 LDY #$002A ;\ $A7C034 C9 C8 9A CMP #$9AC8 ;} Else if A == $9AC8: Y = 42 $A7C037 F0 0B BEQ $0B [$C044] ;/ $A7C039 A0 22 00 LDY #$0022 ;\ $A7C03C C9 C8 9D CMP #$9DC8 ;} Else if A == $9DC8: Y = 34 $A7C03F F0 03 BEQ $03 [$C044] ;/ $A7C041 A0 1A 00 LDY #$001A ; Else Y = 26 $A7C044 98 TYA ;\ $A7C045 18 CLC ;| $A7C046 69 DA 96 ADC #$96DA ;} $0FAA = $96DA + Y $A7C049 8D AA 0F STA $0FAA [$7E:0FAA] ;/ $A7C04C B9 D2 96 LDA $96D2,y[$A7:96F4] ;\ $A7C04F 8D AC 0F STA $0FAC [$7E:0FAC] ;} $0FAC = [$96D2 + Y] $A7C052 A9 04 00 LDA #$0004 ;\ $A7C055 8D 3E 18 STA $183E [$7E:183E] ;} Screen shaking type = 4 $A7C058 A9 54 01 LDA #$0154 ;\ $A7C05B 8D 40 18 STA $1840 [$7E:1840] ;} Screen shaking timer = 340 $A7C05E A9 E7 86 LDA #$86E7 ;\ $A7C061 8D D2 10 STA $10D2 [$7E:10D2] ;} Kraid foot instruction = $86E7 (done) $A7C064 A9 01 00 LDA #$0001 ;\ $A7C067 8D D4 10 STA $10D4 [$7E:10D4] ;} Kraid foot instruction delay = 1 $A7C06A A9 2D BA LDA #$BA2D ;\ $A7C06D 8D E8 10 STA $10E8 [$7E:10E8] ;} Kraid foot function = RTS $A7C070 A9 F3 89 LDA #$89F3 ;\ $A7C073 8D D2 0F STA $0FD2 [$7E:0FD2] ;} Kraid arm instruction = $89F3 (done) $A7C076 A9 01 00 LDA #$0001 ;\ $A7C079 8D D4 0F STA $0FD4 [$7E:0FD4] ;} Kraid arm instruction delay = 1 $A7C07C AD 06 10 LDA $1006 [$7E:1006] ;\ $A7C07F 09 00 01 ORA #$0100 ;| $A7C082 8D 06 10 STA $1006 [$7E:1006] ;| $A7C085 AD 46 10 LDA $1046 [$7E:1046] ;| $A7C088 09 00 01 ORA #$0100 ;} Set Kraid lint invisible $A7C08B 8D 46 10 STA $1046 [$7E:1046] ;| $A7C08E AD 86 10 LDA $1086 [$7E:1086] ;| $A7C091 09 00 01 ORA #$0100 ;| $A7C094 8D 86 10 STA $1086 [$7E:1086] ;/ $A7C097 AD C6 0F LDA $0FC6 [$7E:0FC6] ;\ $A7C09A 09 00 04 ORA #$0400 ;} Set Kraid arm to ignore Samus/projectiles $A7C09D 8D C6 0F STA $0FC6 [$7E:0FC6] ;/ $A7C0A0 60 RTS ;;; $A7C0A1 A9 4D AC LDA #$AC4D ;\ $A7C0A4 8D A8 0F STA $0FA8 [$00:0FA8] ;} Kraid function = break ceiling into platform $A7C0A7 A9 02 02 LDA #$0202 ;\ $A7C0AA 8F 20 CD 7E STA $7ECD20[$7E:CD20] ;| $A7C0AE A9 01 01 LDA #$0101 ;} Release camera (like scroll pointer = 0000) $A7C0B1 8F 22 CD 7E STA $7ECD22[$7E:CD22] ;/ $A7C0B5 A9 A4 00 LDA #$00A4 ;\ $A7C0B8 8F 08 78 7E STA $7E7808[$7E:7808] ;} $7E7808 = 00A4h $A7C0BC 6B RTL } ;;; Spawns PLM to clear the ceiling ;;; $A7C168 22 D7 83 84 JSL $8483D7[$84:83D7] $A7C16C dx 02, 12, B7B7 $A7C170 60 RTS ;;; Spawns PLM to clear the spikes ;;; $A7C171 22 D7 83 84 JSL $8483D7[$84:83D7] $A7C175 dx 05, 1B, B7BB $A7C179 60 RTS ;;; ; Good thing the BG1 and BG2 character bases are both $0000 ; [$5D] wasn't shifted correctly, it should be shifted left by 13 $A7C1FB 08 PHP $A7C1FC E2 20 SEP #$20 $A7C1FE 22 6F 83 80 JSL $80836F[$80:836F] ; Set force blank $A7C202 A9 00 LDA #$00 ;\ $A7C204 8D 16 21 STA $2116 [$80:2116] ;| $A7C207 A5 5D LDA $5D [$7E:005D] ;| $A7C209 29 0F AND #$0F ;| $A7C20B 0A ASL A ;| $A7C20C 0A ASL A ;| $A7C20D 0A ASL A ;| $A7C20E 0A ASL A ;| $A7C20F 18 CLC ;} $A7A716..A915 -> VRAM[BG1 character base + 3F00h] $A7C210 69 3F ADC #$3F ;| $A7C212 8D 17 21 STA $2117 [$80:2117] ;| $A7C215 A9 80 LDA #$80 ;| $A7C217 8D 15 21 STA $2115 [$80:2115] ;| $A7C21A 22 A9 91 80 JSL $8091A9[$80:91A9] ;| $A7C21E dx 01, 01, 18, A7A716, 0200 ;| $A7C226 A9 02 LDA #$02 ;| $A7C228 8D 0B 42 STA $420B [$7E:420B] ;/ $A7C22B A9 00 LDA #$00 ;\ $A7C22D 8D 16 21 STA $2116 [$7E:2116] ;| $A7C230 A9 40 LDA #$40 ;| $A7C232 8D 17 21 STA $2117 [$7E:2117] ;| $A7C235 A9 80 LDA #$80 ;| $A7C237 8D 15 21 STA $2115 [$7E:2115] ;} $9AB200..B9FF -> VRAM[4000..47FF] (BG3 characters) $A7C23A 22 A9 91 80 JSL $8091A9[$80:91A9] ;| $A7C23E dx 01, 01, 18, 9AB200, 0800 ;| $A7C246 A9 02 LDA #$02 ;| $A7C248 8D 0B 42 STA $420B [$7E:420B] ;/ $A7C24B 4C 78 C2 JMP $C278 [$80:C278] ;;; ; Good thing the BG1 and BG2 character bases are both $0000 ; First, [$5D] wasn't shifted correctly, it should be shifted left by 9 or 13 ; Second, [$5D] wasn't masked $A7C24E 08 PHP $A7C24F E2 20 SEP #$20 $A7C251 22 6F 83 80 JSL $80836F[$80:836F] ; Set force blank $A7C255 A9 00 LDA #$00 ;\ $A7C257 8D 16 21 STA $2116 [$7E:2116] ;| $A7C25A A5 5D LDA $5D [$7E:005D] ;| $A7C25C 18 CLC ;| $A7C25D 69 3E ADC #$3E ;| $A7C25F 8D 17 21 STA $2117 [$7E:2117] ;| $A7C262 A9 80 LDA #$80 ;} $7E5000..53FF -> VRAM[BG1/2 character base + 3E00h] $A7C264 8D 15 21 STA $2115 [$7E:2115] ;| $A7C267 22 A9 91 80 JSL $8091A9[$80:91A9] ;| $A7C26B dx 01, 01, 18, 7E5000, 0400 ;| $A7C273 A9 02 LDA #$02 ;| $A7C275 8D 0B 42 STA $420B [$7E:420B] ;/ $A7C278 A9 00 LDA #$00 ;\ $A7C27A 8D 16 21 STA $2116 [$7E:2116] ;| $A7C27D A5 59 LDA $59 [$7E:0059] ;| $A7C27F 29 FC AND #$FC ;| $A7C281 8D 17 21 STA $2117 [$7E:2117] ;| $A7C284 A9 80 LDA #$80 ;} $7E2000..27FF -> VRAM[BG2 tilemap] $A7C286 8D 15 21 STA $2115 [$7E:2115] ;| $A7C289 22 A9 91 80 JSL $8091A9[$80:91A9] ;| $A7C28D dx 01, 01, 18, 7E2000, 0800 ;| $A7C295 A9 02 LDA #$02 ;| $A7C297 8D 0B 42 STA $420B [$7E:420B] ;/ $A7C29A 22 82 83 80 JSL $808382[$80:8382] ; Clear force blank $A7C29E 28 PLP $A7C29F 6B RTL ;;; ; Good thing the BG1 and BG2 character bases are both $0000 ; First, [$5D] wasn't shifted correctly, it should be shifted left by 9 or 13 ; Second, 00FCh is the mask for tilemap bases, not character bases $A7C325 08 PHP $A7C326 C2 30 REP #$30 $A7C328 AE 60 03 LDX $0360 [$7E:0360] ;\ $A7C32B A5 5D LDA $5D [$7E:005D] ;| $A7C32D 29 FC 00 AND #$00FC ;| $A7C330 EB XBA ;| $A7C331 18 CLC ;| $A7C332 69 00 3E ADC #$3E00 ;| $A7C335 9D 40 03 STA $0340,x[$7E:0340] ;| $A7C338 A9 81 00 LDA #$0081 ;| $A7C33B 9D 42 03 STA $0342,x[$7E:0342] ;| $A7C33E A9 39 00 LDA #$0039 ;| $A7C341 9D 43 03 STA $0343,x[$7E:0343] ;} $7E5000..53FF -> VRAM[BG1/2 character base + 3E00h] $A7C344 A9 00 50 LDA #$5000 ;| $A7C347 9D 44 03 STA $0344,x[$7E:0344] ;| $A7C34A A9 7E 00 LDA #$007E ;| $A7C34D 9D 46 03 STA $0346,x[$7E:0346] ;| $A7C350 A9 00 04 LDA #$0400 ;| $A7C353 9D 47 03 STA $0347,x[$7E:0347] ;| $A7C356 8A TXA ;| $A7C357 18 CLC ;| $A7C358 69 09 00 ADC #$0009 ;| $A7C35B 8D 60 03 STA $0360 [$7E:0360] ;/ $A7C35E 28 PLP $A7C35F 6B RTL ;;; Kraid death ;;; { $A7C360 AF 2A 78 7E LDA $7E782A[$7E:782A] ;\ $A7C364 F0 01 BEQ $01 [$C367] ;} If [$7E782A]: return $A7C366 6B RTL ;/ $A7C367 A2 C0 00 LDX #$00C0 ;\ $A7C36A A9 00 00 LDA #$0000 ;| ;| $A7C36D 9F 00 C2 7E STA $7EC200,x[$7E:C2C0] ;| $A7C371 E8 INX ;} Clear target colour palette line 6 $A7C372 E8 INX ;| $A7C373 E0 E0 00 CPX #$00E0 ;| $A7C376 30 F5 BMI $F5 [$C36D] ;/ $A7C378 A2 1E 00 LDX #$001E ;\ ;| $A7C37B BD F3 B4 LDA $B4F3,x[$A7:B511] ;| $A7C37E 9F E0 C0 7E STA $7EC0E0,x[$7E:C0FE] ;} Write target colour palette line 7 $A7C382 CA DEX ;| $A7C383 CA DEX ;| $A7C384 10 F5 BPL $F5 [$C37B] ;/ $A7C386 A9 F0 8A LDA #$8AF0 ;\ $A7C389 8D D2 0F STA $0FD2 [$7E:0FD2] ;} Kraid arm instruction = $8AF0 (done) $A7C38C A9 01 00 LDA #$0001 ;\ $A7C38F 8D D4 0F STA $0FD4 [$7E:0FD4] ;} Kraid arm instruction delay = 1 $A7C392 A9 F9 C3 LDA #$C3F9 ;\ $A7C395 8D A8 0F STA $0FA8 [$7E:0FA8] ;} Kraid function = $C3F9 (done) $A7C398 A9 6C 97 LDA #$976C ;\ $A7C39B 8D AA 0F STA $0FAA [$7E:0FAA] ;} $0FAA = $976C (done) $A7C39E AD 64 97 LDA $9764 [$A7:9764] ;\ $A7C3A1 8D AC 0F STA $0FAC [$7E:0FAC] ;} $0FAC = 25 $A7C3A4 AE 54 0E LDX $0E54 [$7E:0E54] $A7C3A7 DA PHX $A7C3A8 AD 06 11 LDA $1106 [$7E:1106] ;\ $A7C3AB 29 FF BF AND #$BFFF ;} Set Kraid Fingernail_A to not respawn or be solid to Samus $A7C3AE 8D 06 11 STA $1106 [$7E:1106] ;/ $A7C3B1 A9 80 01 LDA #$0180 ;\ $A7C3B4 8D 54 0E STA $0E54 [$7E:0E54] ;} Death animation on Kraid Fingernail_A $A7C3B7 22 AF A3 A0 JSL $A0A3AF[$A0:A3AF] ;/ $A7C3BB AD 46 11 LDA $1146 [$7E:1146] ;\ $A7C3BE 29 FF BF AND #$BFFF ;} Set Kraid Fingernail_B to not respawn or be solid to Samus $A7C3C1 8D 46 11 STA $1146 [$7E:1146] ;/ $A7C3C4 A9 C0 01 LDA #$01C0 ;\ $A7C3C7 8D 54 0E STA $0E54 [$7E:0E54] ;} Death animation on Kraid Fingernail_B $A7C3CA 22 AF A3 A0 JSL $A0A3AF[$A0:A3AF] ;/ $A7C3CE A9 80 00 LDA #$0080 ;\ $A7C3D1 8D 54 0E STA $0E54 [$7E:0E54] ;} Death animation on Kraid top lint $A7C3D4 22 AF A3 A0 JSL $A0A3AF[$A0:A3AF] ;/ $A7C3D8 A9 C0 00 LDA #$00C0 ;\ $A7C3DB 8D 54 0E STA $0E54 [$7E:0E54] ;} Death animation on Kraid middle lint $A7C3DE 22 AF A3 A0 JSL $A0A3AF[$A0:A3AF] ;/ $A7C3E2 A9 00 01 LDA #$0100 ;\ $A7C3E5 8D 54 0E STA $0E54 [$7E:0E54] ;} Death animation on Kraid bottom lint $A7C3E8 22 AF A3 A0 JSL $A0A3AF[$A0:A3AF] ;/ $A7C3EC 68 PLA $A7C3ED 8D 54 0E STA $0E54 [$7E:0E54] $A7C3F0 22 D7 83 84 JSL $8483D7[$84:83D7] ;\ $A7C3F4 dx 05, 1B, B7BF ;} Spawn PLM to clear spike floor $A7C3F8 6B RTL ;;; ;;; $A7C3F9 20 32 AF JSR $AF32 [$A7:AF32] ; Process Kraid instruction ($0FAA) $A7C3FC 22 6C D9 82 JSL $82D96C[$82:D96C] ;\ $A7C400 90 54 BCC $54 [$C456] ;} If $82D96C returned carry clear: return $A7C402 A9 A4 C4 LDA #$C4A4 ;\ $A7C405 8D A8 0F STA $0FA8 [$7E:0FA8] ;} Kraid function = $C4A4 (done) $A7C408 A9 01 00 LDA #$0001 ;\ $A7C40B 8F 2C 78 7E STA $7E782C[$7E:782C] ;} $7E782C = 1 $A7C40F 8F 2A 78 7E STA $7E782A[$7E:782A] ; $7E782A = 1 $A7C413 20 37 B3 JSR $B337 [$A7:B337] ; Kraid palette handling $A7C416 A2 00 00 LDX #$0000 ;\ $A7C419 A9 00 00 LDA #$0000 ;| ;| $A7C41C 9F 00 40 7E STA $7E4000,x[$7E:4000] ;| $A7C420 9F 02 40 7E STA $7E4002,x[$7E:4002] ;| $A7C424 E8 INX ;| $A7C425 E8 INX ;| $A7C426 E8 INX ;| $A7C427 E8 INX ;| $A7C428 E0 00 02 CPX #$0200 ;| $A7C42B 30 EF BMI $EF [$C41C] ;| $A7C42D AE 30 03 LDX $0330 [$7E:0330] ;| $A7C430 A9 00 02 LDA #$0200 ;| $A7C433 95 D0 STA $D0,x [$7E:00D0] ;| $A7C435 A9 00 40 LDA #$4000 ;| $A7C438 95 D2 STA $D2,x [$7E:00D2] ;} 0 -> VRAM[BG1 character base + 3F00h] $A7C43A E2 20 SEP #$20 ;| $A7C43C A9 7E LDA #$7E ;| $A7C43E 95 D4 STA $D4,x [$7E:00D4] ;| $A7C440 C2 20 REP #$20 ;| $A7C442 A5 5D LDA $5D [$7E:005D] ;| $A7C444 29 0F 00 AND #$000F ;| $A7C447 EB XBA ;| $A7C448 18 CLC ;| $A7C449 69 00 3F ADC #$3F00 ;| $A7C44C 95 D5 STA $D5,x [$7E:00D5] ;| $A7C44E 8A TXA ;| $A7C44F 18 CLC ;| $A7C450 69 07 00 ADC #$0007 ;| $A7C453 8D 30 03 STA $0330 [$7E:0330] ;/ $A7C456 6B RTL ;;; ;;; $A7C4A4 20 32 AF JSR $AF32 [$A7:AF32] ; Process Kraid instruction ($0FAA) $A7C4A7 A9 C8 C4 LDA #$C4C8 ;\ $A7C4AA 8D A8 0F STA $0FA8 [$7E:0FA8] ;} Kraid function = $C4C8 (done) $A7C4AD A9 23 B9 LDA #$B923 ;\ $A7C4B0 8D 28 10 STA $1028 [$7E:1028] ;| $A7C4B3 8D 68 10 STA $1068 [$7E:1068] ;} Kraid lint functions = vertically align enemy to Kraid; decrement enemy function timer $A7C4B6 8D A8 10 STA $10A8 [$7E:10A8] ;/ $A7C4B9 A9 FF 7F LDA #$7FFF ;\ $A7C4BC 8D 32 10 STA $1032 [$7E:1032] ;| $A7C4BF 8D 72 10 STA $1072 [$7E:1072] ;} Kraid lint function timers = 7FFFh $A7C4C2 8D B2 10 STA $10B2 [$7E:10B2] ;/ $A7C4C5 4C 74 C8 JMP $C874 [$A7:C874] ; Update BG2 tilemap ;;; ;;; $A7C4C8 20 32 AF JSR $AF32 [$A7:AF32] ; Process Kraid instruction ($0FAA) $A7C4CB E2 20 SEP #$20 ;\ $A7C4CD A9 A7 LDA #$A7 ;| $A7C4CF 8D 06 06 STA $0606 [$7E:0606] ;| $A7C4D2 C2 20 REP #$20 ;} $0604 = $A7C2A0 (not done!) $A7C4D4 A9 A0 C2 LDA #$C2A0 ;| $A7C4D7 8D 04 06 STA $0604 [$7E:0604] ;/ $A7C4DA A9 37 C5 LDA #$C537 ;\ $A7C4DD 8D A8 0F STA $0FA8 [$7E:0FA8] ;} Kraid function = $C537 (done) $A7C4E0 A9 2B 00 LDA #$002B ;\ $A7C4E3 8F 00 90 7E STA $7E9000[$7E:9000] ;} $7E9000 = 2Bh $A7C4E7 AD 86 0F LDA $0F86 [$7E:0F86] ;\ $A7C4EA 09 00 80 ORA #$8000 ;} Set Kraid to not hitbox solid to Samus $A7C4ED 8D 86 0F STA $0F86 [$7E:0F86] ;/ $A7C4F0 A9 01 00 LDA #$0001 ;\ $A7C4F3 8D 3E 18 STA $183E [$7E:183E] ;} Set screen shaking to 1 $A7C4F6 A9 00 01 LDA #$0100 ;\ $A7C4F9 8D 40 18 STA $1840 [$7E:1840] ;} Screen shaking timer = 256 $A7C4FC A9 A4 8A LDA #$8AA4 ;\ $A7C4FF 8D D2 0F STA $0FD2 [$7E:0FD2] ;} Kraid arm instruction = $8AA4 (done) $A7C502 A9 01 00 LDA #$0001 ;\ $A7C505 8D D4 0F STA $0FD4 [$7E:0FD4] ;} Kraid arm instruction delay = 1 $A7C508 A9 E7 86 LDA #$86E7 ;\ $A7C50B 8D D2 10 STA $10D2 [$7E:10D2] ;} Kraid foot instruction = $86E7 (done) $A7C50E A9 01 00 LDA #$0001 ;\ $A7C511 8D D4 10 STA $10D4 [$7E:10D4] ;} Kraid foot instruction delay = 1 $A7C514 A9 2D BA LDA #$BA2D ;\ $A7C517 8D E8 10 STA $10E8 [$7E:10E8] ;} Kraid foot function = RTL $A7C51A 4C B6 C8 JMP $C8B6 [$A7:C8B6] ; Update BG2 ;;; Play sound every half second ;;; $A7C51D AF 00 90 7E LDA $7E9000[$7E:9000] ;\ $A7C521 3A DEC A ;} --$7E9000 $A7C522 8F 00 90 7E STA $7E9000[$7E:9000] ;/ $A7C526 D0 0E BNE $0E [$C536] ; If [$7E9000] == 0: $A7C528 A9 1E 00 LDA #$001E ;\ $A7C52B 22 4D 91 80 JSL $80914D[$80:914D] ;} Sound library 3: 1Eh $A7C52F A9 1E 00 LDA #$001E ;\ $A7C532 8F 00 90 7E STA $7E9000[$7E:9000] ;} $7E9000 = 30 $A7C536 60 RTS ;;; ;;; $A7C537 20 32 AF JSR $AF32 [$A7:AF32] ; Process Kraid instruction ($0FAA) $A7C53A 20 1D C5 JSR $C51D [$A7:C51D] ; Play sound every half second $A7C53D 20 9F C5 JSR $C59F [$A7:C59F] ; Execute routine $C59F (done) $A7C540 EE 7E 0F INC $0F7E [$7E:0F7E] $A7C543 AD 7E 0F LDA $0F7E [$7E:0F7E] $A7C546 C9 60 02 CMP #$0260 $A7C549 30 53 BMI $53 [$C59E] $A7C54B AD 86 0F LDA $0F86 [$7E:0F86] $A7C54E 29 FF FB AND #$FBFF $A7C551 8D 86 0F STA $0F86 [$7E:0F86] $A7C554 A9 02 00 LDA #$0002 $A7C557 8D 9A 17 STA $179A [$7E:179A] $A7C55A AC 54 0E LDY $0E54 [$7E:0E54] $A7C55D BE 78 0F LDX $0F78,y[$7E:0F78] $A7C560 A9 4C 80 LDA #$804C $A7C563 9F 32 00 A0 STA $A00032,x[$A0:E2F1] $A7C567 AD C6 0F LDA $0FC6 [$7E:0FC6] $A7C56A 09 00 02 ORA #$0200 $A7C56D 09 00 04 ORA #$0400 $A7C570 8D C6 0F STA $0FC6 [$7E:0FC6] $A7C573 09 00 02 ORA #$0200 $A7C576 09 00 04 ORA #$0400 $A7C579 29 FF F7 AND #$F7FF $A7C57C 29 FF DF AND #$DFFF $A7C57F 29 FF 7F AND #$7FFF $A7C582 8D 06 10 STA $1006 [$7E:1006] $A7C585 8D 46 10 STA $1046 [$7E:1046] $A7C588 8D 86 10 STA $1086 [$7E:1086] $A7C58B 8D C6 10 STA $10C6 [$7E:10C6] $A7C58E A9 15 C7 LDA #$C715 ;\ $A7C591 8D A8 0F STA $0FA8 [$7E:0FA8] ;} Kraid function = fade in regular background $A7C594 9C 41 09 STZ $0941 [$7E:0941] $A7C597 22 71 BA A0 JSL $A0BA71[$A0:BA71] ; Kraid death item drop routine $A7C59B 4C 9A AD JMP $AD9A [$A7:AD9A] ; Jump to $AD9A $A7C59E 6B RTL ;;; ;;; $A7C59F A0 00 00 LDY #$0000 ;\ ;| $A7C5A2 B9 E7 C5 LDA $C5E7,y[$A7:C5E7] ;| $A7C5A5 30 3F BMI $3F [$C5E6] ;| $A7C5A7 CD 7E 0F CMP $0F7E [$7E:0F7E] ;| $A7C5AA F0 08 BEQ $08 [$C5B4] ;} Find entry in table who first word is Kraid's X position $A7C5AC 98 TYA ;| $A7C5AD 18 CLC ;| $A7C5AE 69 06 00 ADC #$0006 ;| $A7C5B1 A8 TAY ;| $A7C5B2 80 EE BRA $EE [$C5A2] ;/ $A7C5B4 B9 E9 C5 LDA $C5E9,y[$A7:C65B] ;\ $A7C5B7 30 29 BMI $29 [$C5E2] ;} If entry's second word is positive: $A7C5B9 AE 30 03 LDX $0330 [$7E:0330] ;\ $A7C5BC A9 40 00 LDA #$0040 ;| $A7C5BF 95 D0 STA $D0,x [$7E:00D0] ;| $A7C5C1 A9 C0 2F LDA #$2FC0 ;| $A7C5C4 95 D2 STA $D2,x [$7E:00D2] ;| $A7C5C6 E2 20 SEP #$20 ;| $A7C5C8 A9 7E LDA #$7E ;| $A7C5CA 95 D4 STA $D4,x [$7E:00D4] ;| $A7C5CC C2 20 REP #$20 ;| $A7C5CE A5 59 LDA $59 [$7E:0059] ;} BG2 at entry's second word = [$7E:2FC0..2FFF] $A7C5D0 29 FC 00 AND #$00FC ;| $A7C5D3 EB XBA ;| $A7C5D4 18 CLC ;| $A7C5D5 79 E9 C5 ADC $C5E9,y[$A7:C65B] ;| $A7C5D8 95 D5 STA $D5,x [$7E:00D5] ;| $A7C5DA 8A TXA ;| $A7C5DB 18 CLC ;| $A7C5DC 69 07 00 ADC #$0007 ;| $A7C5DF 8D 30 03 STA $0330 [$7E:0330] ;/ $A7C5E2 BB TYX ;\ $A7C5E3 FC EB C5 JSR ($C5EB,x)[$A7:C6A6] ;} Execute the function given by the entry's third word $A7C5E6 60 RTS ; X BG2 Function $A7C5E7 dw 0130,08A0,C691, 0138,0880,C6A6, 0140,0860,C6A6, 0148,0840,C6A7, 0150,0820,C6A6, 0158,0800,C6A6, 0160,03E0,C6BD, 0168,03C0,C6A6, 0170,03A0,C6A6, 0178,0380,C6A6, 0180,0360,C6D3, 0188,0340,C6A6, 0190,0320,C6A6, 0198,0300,C6E9, 01A0,02E0,C6A6, 01A8,02C0,C6A6, 01B0,02A0,C6FF, 01B8,0280,C6A6, 01C0,0260,C6A6, 01C8,0240,C6A6, 01D0,0220,C6A6, 01D8,0200,C6A6, 01E0,01E0,C6A6, 01E8,01C0,C6A6, 01F0,01A0,C6A6, 01F8,0180,C6A6, 0200,0160,C6A6, 0208,0140,C6A6, FFFF ;;; ;;; $A7C691 A9 70 00 LDA #$0070 $A7C694 A0 53 9C LDY #$9C53 $A7C697 AE 54 0E LDX $0E54 [$7E:0E54] $A7C69A 22 27 80 86 JSL $868027[$86:8027] $A7C69E 22 D7 83 84 JSL $8483D7[$84:83D7] $A7C6A2 dx 07, 12, B7A7 $A7C6A6 60 RTS ;;; ;;; $A7C6A7 A9 F0 00 LDA #$00F0 $A7C6AA A0 53 9C LDY #$9C53 $A7C6AD AE 54 0E LDX $0E54 [$7E:0E54] $A7C6B0 22 27 80 86 JSL $868027[$86:8027] $A7C6B4 22 D7 83 84 JSL $8483D7[$84:83D7] $A7C6B8 dx 0F, 12, B7A7 $A7C6BC 60 RTS ;;; ;;; $A7C6BD A9 E0 00 LDA #$00E0 $A7C6C0 A0 53 9C LDY #$9C53 $A7C6C3 AE 54 0E LDX $0E54 [$7E:0E54] $A7C6C6 22 27 80 86 JSL $868027[$86:8027] $A7C6CA 22 D7 83 84 JSL $8483D7[$84:83D7] $A7C6CE dx 0E, 12, B7A7 $A7C6D2 60 RTS ;;; ;;; $A7C6D3 A9 90 00 LDA #$0090 $A7C6D6 A0 53 9C LDY #$9C53 $A7C6D9 AE 54 0E LDX $0E54 [$7E:0E54] $A7C6DC 22 27 80 86 JSL $868027[$86:8027] $A7C6E0 22 D7 83 84 JSL $8483D7[$84:83D7] $A7C6E4 dx 09, 12, B7A7 $A7C6E8 60 RTS ;;; ;;; $A7C6E9 A9 80 00 LDA #$0080 $A7C6EC A0 53 9C LDY #$9C53 $A7C6EF AE 54 0E LDX $0E54 [$7E:0E54] $A7C6F2 22 27 80 86 JSL $868027[$86:8027] $A7C6F6 22 D7 83 84 JSL $8483D7[$84:83D7] $A7C6FA dx 08, 12, B7A7 $A7C6FE 60 RTS ;;; ;;; $A7C6FF A9 00 01 LDA #$0100 $A7C702 A0 53 9C LDY #$9C53 $A7C705 AE 54 0E LDX $0E54 [$7E:0E54] $A7C708 22 27 80 86 JSL $868027[$86:8027] $A7C70C 22 D7 83 84 JSL $8483D7[$84:83D7] $A7C710 dx 10, 12, B7A7 $A7C714 60 RTS } ;;; Fade in regular background ;;; { $A7C715 E2 20 SEP #$20 $A7C717 A9 48 LDA #$48 ;\ $A7C719 85 59 STA $59 [$7E:0059] ;} BG2 tilemap address = $4800 $A7C71B C2 20 REP #$20 $A7C71D A2 FE 07 LDX #$07FE ;\ $A7C720 A9 38 03 LDA #$0338 ;| ;| $A7C723 9F 00 20 7E STA $7E2000,x[$7E:27FE] ;} $7E2000..27FF = 0338h $A7C727 CA DEX ;| $A7C728 CA DEX ;| $A7C729 10 F8 BPL $F8 [$C723] ;/ $A7C72B AE 30 03 LDX $0330 [$7E:0330] ;\ $A7C72E A9 00 04 LDA #$0400 ;| $A7C731 95 D0 STA $D0,x [$7E:00D0] ;| $A7C733 A9 00 20 LDA #$2000 ;| $A7C736 95 D2 STA $D2,x [$7E:00D2] ;| $A7C738 A9 7E 00 LDA #$007E ;| $A7C73B 95 D4 STA $D4,x [$7E:00D4] ;} $7E2000..23FF -> VRAM[4800..4BFF] $A7C73D A9 00 48 LDA #$4800 ;| $A7C740 95 D5 STA $D5,x [$7E:00D5] ;| $A7C742 8A TXA ;| $A7C743 18 CLC ;| $A7C744 69 07 00 ADC #$0007 ;| $A7C747 8D 30 03 STA $0330 [$7E:0330] ;/ $A7C74A A9 51 C7 LDA #$C751 ;\ $A7C74D 8D A8 0F STA $0FA8 [$7E:0FA8] ;} Kraid function = $C751 (done) $A7C750 6B RTL ;;; $A7C751 AE 30 03 LDX $0330 [$7E:0330] ;\ $A7C754 A9 00 04 LDA #$0400 ;| $A7C757 95 D0 STA $D0,x [$7E:00D0] ;| $A7C759 A9 00 20 LDA #$2000 ;| $A7C75C 95 D2 STA $D2,x [$7E:00D2] ;| $A7C75E A9 7E 00 LDA #$007E ;| $A7C761 95 D4 STA $D4,x [$7E:00D4] ;} $7E2000..23FF -> VRAM[4A00..4DFF] $A7C763 A9 00 4A LDA #$4A00 ;| $A7C766 95 D5 STA $D5,x [$7E:00D5] ;| $A7C768 8A TXA ;| $A7C769 18 CLC ;| $A7C76A 69 07 00 ADC #$0007 ;| $A7C76D 8D 30 03 STA $0330 [$7E:0330] ;/ $A7C770 A9 77 C7 LDA #$C777 ;\ $A7C773 8D A8 0F STA $0FA8 [$7E:0FA8] ;} Kraid function = $C777 (done) $A7C776 6B RTL ;;; $A7C777 A9 FB C1 LDA #$C1FB ;\ $A7C77A 8D 04 06 STA $0604 [$7E:0604] ;} $0604 = $C1FB (done) $A7C77D A9 A3 C7 LDA #$C7A3 ;\ $A7C780 8D A8 0F STA $0FA8 [$7E:0FA8] ;} Kraid function = $C7A3 (done) $A7C783 AE 30 03 LDX $0330 [$7E:0330] ;\ $A7C786 A9 00 04 LDA #$0400 ;| $A7C789 95 D0 STA $D0,x [$7E:00D0] ;| $A7C78B A9 00 B2 LDA #$B200 ;| $A7C78E 95 D2 STA $D2,x [$7E:00D2] ;| $A7C790 A9 9A 00 LDA #$009A ;| $A7C793 95 D4 STA $D4,x [$7E:00D4] ;} $9AB200..B5FF -> VRAM[4000..43FF] $A7C795 A9 00 40 LDA #$4000 ;| $A7C798 95 D5 STA $D5,x [$7E:00D5] ;| $A7C79A 8A TXA ;| $A7C79B 18 CLC ;| $A7C79C 69 07 00 ADC #$0007 ;| $A7C79F 8D 30 03 STA $0330 [$7E:0330] ;/ $A7C7A2 6B RTL ;;; $A7C7A3 A9 C9 C7 LDA #$C7C9 ;\ $A7C7A6 8D A8 0F STA $0FA8 [$80:0FA8] ;} Kraid function = $C7C9 (done) $A7C7A9 AE 30 03 LDX $0330 [$80:0330] ;\ $A7C7AC A9 00 04 LDA #$0400 ;| $A7C7AF 95 D0 STA $D0,x [$7E:00D0] ;| $A7C7B1 A9 00 B6 LDA #$B600 ;| $A7C7B4 95 D2 STA $D2,x [$7E:00D2] ;| $A7C7B6 A9 9A 00 LDA #$009A ;| $A7C7B9 95 D4 STA $D4,x [$7E:00D4] ;} $9AB600..B9FF -> VRAM[4200..45FF] $A7C7BB A9 00 42 LDA #$4200 ;| $A7C7BE 95 D5 STA $D5,x [$7E:00D5] ;| $A7C7C0 8A TXA ;| $A7C7C1 18 CLC ;| $A7C7C2 69 07 00 ADC #$0007 ;| $A7C7C5 8D 30 03 STA $0330 [$80:0330] ;/ $A7C7C8 6B RTL ;;; $A7C7C9 A9 EF C7 LDA #$C7EF ;\ $A7C7CC 8D A8 0F STA $0FA8 [$80:0FA8] ;} Kraid function = $C7EF (done) $A7C7CF AE 30 03 LDX $0330 [$80:0330] ;\ $A7C7D2 A9 00 04 LDA #$0400 ;| $A7C7D5 95 D0 STA $D0,x [$7E:00D0] ;| $A7C7D7 A9 00 BA LDA #$BA00 ;| $A7C7DA 95 D2 STA $D2,x [$7E:00D2] ;| $A7C7DC A9 9A 00 LDA #$009A ;| $A7C7DF 95 D4 STA $D4,x [$7E:00D4] ;} $9ABA00..BDFF -> VRAM[4400..47FF] $A7C7E1 A9 00 44 LDA #$4400 ;| $A7C7E4 95 D5 STA $D5,x [$7E:00D5] ;| $A7C7E6 8A TXA ;| $A7C7E7 18 CLC ;| $A7C7E8 69 07 00 ADC #$0007 ;| $A7C7EB 8D 30 03 STA $0330 [$80:0330] ;/ $A7C7EE 6B RTL ;;; $A7C7EF A9 15 C8 LDA #$C815 ;\ $A7C7F2 8D A8 0F STA $0FA8 [$80:0FA8] ;} Kraid function = $C815 (done) $A7C7F5 AE 30 03 LDX $0330 [$80:0330] ;\ $A7C7F8 A9 00 04 LDA #$0400 ;| $A7C7FB 95 D0 STA $D0,x [$7E:00D0] ;| $A7C7FD A9 00 BE LDA #$BE00 ;| $A7C800 95 D2 STA $D2,x [$7E:00D2] ;| $A7C802 A9 9A 00 LDA #$009A ;| $A7C805 95 D4 STA $D4,x [$7E:00D4] ;} $9ABE00..C1FF -> VRAM[4600..49FF] $A7C807 A9 00 46 LDA #$4600 ;| $A7C80A 95 D5 STA $D5,x [$7E:00D5] ;| $A7C80C 8A TXA ;| $A7C80D 18 CLC ;| $A7C80E 69 07 00 ADC #$0007 ;| $A7C811 8D 30 03 STA $0330 [$80:0330] ;/ $A7C814 6B RTL ;;; $A7C815 22 6C D9 82 JSL $82D96C[$82:D96C] ;\ $A7C819 90 20 BCC $20 [$C83B] ;} If $82D96C returned carry clear: return $A7C81B A9 03 00 LDA #$0003 ;\ $A7C81E 22 C1 8F 80 JSL $808FC1[$80:8FC1] ;} Set music to 03 $A7C822 AE 9F 07 LDX $079F [$80:079F] ;\ $A7C825 BF 28 D8 7E LDA $7ED828,x[$7E:D828] ;| $A7C829 89 01 00 BIT #$0001 ;} If Kraid not-dead: $A7C82C D0 0E BNE $0E [$C83C] ;/ $A7C82E 09 01 00 ORA #$0001 ;\ $A7C831 9F 28 D8 7E STA $7ED828,x[$7E:D828] ;} Set Kraid dead $A7C835 A9 43 C8 LDA #$C843 ;\ $A7C838 8D A8 0F STA $0FA8 [$80:0FA8] ;} Kraid function = $C843 (done) $A7C83B 6B RTL $A7C83C A9 51 C8 LDA #$C851 ;\ Else (Kraid dead): $A7C83F 8D A8 0F STA $0FA8 [$80:0FA8] ;} Kraid function = $C851 (done) $A7C842 6B RTL ;;; $A7C843 20 2C A9 JSR $A92C [$80:A92C] ;\ $A7C846 F0 05 BEQ $05 [$C84D] ;| $A7C848 AD 11 09 LDA $0911 [$80:0911] ;} If Kraid not dead or screen X != 0: $A7C84B F0 03 BEQ $03 [$C850] ;/ $A7C84D 20 43 A9 JSR $A943 [$80:A943] ; Set enemy properties to dead $A7C850 6B RTL ;;; $A7C851 20 2C A9 JSR $A92C [$80:A92C] ;\ $A7C854 F0 05 BEQ $05 [$C85B] ;| $A7C856 AD 11 09 LDA $0911 [$80:0911] ;} If Kraid not dead or screen X != 0: $A7C859 F0 03 BEQ $03 [$C85E] ;/ $A7C85B 20 43 A9 JSR $A943 [$80:A943] ; Set enemy properties to dead $A7C85E A9 FF FF LDA #$FFFF ;\ $A7C861 8D FF 08 STA $08FF [$80:08FF] ;} Blocks scrolled X = -1 $A7C864 6B RTL } ;;; Restrict Samus X position to first screen; decrement enemy function timer ;;; $A7C865 20 EE C9 JSR $C9EE [$A7:C9EE] ; Restrict Samus X position to first screen $A7C868 4C 2D B9 JMP $B92D [$A7:B92D] ; Decrement enemy function timer ;;; { $A7C86B 20 EE C9 JSR $C9EE [$A7:C9EE] ; Restrict Samus X position to first screen $A7C86E A9 9A C8 LDA #$C89A ;\ $A7C871 8D A8 0F STA $0FA8 [$7E:0FA8] ;} Kraid function = $C89A (done) $A7C874 AE 30 03 LDX $0330 [$7E:0330] ;\ $A7C877 A9 00 08 LDA #$0800 ;| $A7C87A 95 D0 STA $D0,x [$7E:00D0] ;| $A7C87C A9 00 20 LDA #$2000 ;| $A7C87F 95 D2 STA $D2,x [$7E:00D2] ;| $A7C881 E2 20 SEP #$20 ;| $A7C883 A9 7E LDA #$7E ;| $A7C885 95 D4 STA $D4,x [$7E:00D4] ;| $A7C887 C2 20 REP #$20 ;} Kraid BGi -> VRAM[BG2 tilemap base] $A7C889 A5 59 LDA $59 [$7E:0059] ;| $A7C88B 29 FC 00 AND #$00FC ;| $A7C88E EB XBA ;| $A7C88F 95 D5 STA $D5,x [$7E:00D5] ;| $A7C891 8A TXA ;| $A7C892 18 CLC ;| $A7C893 69 07 00 ADC #$0007 ;| $A7C896 8D 30 03 STA $0330 [$7E:0330] ;/ $A7C899 6B RTL ;;; $A7C89A 20 EE C9 JSR $C9EE [$A7:C9EE] ; Restrict Samus X position to first screen $A7C89D A9 E0 C8 LDA #$C8E0 ;\ $A7C8A0 8D A8 0F STA $0FA8 [$7E:0FA8] ;} Kraid function = $C8E0 (done) $A7C8A3 A9 78 00 LDA #$0078 ;\ $A7C8A6 8D B2 0F STA $0FB2 [$7E:0FB2] ;} Kraid function timer = 120 $A7C8A9 A9 F0 01 LDA #$01F0 ;\ $A7C8AC 8D 40 18 STA $1840 [$7E:1840] ;} Screen shaking timer = 496 $A7C8AF A9 05 00 LDA #$0005 ;\ $A7C8B2 22 C1 8F 80 JSL $808FC1[$80:8FC1] ;} Set audio to 0005 $A7C8B6 AE 30 03 LDX $0330 [$7E:0330] ;\ $A7C8B9 A9 00 08 LDA #$0800 ;| $A7C8BC 95 D0 STA $D0,x [$7E:00D0] ;| $A7C8BE A9 00 28 LDA #$2800 ;| $A7C8C1 95 D2 STA $D2,x [$7E:00D2] ;| $A7C8C3 E2 20 SEP #$20 ;| $A7C8C5 A9 7E LDA #$7E ;| $A7C8C7 95 D4 STA $D4,x [$7E:00D4] ;| $A7C8C9 C2 20 REP #$20 ;| $A7C8CB A5 59 LDA $59 [$7E:0059] ;} Kraid ass BGi -> VRAM[BG2 tilemap base + $0800] $A7C8CD 29 FC 00 AND #$00FC ;| $A7C8D0 EB XBA ;| $A7C8D1 18 CLC ;| $A7C8D2 69 00 08 ADC #$0800 ;| $A7C8D5 95 D5 STA $D5,x [$7E:00D5] ;| $A7C8D7 8A TXA ;| $A7C8D8 18 CLC ;| $A7C8D9 69 07 00 ADC #$0007 ;| $A7C8DC 8D 30 03 STA $0330 [$7E:0330] ;/ $A7C8DF 6B RTL ;;; $A7C8E0 20 EE C9 JSR $C9EE [$A7:C9EE] ; Restrict Samus X position to first screen $A7C8E3 AD B2 0F LDA $0FB2 [$7E:0FB2] ;\ $A7C8E6 3A DEC A ;} Decrement Kraid function timer $A7C8E7 8D B2 0F STA $0FB2 [$7E:0FB2] ;/ $A7C8EA D0 0D BNE $0D [$C8F9] ; If Kraid function timer == 0: $A7C8EC A9 02 C9 LDA #$C902 ;\ $A7C8EF 8D A8 0F STA $0FA8 [$7E:0FA8] ;} Kraid function = $C902 (done) $A7C8F2 A9 60 00 LDA #$0060 ;\ $A7C8F5 8D B2 0F STA $0FB2 [$7E:0FB2] ;} Kraid function timer = 96 $A7C8F8 6B RTL $A7C8F9 29 0F 00 AND #$000F ;\ Else (Kraid function timer != 0): $A7C8FC D0 03 BNE $03 [$C901] ;} If Kraid function timer is a multiple of 10h $A7C8FE 20 95 C9 JSR $C995 [$A7:C995] ; Spawn random earthquake projectile $A7C901 6B RTL ;;; $A7C902 20 EE C9 JSR $C9EE [$81:C9EE] ; Restrict Samus X position to first screen $A7C905 AD B2 0F LDA $0FB2 [$82:0FB2] ;\ $A7C908 3A DEC A ;} Decrement Kraid function timer $A7C909 8D B2 0F STA $0FB2 [$82:0FB2] ;/ $A7C90C D0 0D BNE $0D [$C91B] ; If Kraid function timer == 0: $A7C90E A9 24 C9 LDA #$C924 ;\ $A7C911 8D A8 0F STA $0FA8 [$82:0FA8] ;} Kraid function = $C924 (done) $A7C914 A9 20 01 LDA #$0120 ;\ $A7C917 8D B2 0F STA $0FB2 [$82:0FB2] ;} Kraid function timer = 288 $A7C91A 6B RTL $A7C91B 29 07 00 AND #$0007 ;\ Else (Kraid function timer != 0): $A7C91E D0 03 BNE $03 [$C923] ;} If Kraid function timer is a multiple of 10h $A7C920 20 95 C9 JSR $C995 [$81:C995] ; Spawn random earthquake projectile $A7C923 6B RTL ;;; $A7C924 20 EE C9 JSR $C9EE [$81:C9EE] ; Restrict Samus X position to first screen $A7C927 AD 40 18 LDA $1840 [$82:1840] ;\ $A7C92A 89 05 00 BIT #$0005 ;} If screen shaking timer % 6 == 0 or 2: $A7C92D D0 03 BNE $03 [$C932] ;/ $A7C92F 20 95 C9 JSR $C995 [$81:C995] ; Spawn random earthquake projectile $A7C932 A0 01 00 LDY #$0001 ;\ $A7C935 AD 7E 0F LDA $0F7E [$82:0F7E] ;| $A7C938 89 02 00 BIT #$0002 ;| $A7C93B D0 03 BNE $03 [$C940] ;} $12 = 1 if Kraid Y position / 2 is odd, else $12 = -1: $A7C93D A0 FF FF LDY #$FFFF ;| ;| $A7C940 84 12 STY $12 [$00:0012] ;/ $A7C942 AD 7A 0F LDA $0F7A [$82:0F7A] ;\ $A7C945 18 CLC ;| $A7C946 65 12 ADC $12 [$00:0012] ;} Kraid X position += $12 $A7C948 8D 7A 0F STA $0F7A [$82:0F7A] ;/ $A7C94B AD 80 0F LDA $0F80 [$82:0F80] ;\ $A7C94E 38 SEC ;| $A7C94F E9 00 80 SBC #$8000 ;| $A7C952 8D 80 0F STA $0F80 [$82:0F80] ;} Kraid Y position -= 0.8000h $A7C955 AD 7E 0F LDA $0F7E [$82:0F7E] ;| $A7C958 E9 00 00 SBC #$0000 ;| $A7C95B 8D 7E 0F STA $0F7E [$82:0F7E] ;/ $A7C95E AD 7E 0F LDA $0F7E [$82:0F7E] ;\ $A7C961 C9 C9 01 CMP #$01C9 ;} If Kraid Y position >= 01C9h: return $A7C964 10 2E BPL $2E [$C994] ;/ $A7C966 A9 B0 00 LDA #$00B0 ;\ $A7C969 8D 7A 0F STA $0F7A [$82:0F7A] ;} Kraid X position = 00B0h $A7C96C A9 60 B9 LDA #$B960 ;\ $A7C96F 8D E8 10 STA $10E8 [$82:10E8] ;} Kraid foot function = $B960 (done) $A7C972 A9 2C 01 LDA #$012C ;\ $A7C975 8D F2 10 STA $10F2 [$82:10F2] ;} Kraid foot function timer = 300 $A7C978 A9 2D BF LDA #$BF2D ;\ $A7C97B 8F 40 79 7E STA $7E7940[$7E:7940] ;} $7E7940 = $BF2D (done) $A7C97F A9 DA 96 LDA #$96DA ;\ $A7C982 8D AA 0F STA $0FAA [$82:0FAA] ;} $0FAA = $96DA (done) $A7C985 20 E9 AD JSR $ADE9 [$81:ADE9] ; Execute subroutine $ADE9 (done) $A7C988 A9 F3 89 LDA #$89F3 ;\ $A7C98B 8D D2 0F STA $0FD2 [$82:0FD2] ;} Kraid arm instruction = $89F3 (done) $A7C98E A9 01 00 LDA #$0001 ;\ $A7C991 8D D4 0F STA $0FD4 [$82:0FD4] ;} Kraid arm instruction delay = 1 $A7C994 6B RTL } ;;; Spawn random earthquake projectile ;;; ; This first part is dreadful, here's my optimisation: ; LDA $05E5 : AND #$003F : BIT #$0002 : BNE $03 : EOR #$FFFF ; CLC : ADC $0F7A : STA $12 ; This generates a random number from: ; 3F, 3E, -3E, -3D, 3B, 3A, -3A, -39, 37, 36, -36, -35, 33, 32, -32, -31, 2F, 2E, -2E, -2D, 2B, 2A, -2A, -29, 27, 26, -26, -25, 23, 22, -22, -21, 1F, 1E, -1E, -1D, 1B, 1A, -1A, -19, 17, 16, -16, -15, 13, 12, -12, -11, 0F, 0E, -0E, -0D, 0B, 0A, -0A, -09, 07, 06, -06, -05, 03, 02, -02, -01 $A7C995 AD B5 05 LDA $05B5 [$7E:05B5] $A7C998 89 02 00 BIT #$0002 $A7C99B AD E5 05 LDA $05E5 [$7E:05E5] ;\ $A7C99E 29 3F 00 AND #$003F ;| $A7C9A1 AA TAX ;| $A7C9A2 AD E5 05 LDA $05E5 [$7E:05E5] ;| $A7C9A5 89 02 00 BIT #$0002 ;| $A7C9A8 D0 05 BNE $05 [$C9AF] ;| $A7C9AA 8A TXA ;| $A7C9AB 49 FF FF EOR #$FFFF ;} $12 = random number -3Eh..3Fh $A7C9AE AA TAX ;| ;| $A7C9AF 8A TXA ;| $A7C9B0 18 CLC ;| $A7C9B1 6D 7A 0F ADC $0F7A [$82:0F7A] ;| $A7C9B4 85 12 STA $12 [$7E:0012] ;/ $A7C9B6 AD E5 05 LDA $05E5 [$82:05E5] ;\ $A7C9B9 29 00 3F AND #$3F00 ;| $A7C9BC EB XBA ;| $A7C9BD 85 14 STA $14 [$7E:0014] ;| $A7C9BF A9 C0 01 LDA #$01C0 ;} $14 = random number 81h..1C0h $A7C9C2 38 SEC ;| $A7C9C3 E5 14 SBC $14 [$7E:0014] ;| $A7C9C5 85 14 STA $14 [$7E:0014] ;/ $A7C9C7 A9 15 00 LDA #$0015 ;\ $A7C9CA 85 16 STA $16 [$7E:0016] ;} $16 = 15h (smoke?) $A7C9CC 64 18 STZ $18 [$7E:0018] ; $18 = 0 $A7C9CE 22 26 BC B4 JSL $B4BC26[$B4:BC26] ; Create enemy-related sprite $A7C9D2 A0 61 9C LDY #$9C61 ;\ $A7C9D5 AD E5 05 LDA $05E5 [$82:05E5] ;| $A7C9D8 89 10 00 BIT #$0010 ;| $A7C9DB F0 03 BEQ $03 [$C9E0] ;| $A7C9DD A0 6F 9C LDY #$9C6F ;| ;} Spawn either ER projectile $9C61 or $9C6F randomly with random number parameter $A7C9E0 AE 54 0E LDX $0E54 [$82:0E54] ;| $A7C9E3 AD E5 05 LDA $05E5 [$82:05E5] ;| $A7C9E6 29 F0 03 AND #$03F0 ;| $A7C9E9 22 27 80 86 JSL $868027[$86:8027] ;/ $A7C9ED 60 RTS ;;; Restrict Samus X position to first screen ;;; $A7C9EE AD F6 0A LDA $0AF6 [$82:0AF6] ;\ $A7C9F1 38 SEC ;| $A7C9F2 E9 00 01 SBC #$0100 ;} If Samus' X position >= 100h: $A7C9F5 30 09 BMI $09 [$CA00] ;/ $A7C9F7 A9 00 01 LDA #$0100 ;\ $A7C9FA 8D F6 0A STA $0AF6 [$82:0AF6] ;} Samus X position = previous Samus X position = 100h $A7C9FD 8D 10 0B STA $0B10 [$82:0B10] ;/ $A7CA00 60 RTS $A7CA01 db 00, 38, FF, 7F, C0, 7E, E0, 6D, E0, 54, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 $A7CA41 db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, DF, 02, D7, 01, AC, 00, BB, 5E, B3, 3D, 2E, 29, 86, 14, B1, 0B, FB, 48, FF, 7F, 00, 00, FF, 7F, E5, 44, FF, 7F, 00, 00, 03, 20, B1, 0B, A9, 1E, 45, 01, BB, 5E, B3, 3D, 2E, 29, 86, 14, 18, 63, E7, 1C, 84, 10, 00, 00, FF, 7F, DF, 02, 1F, 00, 00, 00, 03, 20, BC, 72, FB, 48, 16, 18, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, FF, 7F, 00, 00, 00, 00, B2, 72, C7, 71, 03, 4D, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, FF, 7F, 00, 00, 00, 00, F4, 3E, 2E, 26, 68, 0D, 94, 3E, CE, 25, 08, 0D, 84, 14, 94, 6E, CE, 55, 08, 3D, 84, 2C, A9, 1E, B1, 0B, FF, 7F, 00, 00, 00, 00, 46, 12, 45, 01, C0, 00, 52, 36, 8C, 1D, C6, 04, 84, 04, 31, 62, 6B, 49, A5, 30, 21, 20, 15, 00, 5B, 02, FF, 7F, 00, 00, 00, 00, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, FF, 7F, 00, 00, 0E, 00, DC, 25, 38, 15, 71, 00, 30, 00, 79, 1D, 17, 11, B4, 08, 92, 00, 1F, 42, 79, 1D, F5, 0C, 93, 04, 1D, 1C, 19, 0C, 13, 00, 0C, 00, 1C, 2A, 57, 19, 70, 00, 2E, 00, 99, 21, 36, 11, D3, 08, 91, 00, 5F, 4A, 99, 1D, F4, 0C, B1, 04, 1D, 20, 18, 0C, 12, 00, 0A, 00, 5C, 2E, 96, 1D, 8E, 00, 4C, 00, D8, 25, 55, 15, F1, 08, AF, 00, 9F, 52, D8, 21, 13, 11, D0, 04, 1D, 24, 17, 10, 11, 00, 08, 00, 7C, 32, B5, 21, 8C, 00, 4A, 00, F7, 29, 74, 15, 10, 0D, AE, 00, DF, 5A, F7, 25, 31, 11, CE, 04, 1D, 28, 16, 10, 0F, 00, 06, 00, BB, 36, D4, 21, 8B, 00, 48, 00, 17, 2E, 93, 19, 0F, 0D, CC, 00, 1F, 63, 17, 2A, 50, 11, ED, 04, 1D, 2C, 16, 10, 0E, 00, 04, 00, FB, 3A, F3, 25, A9, 00, 46, 00, 56, 32, B2, 1D, 2D, 0D, EB, 00, 5F, 6B, 56, 2E, 6F, 15, EB, 04, 1D, 30, 15, 14, 0C, 00, 02, 00, 3B, 3F, 12, 2A, A7, 00, 44, 00, 75, 36, F1, 1D, 4C, 0D, E9, 04, BF, 77, 75, 32, 8E, 15, 0A, 05, 1D, 34, 14, 14, 0B, 00, 00, 00, 7B, 47, 52, 2E, C6, 00, 63, 00, B5, 3A, 10, 22, 6B, 11, 08, 05, FF, 7F, B5, 36, AD, 19, 29, 09, 1D, 38, 14, 18, 0A, 00, 01, 00, DD, DE, 2F, 81, 01, 00, E7, DE, 2F, 81, 01, 00, F1, DE, 2F, 81, 0A, 00, 05, DF, 0A, 00, 0F, DF, 01, 00, 19, DF, 8A, 80, ED, CE, 8A, 80, 3F, D0, 2F, 81 $A7CC7B db 01, 00, FB, DE, 2F, 81, 01, 00, 19, DF, 0A, 00, 0F, DF, 8A, 80, 76, D0, ED, 80, 7B, CC, 01, 00, 19, DF, 0A, 00, 0F, DF, ED, 80, 7B, CC, 01, 00, 23, DF, 8A, 80, ED, CE, 2F, 81 $A7CCAD db 01, 00, 73, DF, 2F, 81, 01, 00, 4B, DF, 2F, 81, 01, 00, 5F, DF, 2F, 81, 01, 00, 37, DF, 2F, 81, 01, 00, 55, DF $A7CCCB db 01, 00, 41, DF, 2F, 81 $A7CCD7 db 08, 00, B3, DF, 08, 00, C5, DF, 08, 00, D7, DF, 08, 00, C5, DF, ED, 80, D7, CC, 05, 00, FD, DF, 05, 00, F3, DF, 8A, 80, 5E, CF, 01, 00, E9, DF, 2F, 81, 05, CD, 13, CD $A7CD03 db 2F, CD, 05, 00, B4, 00, 20, 00, 20, 00, 20, 00, 20, 00, 20, 00, 03, 00, B4, 00, 10, 00, 10, 00, 10, 00 $A7CD2F db 07, 00, B4, 00, 10, 00, 40, 00, 20, 00, 40, 00, 20, 00, 10, 00, 20, 00, 3C, 00 $A7CD49 db 3C, 00 $A7CD4F db 3C, 00 $A7CD53 db D0, 02 $A7CD57 db 68, 01, D0, 02, 68, 01, 3C, 00, 68, 01 $A7CD63 db 3C, 00 $A7CD6B db 1E, 00 $A7CD73 db 00, 06, 00, 00, 00, 10, 00, 00, 02, 00, 07, 00, 00, 00, 00, 06, 00, 00, 00, 10, 00, 00, FE, FF, F9, FF, 00, 00 $A7CD9B db 40, 00, 00, 0C, 00, 01, 00, F0, 08, 00, 06, 06, 08, 08, 06, 08, 06, 08, 01 $A7CDBD db 88, 00, D0, 00, 60, 00 $A7CDE5 db D1, 01, 58, 00, 80, 00 $A7CDED db 79, 00, 7A, 00, 7B, 00 $A7CDF3 A2 FE 0F LDX #$0FFE $A7CDF6 A9 38 03 LDA #$0338 $A7CDF9 9F 00 20 7E STA $7E2000,x[$7E:2FFE] $A7CDFD CA DEX $A7CDFE CA DEX $A7CDFF 10 F8 BPL $F8 [$CDF9] $A7CE01 A2 FE 07 LDX #$07FE $A7CE04 A9 00 00 LDA #$0000 $A7CE07 9F 00 90 7E STA $7E9000,x[$7E:97FE] $A7CE0B CA DEX $A7CE0C CA DEX $A7CE0D 10 F8 BPL $F8 [$CE07] $A7CE0F A2 1E 00 LDX #$001E $A7CE12 A9 00 00 LDA #$0000 $A7CE15 9F E0 C2 7E STA $7EC2E0,x[$7E:C2FE] $A7CE19 CA DEX $A7CE1A CA DEX $A7CE1B 10 F8 BPL $F8 [$CE15] $A7CE1D A9 60 03 LDA #$0360 $A7CE20 8F 9A 17 00 STA $00179A[$7E:179A] $A7CE24 22 E2 A7 90 JSL $90A7E2[$90:A7E2] $A7CE28 AE 54 0E LDX $0E54 [$7E:0E54] $A7CE2B A9 78 00 LDA #$0078 $A7CE2E 9D B0 0F STA $0FB0,x[$7E:0FB0] $A7CE31 9E A8 0F STZ $0FA8,x[$7E:0FA8] $A7CE34 9E AA 0F STZ $0FAA,x[$7E:0FAA] $A7CE37 A9 00 00 LDA #$0000 $A7CE3A 8F 32 90 7E STA $7E9032[$7E:9032] $A7CE3E 9C F4 0F STZ $0FF4 [$7E:0FF4] $A7CE41 9C F6 0F STZ $0FF6 [$7E:0FF6] $A7CE44 AD 86 0F LDA $0F86 [$7E:0F86] $A7CE47 09 00 04 ORA #$0400 $A7CE4A 8D 86 0F STA $0F86 [$7E:0F86] $A7CE4D 22 35 84 88 JSL $888435[$88:8435] $A7CE51 db 01, 14, 96, CE $A7CE55 AE 54 0E LDX $0E54 [$7E:0E54] $A7CE58 A9 4D 80 LDA #$804D $A7CE5B 9D 8E 0F STA $0F8E,x[$7E:0F8E] $A7CE5E A9 01 00 LDA #$0001 $A7CE61 9D 94 0F STA $0F94,x[$7E:0F94] $A7CE64 9E 90 0F STZ $0F90,x[$7E:0F90] $A7CE67 AD 96 0F LDA $0F96 [$7E:0F96] $A7CE6A 9D 96 0F STA $0F96,x[$7E:0F96] $A7CE6D AD 98 0F LDA $0F98 [$7E:0F98] $A7CE70 9D 98 0F STA $0F98,x[$7E:0F98] $A7CE73 BD B6 0F LDA $0FB6,x[$7E:0FB6] $A7CE76 0A ASL A $A7CE77 A8 TAY $A7CE78 B9 8E CE LDA $CE8E,y[$A7:CE8E] $A7CE7B 9D 92 0F STA $0F92,x[$7E:0F92] $A7CE7E A9 A9 D4 LDA #$D4A9 $A7CE81 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7CE84 9C 74 10 STZ $1074 [$7E:1074] $A7CE87 A9 FF FF LDA #$FFFF $A7CE8A 8D 6C 10 STA $106C [$7E:106C] $A7CE8D 6B RTL $A7CE8E db 41, CC, 7B, CC, D7, CC, F7, CC, 55, 86, A7, 01, 00, 51, CD, 70, 85, 49, E4, 88, 82, 86, 69, 85 $A7CEA6 AE 54 0E LDX $0E54 [$7E:0E54] $A7CEA9 20 0C CF JSR $CF0C [$A7:CF0C] $A7CEAC F4 B1 CE PEA $CEB1 $A7CEAF 7C B2 0F JMP ($0FB2,x)[$A7:D4A9] $A7CEB2 8A TXA $A7CEB3 D0 37 BNE $37 [$CEEC] $A7CEB5 BD 7A 0F LDA $0F7A,x[$7E:0F7A] $A7CEB8 9D BA 0F STA $0FBA,x[$7E:0FBA] $A7CEBB 9D FA 0F STA $0FFA,x[$7E:0FFA] $A7CEBE 9D 3A 10 STA $103A,x[$7E:103A] $A7CEC1 BD 7E 0F LDA $0F7E,x[$7E:0F7E] $A7CEC4 9D BE 0F STA $0FBE,x[$7E:0FBE] $A7CEC7 9D FE 0F STA $0FFE,x[$7E:0FFE] $A7CECA 9D 3E 10 STA $103E,x[$7E:103E] $A7CECD AD F4 0F LDA $0FF4 [$7E:0FF4] $A7CED0 D0 1A BNE $1A [$CEEC] $A7CED2 AD 11 09 LDA $0911 [$7E:0911] $A7CED5 38 SEC $A7CED6 FD 7A 0F SBC $0F7A,x[$7E:0F7A] $A7CED9 38 SEC $A7CEDA E9 D8 FF SBC #$FFD8 $A7CEDD 85 B5 STA $B5 [$7E:00B5] $A7CEDF AD 15 09 LDA $0915 [$7E:0915] $A7CEE2 38 SEC $A7CEE3 FD 7E 0F SBC $0F7E,x[$7E:0F7E] $A7CEE6 38 SEC $A7CEE7 E9 D8 FF SBC #$FFD8 $A7CEEA 85 B7 STA $B7 [$7E:00B7] $A7CEEC 6B RTL $A7CEED AF 32 90 7E LDA $7E9032[$7E:9032] $A7CEF1 0A ASL A $A7CEF2 A8 TAY $A7CEF3 B9 ED CD LDA $CDED,y[$A7:CDED] $A7CEF6 22 CB 90 80 JSL $8090CB[$80:90CB] $A7CEFA AF 32 90 7E LDA $7E9032[$7E:9032] $A7CEFE 1A INC A $A7CEFF C9 03 00 CMP #$0003 $A7CF02 30 03 BMI $03 [$CF07] $A7CF04 A9 00 00 LDA #$0000 $A7CF07 8F 32 90 7E STA $7E9032[$7E:9032] $A7CF0B 60 RTS $A7CF0C 8A TXA $A7CF0D D0 17 BNE $17 [$CF26] $A7CF0F A5 8F LDA $8F [$7E:008F] $A7CF11 89 00 40 BIT #$4000 $A7CF14 F0 10 BEQ $10 [$CF26] $A7CF16 BD 30 90 LDA $9030,x[$A7:9030] $A7CF19 D0 08 BNE $08 [$CF23] $A7CF23 9E 30 90 STZ $9030,x[$A7:9030] $A7CF26 60 RTS $A7CF27 AD 70 10 LDA $1070 [$7E:1070] $A7CF2A D0 20 BNE $20 [$CF4C] $A7CF2C A5 14 LDA $14 [$7E:0014] $A7CF2E 29 00 FF AND #$FF00 $A7CF31 EB XBA $A7CF32 85 16 STA $16 [$7E:0016] $A7CF34 AD 6E 10 LDA $106E [$7E:106E] $A7CF37 18 CLC $A7CF38 65 12 ADC $12 [$7E:0012] $A7CF3A 8D 6E 10 STA $106E [$7E:106E] $A7CF3D 29 00 FF AND #$FF00 $A7CF40 EB XBA $A7CF41 C5 16 CMP $16 [$7E:0016] $A7CF43 30 17 BMI $17 [$CF5C] $A7CF45 A5 14 LDA $14 [$7E:0014] $A7CF47 8D 6E 10 STA $106E [$7E:106E] $A7CF4A 80 10 BRA $10 [$CF5C] $A7CF4C AD 6E 10 LDA $106E [$7E:106E] $A7CF4F 38 SEC $A7CF50 E5 12 SBC $12 [$7E:0012] $A7CF52 8D 6E 10 STA $106E [$7E:106E] $A7CF55 B0 05 BCS $05 [$CF5C] $A7CF57 9C 6E 10 STZ $106E [$7E:106E] $A7CF5A 38 SEC $A7CF5B 60 RTS $A7CF5C 18 CLC $A7CF5D 60 RTS $A7CF5E A9 00 00 LDA #$0000 $A7CF61 A0 29 9C LDY #$9C29 $A7CF64 22 27 80 86 JSL $868027[$86:8027] $A7CF68 A9 1D 00 LDA #$001D $A7CF6B 22 4D 91 80 JSL $80914D[$80:914D] $A7CF6F 60 RTS $A7CF70 A0 07 00 LDY #$0007 $A7CF73 5A PHY $A7CF74 98 TYA $A7CF75 09 00 06 ORA #$0600 $A7CF78 A0 29 9C LDY #$9C29 $A7CF7B 22 27 80 86 JSL $868027[$86:8027] $A7CF7F 7A PLY $A7CF80 88 DEY $A7CF81 10 F0 BPL $F0 [$CF73] $A7CF83 A9 28 00 LDA #$0028 $A7CF86 22 4D 91 80 JSL $80914D[$80:914D] $A7CF8A 60 RTS $A7CF8B A8 TAY $A7CF8C B9 C2 CF LDA $CFC2,y[$A7:CFC4] $A7CF8F 29 FF 00 AND #$00FF $A7CF92 A8 TAY $A7CF93 A9 07 00 LDA #$0007 $A7CF96 85 12 STA $12 [$7E:0012] $A7CF98 A9 10 00 LDA #$0010 $A7CF9B 85 14 STA $14 [$7E:0014] $A7CF9D 98 TYA $A7CF9E 09 00 04 ORA #$0400 $A7CFA1 05 14 ORA $14 [$7E:0014] $A7CFA3 5A PHY $A7CFA4 A0 29 9C LDY #$9C29 $A7CFA7 22 27 80 86 JSL $868027[$86:8027] $A7CFAB 7A PLY $A7CFAC C8 INY $A7CFAD C0 09 00 CPY #$0009 $A7CFB0 30 03 BMI $03 [$CFB5] $A7CFB2 A0 00 00 LDY #$0000 $A7CFB5 A5 14 LDA $14 [$7E:0014] $A7CFB7 18 CLC $A7CFB8 69 10 00 ADC #$0010 $A7CFBB 85 14 STA $14 [$7E:0014] $A7CFBD C6 12 DEC $12 [$7E:0012] $A7CFBF 10 DC BPL $DC [$CF9D] $A7CFC1 60 RTS $A7CFC4 db 00, 07 $A7CFC9 db 03 $A7CFCA DE 6A 10 DEC $106A,x[$7E:106A] $A7CFCD F0 02 BEQ $02 [$CFD1] $A7CFCF 10 6D BPL $6D [$D03E] $A7CFD1 BD 6C 10 LDA $106C,x[$7E:106C] $A7CFD4 10 26 BPL $26 [$CFFC] $A7CFD6 22 11 81 80 JSL $808111[$80:8111] $A7CFDA 29 03 00 AND #$0003 $A7CFDD 9D 68 10 STA $1068,x[$7E:1068] $A7CFE0 0A ASL A $A7CFE1 A8 TAY $A7CFE2 B9 FD CC LDA $CCFD,y[$A7:CD03] $A7CFE5 A8 TAY $A7CFE6 B9 00 00 LDA $0000,y[$A7:CD2F] $A7CFE9 9D 6C 10 STA $106C,x[$7E:106C] $A7CFEC 0A ASL A $A7CFED 85 12 STA $12 [$7E:0012] $A7CFEF 98 TYA $A7CFF0 18 CLC $A7CFF1 65 12 ADC $12 [$7E:0012] $A7CFF3 A8 TAY $A7CFF4 B9 02 00 LDA $0002,y[$A7:CD3F] $A7CFF7 9D 6A 10 STA $106A,x[$7E:106A] $A7CFFA 80 42 BRA $42 [$D03E] $A7CFFC DE 6C 10 DEC $106C,x[$7E:106C] $A7CFFF F0 02 BEQ $02 [$D003] $A7D001 10 17 BPL $17 [$D01A] $A7D003 A9 FF FF LDA #$FFFF $A7D006 9D 6C 10 STA $106C,x[$7E:106C] $A7D009 BD 68 10 LDA $1068,x[$7E:1068] $A7D00C 0A ASL A $A7D00D A8 TAY $A7D00E B9 FD CC LDA $CCFD,y[$A7:CD03] $A7D011 A8 TAY $A7D012 B9 02 00 LDA $0002,y[$A7:CD31] $A7D015 9D 6A 10 STA $106A,x[$7E:106A] $A7D018 80 18 BRA $18 [$D032] $A7D01A BD 6C 10 LDA $106C,x[$7E:106C] $A7D01D 0A ASL A $A7D01E 85 12 STA $12 [$7E:0012] $A7D020 BD 68 10 LDA $1068,x[$7E:1068] $A7D023 0A ASL A $A7D024 A8 TAY $A7D025 B9 FD CC LDA $CCFD,y[$A7:CD03] $A7D028 18 CLC $A7D029 65 12 ADC $12 [$7E:0012] $A7D02B A8 TAY $A7D02C B9 02 00 LDA $0002,y[$A7:CD3D] $A7D02F 9D 6A 10 STA $106A,x[$7E:106A] $A7D032 A9 01 00 LDA #$0001 $A7D035 9D 54 10 STA $1054,x[$7E:1054] $A7D038 A9 EB CC LDA #$CCEB $A7D03B 9D 52 10 STA $1052,x[$7E:1052] $A7D03E 60 RTS $A7D03F 9C 28 10 STZ $1028 [$7E:1028] $A7D042 A9 01 00 LDA #$0001 $A7D045 8D 94 0F STA $0F94 [$7E:0F94] $A7D048 8D D4 0F STA $0FD4 [$7E:0FD4] $A7D04B A9 4D CC LDA #$CC4D $A7D04E 8D 92 0F STA $0F92 [$7E:0F92] $A7D051 A9 9D CC LDA #$CC9D $A7D054 8D D2 0F STA $0FD2 [$7E:0FD2] $A7D057 AD 86 0F LDA $0F86 [$7E:0F86] $A7D05A 29 FF FB AND #$FBFF $A7D05D 8D 86 0F STA $0F86 [$7E:0F86] $A7D060 22 11 81 80 JSL $808111[$80:8111] $A7D064 29 07 00 AND #$0007 $A7D067 0A ASL A $A7D068 A8 TAY $A7D069 B9 41 CD LDA $CD41,y[$A7:CD4F] $A7D06C 8D B0 0F STA $0FB0 [$7E:0FB0] $A7D06F A9 0D D6 LDA #$D60D $A7D072 8D B2 0F STA $0FB2 [$7E:0FB2] $A7D075 60 RTS $A7D076 A9 3C 00 LDA #$003C $A7D079 8D B0 0F STA $0FB0 [$7E:0FB0] $A7D07C 22 11 81 80 JSL $808111[$80:8111] $A7D080 29 07 00 AND #$0007 $A7D083 0A ASL A $A7D084 A8 TAY $A7D085 B9 53 CD LDA $CD53,y[$A7:CD5B] $A7D088 8D E8 0F STA $0FE8 [$7E:0FE8] $A7D08B AD B6 05 LDA $05B6 [$7E:05B6] $A7D08E 89 01 00 BIT #$0001 $A7D091 D0 25 BNE $25 [$D0B8] $A7D093 AD EC 0F LDA $0FEC [$7E:0FEC] $A7D096 F0 0F BEQ $0F [$D0A7] $A7D098 AD A8 0F LDA $0FA8 [$7E:0FA8] $A7D09B 1A INC A $A7D09C 8D A8 0F STA $0FA8 [$7E:0FA8] $A7D09F C9 16 02 CMP #$0216 $A7D0A2 30 03 BMI $03 [$D0A7] $A7D0A7 A9 01 00 LDA #$0001 $A7D0AA 8D AC 0F STA $0FAC [$7E:0FAC] $A7D0AD 9C AA 0F STZ $0FAA [$7E:0FAA] $A7D0B0 9C AE 0F STZ $0FAE [$7E:0FAE] $A7D0B3 9C EC 0F STZ $0FEC [$7E:0FEC] $A7D0B6 80 23 BRA $23 [$D0DB] $A7D0B8 AD EC 0F LDA $0FEC [$7E:0FEC] $A7D0BB D0 0F BNE $0F [$D0CC] $A7D0BD AD A8 0F LDA $0FA8 [$7E:0FA8] $A7D0C0 3A DEC A $A7D0C1 8D A8 0F STA $0FA8 [$7E:0FA8] $A7D0C4 10 06 BPL $06 [$D0CC] $A7D0CC 9C AC 0F STZ $0FAC [$7E:0FAC] $A7D0CF 9C AA 0F STZ $0FAA [$7E:0FAA] $A7D0D2 9C AE 0F STZ $0FAE [$7E:0FAE] $A7D0D5 A9 01 00 LDA #$0001 $A7D0D8 8D EC 0F STA $0FEC [$7E:0FEC] $A7D0DB AD B6 0F LDA $0FB6 [$7E:0FB6] $A7D0DE D0 07 BNE $07 [$D0E7] $A7D0E0 A9 E7 D5 LDA #$D5E7 $A7D0E3 8D B2 0F STA $0FB2 [$7E:0FB2] $A7D0E6 60 RTS $A7D0E7 9C F2 0F STZ $0FF2 [$7E:0FF2] $A7D0EA A9 2A D8 LDA #$D82A $A7D0ED 8D B2 0F STA $0FB2 [$7E:0FB2] $A7D0F0 60 RTS $A7D0F1 AD EC 0F LDA $0FEC [$7E:0FEC] $A7D0F4 D0 0F BNE $0F [$D105] $A7D0F6 20 14 D1 JSR $D114 [$A7:D114] $A7D0F9 A0 D2 E3 LDY #$E3D2 $A7D0FC A9 16 02 LDA #$0216 $A7D0FF 85 14 STA $14 [$7E:0014] $A7D101 20 15 D2 JSR $D215 [$A7:D215] $A7D104 60 RTS $A7D105 20 93 D1 JSR $D193 [$A7:D193] $A7D108 A0 D2 E3 LDY #$E3D2 $A7D10B A9 15 02 LDA #$0215 $A7D10E 85 14 STA $14 [$7E:0014] $A7D110 20 71 D2 JSR $D271 [$A7:D271] $A7D113 60 RTS $A7D114 AD AE 0F LDA $0FAE [$7E:0FAE] $A7D117 F0 07 BEQ $07 [$D120] $A7D119 89 01 00 BIT #$0001 $A7D11C D0 28 BNE $28 [$D146] $A7D11E 80 4B BRA $4B [$D16B] $A7D120 AD AA 0F LDA $0FAA [$7E:0FAA] $A7D123 18 CLC $A7D124 6D 73 CD ADC $CD73 [$A7:CD73] $A7D127 8D AA 0F STA $0FAA [$7E:0FAA] $A7D12A AD AC 0F LDA $0FAC [$7E:0FAC] $A7D12D 6D 75 CD ADC $CD75 [$A7:CD75] $A7D130 8D AC 0F STA $0FAC [$7E:0FAC] $A7D133 CD 7B CD CMP $CD7B [$A7:CD7B] $A7D136 30 0D BMI $0D [$D145] $A7D138 AD 7B CD LDA $CD7B [$A7:CD7B] $A7D13B 3A DEC A $A7D13C 8D AC 0F STA $0FAC [$7E:0FAC] $A7D13F 9C AA 0F STZ $0FAA [$7E:0FAA] $A7D142 EE AE 0F INC $0FAE [$7E:0FAE] $A7D145 60 RTS $A7D146 AD AA 0F LDA $0FAA [$7E:0FAA] $A7D149 18 CLC $A7D14A 6D 77 CD ADC $CD77 [$A7:CD77] $A7D14D 8D AA 0F STA $0FAA [$7E:0FAA] $A7D150 AD AC 0F LDA $0FAC [$7E:0FAC] $A7D153 6D 79 CD ADC $CD79 [$A7:CD79] $A7D156 8D AC 0F STA $0FAC [$7E:0FAC] $A7D159 CD 7D CD CMP $CD7D [$A7:CD7D] $A7D15C 30 0C BMI $0C [$D16A] $A7D15E AD 7D CD LDA $CD7D [$A7:CD7D] $A7D161 8D AC 0F STA $0FAC [$7E:0FAC] $A7D164 9C AA 0F STZ $0FAA [$7E:0FAA] $A7D167 EE AE 0F INC $0FAE [$7E:0FAE] $A7D16A 60 RTS $A7D16B AD AA 0F LDA $0FAA [$7E:0FAA] $A7D16E 38 SEC $A7D16F ED 77 CD SBC $CD77 [$A7:CD77] $A7D172 8D AA 0F STA $0FAA [$7E:0FAA] $A7D175 AD AC 0F LDA $0FAC [$7E:0FAC] $A7D178 ED 79 CD SBC $CD79 [$A7:CD79] $A7D17B 8D AC 0F STA $0FAC [$7E:0FAC] $A7D17E CD 7F CD CMP $CD7F [$A7:CD7F] $A7D181 F0 02 BEQ $02 [$D185] $A7D183 10 0D BPL $0D [$D192] $A7D185 AD 7F CD LDA $CD7F [$A7:CD7F] $A7D188 1A INC A $A7D189 8D AC 0F STA $0FAC [$7E:0FAC] $A7D18C 9C AA 0F STZ $0FAA [$7E:0FAA] $A7D18F 9C AE 0F STZ $0FAE [$7E:0FAE] $A7D192 60 RTS $A7D193 AD AE 0F LDA $0FAE [$7E:0FAE] $A7D196 F0 07 BEQ $07 [$D19F] $A7D198 89 01 00 BIT #$0001 $A7D19B D0 2B BNE $2B [$D1C8] $A7D19D 80 51 BRA $51 [$D1F0] $A7D19F AD AA 0F LDA $0FAA [$7E:0FAA] $A7D1A2 38 SEC $A7D1A3 ED 81 CD SBC $CD81 [$A7:CD81] $A7D1A6 8D AA 0F STA $0FAA [$7E:0FAA] $A7D1A9 AD AC 0F LDA $0FAC [$7E:0FAC] $A7D1AC ED 83 CD SBC $CD83 [$A7:CD83] $A7D1AF 8D AC 0F STA $0FAC [$7E:0FAC] $A7D1B2 CD 89 CD CMP $CD89 [$A7:CD89] $A7D1B5 F0 02 BEQ $02 [$D1B9] $A7D1B7 10 0E BPL $0E [$D1C7] $A7D1B9 AD 89 CD LDA $CD89 [$A7:CD89] $A7D1BC 1A INC A $A7D1BD 1A INC A $A7D1BE 8D AC 0F STA $0FAC [$7E:0FAC] $A7D1C1 9C AA 0F STZ $0FAA [$7E:0FAA] $A7D1C4 EE AE 0F INC $0FAE [$7E:0FAE] $A7D1C7 60 RTS $A7D1C8 AD AA 0F LDA $0FAA [$7E:0FAA] $A7D1CB 38 SEC $A7D1CC ED 85 CD SBC $CD85 [$A7:CD85] $A7D1CF 8D AA 0F STA $0FAA [$7E:0FAA] $A7D1D2 AD AC 0F LDA $0FAC [$7E:0FAC] $A7D1D5 ED 87 CD SBC $CD87 [$A7:CD87] $A7D1D8 8D AC 0F STA $0FAC [$7E:0FAC] $A7D1DB CD 8B CD CMP $CD8B [$A7:CD8B] $A7D1DE F0 02 BEQ $02 [$D1E2] $A7D1E0 10 0D BPL $0D [$D1EF] $A7D1E2 AD 8B CD LDA $CD8B [$A7:CD8B] $A7D1E5 1A INC A $A7D1E6 8D AC 0F STA $0FAC [$7E:0FAC] $A7D1E9 9C AA 0F STZ $0FAA [$7E:0FAA] $A7D1EC EE AE 0F INC $0FAE [$7E:0FAE] $A7D1EF 60 RTS $A7D1F0 AD AA 0F LDA $0FAA [$7E:0FAA] $A7D1F3 18 CLC $A7D1F4 6D 85 CD ADC $CD85 [$A7:CD85] $A7D1F7 8D AA 0F STA $0FAA [$7E:0FAA] $A7D1FA AD AC 0F LDA $0FAC [$7E:0FAC] $A7D1FD 6D 87 CD ADC $CD87 [$A7:CD87] $A7D200 8D AC 0F STA $0FAC [$7E:0FAC] $A7D203 CD 8D CD CMP $CD8D [$A7:CD8D] $A7D206 30 0C BMI $0C [$D214] $A7D208 AD 8D CD LDA $CD8D [$A7:CD8D] $A7D20B 8D AC 0F STA $0FAC [$7E:0FAC] $A7D20E 9C AA 0F STZ $0FAA [$7E:0FAA] $A7D211 9C AE 0F STZ $0FAE [$7E:0FAE] $A7D214 60 RTS $A7D215 AD AC 0F LDA $0FAC [$7E:0FAC] $A7D218 85 16 STA $16 [$7E:0016] $A7D21A D0 01 BNE $01 [$D21D] $A7D21D 5A PHY $A7D21E AD A8 0F LDA $0FA8 [$7E:0FA8] $A7D221 0A ASL A $A7D222 85 12 STA $12 [$7E:0012] $A7D224 98 TYA $A7D225 18 CLC $A7D226 65 12 ADC $12 [$7E:0012] $A7D228 A8 TAY $A7D229 B9 00 00 LDA $0000,y[$A7:E4BE] $A7D22C 29 FF 00 AND #$00FF $A7D22F 89 80 00 BIT #$0080 $A7D232 F0 03 BEQ $03 [$D237] $A7D234 09 00 FF ORA #$FF00 $A7D237 85 12 STA $12 [$7E:0012] $A7D239 AD 7A 0F LDA $0F7A [$7E:0F7A] $A7D23C 18 CLC $A7D23D 65 12 ADC $12 [$7E:0012] $A7D23F 8D 7A 0F STA $0F7A [$7E:0F7A] $A7D242 B9 01 00 LDA $0001,y[$A7:E4BF] $A7D245 29 FF 00 AND #$00FF $A7D248 89 80 00 BIT #$0080 $A7D24B F0 03 BEQ $03 [$D250] $A7D24D 09 00 FF ORA #$FF00 $A7D250 85 12 STA $12 [$7E:0012] $A7D252 AD 7E 0F LDA $0F7E [$7E:0F7E] $A7D255 18 CLC $A7D256 65 12 ADC $12 [$7E:0012] $A7D258 8D 7E 0F STA $0F7E [$7E:0F7E] $A7D25B AD A8 0F LDA $0FA8 [$7E:0FA8] $A7D25E 1A INC A $A7D25F 8D A8 0F STA $0FA8 [$7E:0FA8] $A7D262 C5 14 CMP $14 [$7E:0014] $A7D264 30 03 BMI $03 [$D269] $A7D266 9C A8 0F STZ $0FA8 [$7E:0FA8] $A7D269 7A PLY $A7D26A C6 16 DEC $16 [$7E:0016] $A7D26C F0 02 BEQ $02 [$D270] $A7D26E 80 AD BRA $AD [$D21D] $A7D270 60 RTS $A7D271 AD AC 0F LDA $0FAC [$7E:0FAC] $A7D274 49 FF FF EOR #$FFFF $A7D277 1A INC A $A7D278 85 16 STA $16 [$7E:0016] $A7D27A D0 01 BNE $01 [$D27D] $A7D27C 60 RTS $A7D27D 5A PHY $A7D27E AD A8 0F LDA $0FA8 [$7E:0FA8] $A7D281 0A ASL A $A7D282 85 12 STA $12 [$7E:0012] $A7D284 98 TYA $A7D285 18 CLC $A7D286 65 12 ADC $12 [$7E:0012] $A7D288 A8 TAY $A7D289 B9 00 00 LDA $0000,y[$A7:E7FC] $A7D28C 29 FF 00 AND #$00FF $A7D28F 89 80 00 BIT #$0080 $A7D292 F0 03 BEQ $03 [$D297] $A7D294 09 00 FF ORA #$FF00 $A7D297 85 12 STA $12 [$7E:0012] $A7D299 AD 7A 0F LDA $0F7A [$7E:0F7A] $A7D29C 38 SEC $A7D29D E5 12 SBC $12 [$7E:0012] $A7D29F 8D 7A 0F STA $0F7A [$7E:0F7A] $A7D2A2 B9 01 00 LDA $0001,y[$A7:E7FD] $A7D2A5 29 FF 00 AND #$00FF $A7D2A8 89 80 00 BIT #$0080 $A7D2AB F0 03 BEQ $03 [$D2B0] $A7D2AD 09 00 FF ORA #$FF00 $A7D2B0 85 12 STA $12 [$7E:0012] $A7D2B2 AD 7E 0F LDA $0F7E [$7E:0F7E] $A7D2B5 38 SEC $A7D2B6 E5 12 SBC $12 [$7E:0012] $A7D2B8 8D 7E 0F STA $0F7E [$7E:0F7E] $A7D2BB AD A8 0F LDA $0FA8 [$7E:0FA8] $A7D2BE 3A DEC A $A7D2BF 8D A8 0F STA $0FA8 [$7E:0FA8] $A7D2C2 10 05 BPL $05 [$D2C9] $A7D2C4 A5 14 LDA $14 [$7E:0014] $A7D2C6 8D A8 0F STA $0FA8 [$7E:0FA8] $A7D2C9 7A PLY $A7D2CA C6 16 DEC $16 [$7E:0016] $A7D2CC F0 02 BEQ $02 [$D2D0] $A7D2CE 80 AD BRA $AD [$D27D] $A7D2D0 60 RTS $A7D2D1 AD 30 10 LDA $1030 [$7E:1030] $A7D2D4 30 17 BMI $17 [$D2ED] $A7D2D6 18 CLC $A7D2D7 69 02 00 ADC #$0002 $A7D2DA 8D 30 10 STA $1030 [$7E:1030] $A7D2DD C9 00 01 CMP #$0100 $A7D2E0 30 1F BMI $1F [$D301] $A7D2E2 09 00 80 ORA #$8000 $A7D2E5 8D 30 10 STA $1030 [$7E:1030] $A7D2E8 29 FF 7F AND #$7FFF $A7D2EB 80 14 BRA $14 [$D301] $A7D2ED 38 SEC $A7D2EE E9 02 00 SBC #$0002 $A7D2F1 8D 30 10 STA $1030 [$7E:1030] $A7D2F4 29 FF 7F AND #$7FFF $A7D2F7 F0 02 BEQ $02 [$D2FB] $A7D2F9 10 06 BPL $06 [$D301] $A7D2FB A9 00 00 LDA #$0000 $A7D2FE 8D 30 10 STA $1030 [$7E:1030] $A7D301 CD 7A 0F CMP $0F7A [$7E:0F7A] $A7D304 30 11 BMI $11 [$D317] $A7D306 AD 2C 10 LDA $102C [$7E:102C] $A7D309 C9 00 08 CMP #$0800 $A7D30C 10 18 BPL $18 [$D326] $A7D30E 18 CLC $A7D30F 69 20 00 ADC #$0020 $A7D312 8D 2C 10 STA $102C [$7E:102C] $A7D315 80 0F BRA $0F [$D326] $A7D317 AD 2C 10 LDA $102C [$7E:102C] $A7D31A C9 01 F8 CMP #$F801 $A7D31D 30 07 BMI $07 [$D326] $A7D31F 38 SEC $A7D320 E9 20 00 SBC #$0020 $A7D323 8D 2C 10 STA $102C [$7E:102C] $A7D326 AD 2C 10 LDA $102C [$7E:102C] $A7D329 EB XBA $A7D32A 48 PHA $A7D32B 29 00 FF AND #$FF00 $A7D32E 85 14 STA $14 [$7E:0014] $A7D330 68 PLA $A7D331 29 FF 00 AND #$00FF $A7D334 89 80 00 BIT #$0080 $A7D337 F0 03 BEQ $03 [$D33C] $A7D339 09 00 FF ORA #$FF00 $A7D33C 85 12 STA $12 [$7E:0012] $A7D33E AD 7C 0F LDA $0F7C [$7E:0F7C] $A7D341 18 CLC $A7D342 65 14 ADC $14 [$7E:0014] $A7D344 8D 7C 0F STA $0F7C [$7E:0F7C] $A7D347 AD 7A 0F LDA $0F7A [$7E:0F7A] $A7D34A 65 12 ADC $12 [$7E:0012] $A7D34C 8D 7A 0F STA $0F7A [$7E:0F7A] $A7D34F C9 C0 FF CMP #$FFC0 $A7D352 10 08 BPL $08 [$D35C] $A7D35C C9 C0 01 CMP #$01C0 $A7D35F 30 06 BMI $06 [$D367] $A7D367 BD B2 0F LDA $0FB2,x[$7E:0FB2] $A7D36A C9 2E D9 CMP #$D92E $A7D36D D0 05 BNE $05 [$D374] $A7D374 AD FA 0A LDA $0AFA [$7E:0AFA] $A7D377 38 SEC $A7D378 E9 30 00 SBC #$0030 $A7D37B CD 7E 0F CMP $0F7E [$7E:0F7E] $A7D37E 30 11 BMI $11 [$D391] $A7D380 AD 2E 10 LDA $102E [$7E:102E] $A7D383 C9 00 06 CMP #$0600 $A7D386 10 18 BPL $18 [$D3A0] $A7D388 18 CLC $A7D389 69 40 00 ADC #$0040 $A7D38C 8D 2E 10 STA $102E [$7E:102E] $A7D38F 80 0F BRA $0F [$D3A0] $A7D391 AD 2E 10 LDA $102E [$7E:102E] $A7D394 C9 01 FA CMP #$FA01 $A7D397 30 07 BMI $07 [$D3A0] $A7D399 38 SEC $A7D39A E9 40 00 SBC #$0040 $A7D39D 8D 2E 10 STA $102E [$7E:102E] $A7D3A0 AD 2E 10 LDA $102E [$7E:102E] $A7D3A3 EB XBA $A7D3A4 48 PHA $A7D3A5 29 00 FF AND #$FF00 $A7D3A8 85 14 STA $14 [$7E:0014] $A7D3AA 68 PLA $A7D3AB 29 FF 00 AND #$00FF $A7D3AE 89 80 00 BIT #$0080 $A7D3B1 F0 03 BEQ $03 [$D3B6] $A7D3B3 09 00 FF ORA #$FF00 $A7D3B6 85 12 STA $12 [$7E:0012] $A7D3B8 AD 80 0F LDA $0F80 [$7E:0F80] $A7D3BB 18 CLC $A7D3BC 65 14 ADC $14 [$7E:0014] $A7D3BE 8D 80 0F STA $0F80 [$7E:0F80] $A7D3C1 AD 7E 0F LDA $0F7E [$7E:0F7E] $A7D3C4 65 12 ADC $12 [$7E:0012] $A7D3C6 8D 7E 0F STA $0F7E [$7E:0F7E] $A7D3C9 C9 40 00 CMP #$0040 $A7D3CC 10 07 BPL $07 [$D3D5] $A7D3CE A9 40 00 LDA #$0040 $A7D3D1 8D 7E 0F STA $0F7E [$7E:0F7E] $A7D3D4 60 RTS $A7D3D5 C9 D8 00 CMP #$00D8 $A7D3D8 30 06 BMI $06 [$D3E0] $A7D3E0 60 RTS $A7D3E1 A9 00 04 LDA #$0400 $A7D3E4 8D 2C 10 STA $102C [$7E:102C] $A7D3E7 8D 2E 10 STA $102E [$7E:102E] $A7D3EA 9C 30 10 STZ $1030 [$7E:1030] $A7D3ED A9 78 D6 LDA #$D678 $A7D3F0 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7D3F3 A9 68 01 LDA #$0168 $A7D3F6 9D B0 0F STA $0FB0,x[$7E:0FB0] $A7D3F9 60 RTS $A7D3FA 22 29 AE A0 JSL $A0AE29[$A0:AE29] $A7D3FE 0A ASL A $A7D3FF A8 TAY $A7D400 A9 01 00 LDA #$0001 $A7D403 8D D4 0F STA $0FD4 [$7E:0FD4] $A7D406 B9 0D D4 LDA $D40D,y[$A7:D413] $A7D409 8D D2 0F STA $0FD2 [$7E:0FD2] $A7D40C 60 RTS $A7D40F db AD, CC, B3, CC, B9, CC, BF, CC $A7D419 db C5, CC, CB, CC $A7D421 DA PHX $A7D422 BD B2 0F LDA $0FB2,x[$7E:0FB2] $A7D425 C9 78 D6 CMP #$D678 $A7D428 F0 0D BEQ $0D [$D437] $A7D42A C9 B9 D6 CMP #$D6B9 $A7D42D F0 08 BEQ $08 [$D437] $A7D42F A9 48 D9 LDA #$D948 $A7D432 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7D435 80 06 BRA $06 [$D43D] $A7D43D 9C EC 0F STZ $0FEC [$7E:0FEC] $A7D440 9C F2 0F STZ $0FF2 [$7E:0FF2] $A7D443 20 FA D3 JSR $D3FA [$A7:D3FA] $A7D446 A2 FE 01 LDX #$01FE $A7D449 A5 B5 LDA $B5 [$7E:00B5] $A7D44B 9F 00 91 7E STA $7E9100,x[$7E:92FE] $A7D44F CA DEX $A7D450 CA DEX $A7D451 10 F8 BPL $F8 [$D44B] $A7D453 AD 88 19 LDA $1988 [$7E:1988] $A7D456 09 00 40 ORA #$4000 $A7D459 8D 88 19 STA $1988 [$7E:1988] $A7D45C A9 01 00 LDA #$0001 $A7D45F 8D 76 10 STA $1076 [$7E:1076] $A7D462 FA PLX $A7D463 60 RTS $A7D464 DA PHX $A7D465 85 12 STA $12 [$7E:0012] $A7D467 AD B6 05 LDA $05B6 [$7E:05B6] $A7D46A 89 01 00 BIT #$0001 $A7D46D D0 15 BNE $15 [$D484] $A7D46F AD F2 0F LDA $0FF2 [$7E:0FF2] $A7D472 D0 10 BNE $10 [$D484] $A7D474 A5 12 LDA $12 [$7E:0012] $A7D476 8D EE 0F STA $0FEE [$7E:0FEE] $A7D479 20 9A DB JSR $DB9A [$A7:DB9A] $A7D47C 90 06 BCC $06 [$D484] $A7D47E A9 01 00 LDA #$0001 $A7D481 8D F2 0F STA $0FF2 [$7E:0FF2] $A7D484 FA PLX $A7D485 60 RTS $A7D486 DA PHX $A7D487 85 12 STA $12 [$7E:0012] $A7D489 AD B6 05 LDA $05B6 [$7E:05B6] $A7D48C 89 01 00 BIT #$0001 $A7D48F D0 15 BNE $15 [$D4A6] $A7D491 AD F2 0F LDA $0FF2 [$7E:0FF2] $A7D494 D0 10 BNE $10 [$D4A6] $A7D496 A5 12 LDA $12 [$7E:0012] $A7D498 8D EE 0F STA $0FEE [$7E:0FEE] $A7D49B 20 D5 DB JSR $DBD5 [$A7:DBD5] $A7D49E 90 06 BCC $06 [$D4A6] $A7D4A0 A9 01 00 LDA #$0001 $A7D4A3 8D F2 0F STA $0FF2 [$7E:0FF2] $A7D4A6 FA PLX $A7D4A7 60 RTS $A7D4A8 60 RTS $A7D4A9 DE B0 0F DEC $0FB0,x[$7E:0FB0] $A7D4AC F0 02 BEQ $02 [$D4B0] $A7D4AE 10 3D BPL $3D [$D4ED] $A7D4B0 AD A8 0F LDA $0FA8 [$7E:0FA8] $A7D4B3 A0 37 9C LDY #$9C37 $A7D4B6 22 27 80 86 JSL $868027[$86:8027] $A7D4BA A9 1D 00 LDA #$001D $A7D4BD 22 4D 91 80 JSL $80914D[$80:914D] $A7D4C1 A9 1E 00 LDA #$001E $A7D4C4 9D B0 0F STA $0FB0,x[$7E:0FB0] $A7D4C7 AD A8 0F LDA $0FA8 [$7E:0FA8] $A7D4CA 1A INC A $A7D4CB 8D A8 0F STA $0FA8 [$7E:0FA8] $A7D4CE C9 08 00 CMP #$0008 $A7D4D1 30 1A BMI $1A [$D4ED] $A7D4D3 9C A8 0F STZ $0FA8 [$7E:0FA8] $A7D4D6 9E 2A 10 STZ $102A,x[$7E:102A] $A7D4D9 A9 EE D4 LDA #$D4EE $A7D4DC 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7D4DF A9 1E 00 LDA #$001E $A7D4E2 9D B0 0F STA $0FB0,x[$7E:0FB0] $A7D4E5 22 D7 83 84 JSL $8483D7[$84:83D7] $A7D4ED 60 RTS $A7D4EE DE B0 0F DEC $0FB0,x[$7E:0FB0] $A7D4F1 F0 02 BEQ $02 [$D4F5] $A7D4F3 10 12 BPL $12 [$D507] $A7D4F5 A9 F0 00 LDA #$00F0 $A7D4F8 9D B0 0F STA $0FB0,x[$7E:0FB0] $A7D4FB A9 01 00 LDA #$0001 $A7D4FE 9D AA 0F STA $0FAA,x[$7E:0FAA] $A7D501 A9 08 D5 LDA #$D508 $A7D504 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7D507 60 RTS $A7D508 DE B0 0F DEC $0FB0,x[$7E:0FB0] $A7D50B F0 02 BEQ $02 [$D50F] $A7D50D 10 3A BPL $3A [$D549] $A7D50F 9E AA 0F STZ $0FAA,x[$7E:0FAA] $A7D512 AD 88 19 LDA $1988 [$7E:1988] $A7D515 09 00 40 ORA #$4000 $A7D518 8D 88 19 STA $1988 [$7E:1988] $A7D51B A9 4A D5 LDA #$D54A $A7D51E 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7D521 A9 01 80 LDA #$8001 $A7D524 8D 74 10 STA $1074 [$7E:1074] $A7D527 A9 78 00 LDA #$0078 $A7D52A 9D B0 0F STA $0FB0,x[$7E:0FB0] $A7D52D AD A3 CD LDA $CDA3 [$A7:CDA3] $A7D530 85 16 STA $16 [$7E:0016] $A7D532 A9 02 00 LDA #$0002 $A7D535 22 87 E4 88 JSL $88E487[$88:E487] $A7D539 AD 9D CD LDA $CD9D [$A7:CD9D] $A7D53C 8D 6E 10 STA $106E [$7E:106E] $A7D53F 9C F2 0F STZ $0FF2 [$7E:0FF2] $A7D542 A9 05 00 LDA #$0005 $A7D545 22 C1 8F 80 JSL $808FC1[$80:8FC1] $A7D549 60 RTS $A7D54A A9 0C 00 LDA #$000C $A7D54D 20 86 D4 JSR $D486 [$A7:D486] $A7D550 AD 9B CD LDA $CD9B [$A7:CD9B] $A7D553 85 12 STA $12 [$7E:0012] $A7D555 AD 9D CD LDA $CD9D [$A7:CD9D] $A7D558 85 14 STA $14 [$7E:0014] $A7D55A 20 27 CF JSR $CF27 [$A7:CF27] $A7D55D B0 0F BCS $0F [$D56E] $A7D55F DE B0 0F DEC $0FB0,x[$7E:0FB0] $A7D562 F0 02 BEQ $02 [$D566] $A7D564 10 1A BPL $1A [$D580] $A7D566 A9 01 00 LDA #$0001 $A7D569 8D 70 10 STA $1070 [$7E:1070] $A7D56C 80 12 BRA $12 [$D580] $A7D56E A9 96 D5 LDA #$D596 $A7D571 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7D574 A9 01 00 LDA #$0001 $A7D577 8D 74 10 STA $1074 [$7E:1074] $A7D57A A9 1E 00 LDA #$001E $A7D57D 9D B0 0F STA $0FB0,x[$7E:0FB0] $A7D580 60 RTS $A7D596 DE B0 0F DEC $0FB0,x[$7E:0FB0] $A7D599 F0 02 BEQ $02 [$D59D] $A7D59B 10 49 BPL $49 [$D5E6] $A7D59D 9C F4 0F STZ $0FF4 [$7E:0FF4] $A7D5A0 A9 E7 D5 LDA #$D5E7 $A7D5A3 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7D5A6 AD B6 05 LDA $05B6 [$7E:05B6] $A7D5A9 4A LSR A $A7D5AA 29 03 00 AND #$0003 $A7D5AD 0A ASL A $A7D5AE A8 TAY $A7D5AF B9 53 CD LDA $CD53,y[$A7:CD59] $A7D5B2 8D E8 0F STA $0FE8 [$7E:0FE8] $A7D5B5 22 11 81 80 JSL $808111[$80:8111] $A7D5B9 89 01 00 BIT #$0001 $A7D5BC D0 13 BNE $13 [$D5D1] $A7D5D1 9C AC 0F STZ $0FAC [$7E:0FAC] $A7D5D4 9C AA 0F STZ $0FAA [$7E:0FAA] $A7D5D7 9C AE 0F STZ $0FAE [$7E:0FAE] $A7D5DA A9 01 00 LDA #$0001 $A7D5DD 8D EC 0F STA $0FEC [$7E:0FEC] $A7D5E0 A9 15 02 LDA #$0215 $A7D5E3 8D A8 0F STA $0FA8 [$7E:0FA8] $A7D5E6 60 RTS $A7D5E7 20 F1 D0 JSR $D0F1 [$A7:D0F1] $A7D5EA 20 CA CF JSR $CFCA [$A7:CFCA] $A7D5ED CE E8 0F DEC $0FE8 [$7E:0FE8] $A7D5F0 F0 02 BEQ $02 [$D5F4] $A7D5F2 10 18 BPL $18 [$D60C] $A7D5F4 A9 A8 D4 LDA #$D4A8 $A7D5F7 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7D5FA A9 01 00 LDA #$0001 $A7D5FD 8D D4 0F STA $0FD4 [$7E:0FD4] $A7D600 A9 53 CC LDA #$CC53 $A7D603 8D D2 0F STA $0FD2 [$7E:0FD2] $A7D606 9C B6 0F STZ $0FB6 [$7E:0FB6] $A7D609 20 70 CF JSR $CF70 [$A7:CF70] $A7D60C 60 RTS $A7D60D DE B0 0F DEC $0FB0,x[$7E:0FB0] $A7D610 F0 02 BEQ $02 [$D614] $A7D612 10 44 BPL $44 [$D658] $A7D614 9E 2A 10 STZ $102A,x[$7E:102A] $A7D617 AD 28 10 LDA $1028 [$7E:1028] $A7D61A F0 11 BEQ $11 [$D62D] $A7D61C 9C 28 10 STZ $1028 [$7E:1028] $A7D61F A9 3C 00 LDA #$003C $A7D622 9D B0 0F STA $0FB0,x[$7E:0FB0] $A7D625 A9 5C D6 LDA #$D65C $A7D628 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7D62B 80 2B BRA $2B [$D658] $A7D62D A9 A8 D4 LDA #$D4A8 $A7D630 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7D633 A9 01 00 LDA #$0001 $A7D636 8D 94 0F STA $0F94 [$7E:0F94] $A7D639 8D D4 0F STA $0FD4 [$7E:0FD4] $A7D63C A9 41 CC LDA #$CC41 $A7D63F 8D 92 0F STA $0F92 [$7E:0F92] $A7D642 A9 81 CC LDA #$CC81 $A7D645 8D D2 0F STA $0FD2 [$7E:0FD2] $A7D648 AD 86 0F LDA $0F86 [$7E:0F86] $A7D64B 09 00 04 ORA #$0400 $A7D64E 8D 86 0F STA $0F86 [$7E:0F86] $A7D651 A9 01 00 LDA #$0001 $A7D654 8D B6 0F STA $0FB6 [$7E:0FB6] $A7D657 60 RTS $A7D658 20 FA D3 JSR $D3FA [$A7:D3FA] $A7D65B 60 RTS $A7D65C 20 FA D3 JSR $D3FA [$A7:D3FA] $A7D65F AD 88 19 LDA $1988 [$7E:1988] $A7D662 29 FF BF AND #$BFFF $A7D665 8D 88 19 STA $1988 [$7E:1988] $A7D668 20 E1 D3 JSR $D3E1 [$A7:D3E1] $A7D66B A9 01 00 LDA #$0001 $A7D66E 8D 94 0F STA $0F94 [$7E:0F94] $A7D671 A9 47 CC LDA #$CC47 $A7D674 8D 92 0F STA $0F92 [$7E:0F92] $A7D677 60 RTS $A7D678 20 FA D3 JSR $D3FA [$A7:D3FA] $A7D67B 20 D1 D2 JSR $D2D1 [$A7:D2D1] $A7D67E DE B0 0F DEC $0FB0,x[$7E:0FB0] $A7D681 F0 02 BEQ $02 [$D685] $A7D683 10 33 BPL $33 [$D6B8] $A7D685 A9 B9 D6 LDA #$D6B9 $A7D688 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7D68B AD 88 19 LDA $1988 [$7E:1988] $A7D68E 09 00 40 ORA #$4000 $A7D691 8D 88 19 STA $1988 [$7E:1988] $A7D694 A9 01 00 LDA #$0001 $A7D697 8D 94 0F STA $0F94 [$7E:0F94] $A7D69A 8D D4 0F STA $0FD4 [$7E:0FD4] $A7D69D A9 41 CC LDA #$CC41 $A7D6A0 8D 92 0F STA $0F92 [$7E:0F92] $A7D6A3 A9 91 CC LDA #$CC91 $A7D6A6 8D D2 0F STA $0FD2 [$7E:0FD2] $A7D6A9 AD 86 0F LDA $0F86 [$7E:0F86] $A7D6AC 09 00 04 ORA #$0400 $A7D6AF 8D 86 0F STA $0F86 [$7E:0F86] $A7D6B2 9C F2 0F STZ $0FF2 [$7E:0FF2] $A7D6B5 9E 2A 10 STZ $102A,x[$7E:102A] $A7D6B8 60 RTS $A7D6B9 20 D1 D2 JSR $D2D1 [$A7:D2D1] $A7D6BC A9 0C 00 LDA #$000C $A7D6BF 20 64 D4 JSR $D464 [$A7:D464] $A7D6C2 AD F2 0F LDA $0FF2 [$7E:0FF2] $A7D6C5 F0 0C BEQ $0C [$D6D3] $A7D6C7 A9 D4 D6 LDA #$D6D4 $A7D6CA 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7D6CD A9 78 00 LDA #$0078 $A7D6D0 9D B0 0F STA $0FB0,x[$7E:0FB0] $A7D6D3 60 RTS $A7D6D4 DE B0 0F DEC $0FB0,x[$7E:0FB0] $A7D6D7 F0 02 BEQ $02 [$D6DB] $A7D6D9 10 06 BPL $06 [$D6E1] $A7D6DB A9 E2 D6 LDA #$D6E2 $A7D6DE 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7D6E1 60 RTS $A7D6E2 22 11 81 80 JSL $808111[$80:8111] $A7D6E6 89 01 00 BIT #$0001 $A7D6E9 F0 14 BEQ $14 [$D6FF] $A7D6EB A9 88 00 LDA #$0088 $A7D6EE 8D A8 0F STA $0FA8 [$7E:0FA8] $A7D6F1 A9 D0 00 LDA #$00D0 $A7D6F4 8D 7A 0F STA $0F7A [$7E:0F7A] $A7D6F7 A9 60 00 LDA #$0060 $A7D6FA 8D 7E 0F STA $0F7E [$7E:0F7E] $A7D6FD 80 12 BRA $12 [$D711] $A7D6FF A9 8F 01 LDA #$018F $A7D702 8D A8 0F STA $0FA8 [$7E:0FA8] $A7D705 A9 30 00 LDA #$0030 $A7D708 8D 7A 0F STA $0F7A [$7E:0F7A] $A7D70B A9 60 00 LDA #$0060 $A7D70E 8D 7E 0F STA $0F7E [$7E:0F7E] $A7D711 9C EC 0F STZ $0FEC [$7E:0FEC] $A7D714 A9 01 00 LDA #$0001 $A7D717 8D AC 0F STA $0FAC [$7E:0FAC] $A7D71A 9C AA 0F STZ $0FAA [$7E:0FAA] $A7D71D 9C B6 0F STZ $0FB6 [$7E:0FB6] $A7D720 20 76 D0 JSR $D076 [$A7:D076] $A7D723 A9 2D D7 LDA #$D72D $A7D726 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7D729 9C F2 0F STZ $0FF2 [$7E:0FF2] $A7D72C 60 RTS $A7D72D A9 0C 00 LDA #$000C $A7D730 20 86 D4 JSR $D486 [$A7:D486] $A7D733 AD F2 0F LDA $0FF2 [$7E:0FF2] $A7D736 F0 06 BEQ $06 [$D73E] $A7D738 A9 E7 D5 LDA #$D5E7 $A7D73B 8D B2 0F STA $0FB2 [$7E:0FB2] $A7D73E 60 RTS $A7D73F 9C F2 0F STZ $0FF2 [$7E:0FF2] $A7D742 AD 88 19 LDA $1988 [$7E:1988] $A7D745 29 FF BF AND #$BFFF $A7D748 8D 88 19 STA $1988 [$7E:1988] $A7D74B A9 01 00 LDA #$0001 $A7D74E 8D 94 0F STA $0F94 [$7E:0F94] $A7D751 8D D4 0F STA $0FD4 [$7E:0FD4] $A7D754 A9 47 CC LDA #$CC47 $A7D757 8D 92 0F STA $0F92 [$7E:0F92] $A7D75A A9 9D CC LDA #$CC9D $A7D75D 8D D2 0F STA $0FD2 [$7E:0FD2] $A7D760 A9 67 D7 LDA #$D767 $A7D763 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7D766 60 RTS $A7D767 A9 01 00 LDA #$0001 $A7D76A 20 86 D4 JSR $D486 [$A7:D486] $A7D76D AD F2 0F LDA $0FF2 [$7E:0FF2] $A7D770 F0 15 BEQ $15 [$D787] $A7D772 AD 86 0F LDA $0F86 [$7E:0F86] $A7D775 29 FF FB AND #$FBFF $A7D778 8D 86 0F STA $0F86 [$7E:0F86] $A7D77B A9 88 D7 LDA #$D788 $A7D77E 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7D781 A9 5A 00 LDA #$005A $A7D784 8D B0 0F STA $0FB0 [$7E:0FB0] $A7D787 60 RTS $A7D788 DE B0 0F DEC $0FB0,x[$7E:0FB0] $A7D78B F0 02 BEQ $02 [$D78F] $A7D78D 10 45 BPL $45 [$D7D4] $A7D78F 9E 2A 10 STZ $102A,x[$7E:102A] $A7D792 AD 28 10 LDA $1028 [$7E:1028] $A7D795 F0 0D BEQ $0D [$D7A4] $A7D797 9C 28 10 STZ $1028 [$7E:1028] $A7D79A A9 01 00 LDA #$0001 $A7D79D 8D B6 0F STA $0FB6 [$7E:0FB6] $A7D7A0 20 E1 D3 JSR $D3E1 [$A7:D3E1] $A7D7A3 60 RTS $A7D7A4 A9 D5 D7 LDA #$D7D5 $A7D7A7 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7D7AA 9C F2 0F STZ $0FF2 [$7E:0FF2] $A7D7AD A9 01 00 LDA #$0001 $A7D7B0 8D 94 0F STA $0F94 [$7E:0F94] $A7D7B3 8D D4 0F STA $0FD4 [$7E:0FD4] $A7D7B6 A9 41 CC LDA #$CC41 $A7D7B9 8D 92 0F STA $0F92 [$7E:0F92] $A7D7BC A9 91 CC LDA #$CC91 $A7D7BF 8D D2 0F STA $0FD2 [$7E:0FD2] $A7D7C2 AD 86 0F LDA $0F86 [$7E:0F86] $A7D7C5 09 00 04 ORA #$0400 $A7D7C8 8D 86 0F STA $0F86 [$7E:0F86] $A7D7CB AD 88 19 LDA $1988 [$7E:1988] $A7D7CE 09 00 40 ORA #$4000 $A7D7D1 8D 88 19 STA $1988 [$7E:1988] $A7D7D4 60 RTS $A7D7D5 A9 0C 00 LDA #$000C $A7D7D8 20 64 D4 JSR $D464 [$A7:D464] $A7D7DB AD F2 0F LDA $0FF2 [$7E:0FF2] $A7D7DE D0 01 BNE $01 [$D7E1] $A7D7E0 60 RTS $A7D7E1 A9 F7 D7 LDA #$D7F7 $A7D7E4 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7D7E7 22 11 81 80 JSL $808111[$80:8111] $A7D7EB 29 07 00 AND #$0007 $A7D7EE 0A ASL A $A7D7EF A8 TAY $A7D7F0 B9 63 CD LDA $CD63,y[$A7:CD6B] $A7D7F3 9D B0 0F STA $0FB0,x[$7E:0FB0] $A7D7F6 60 RTS $A7D7F7 DE B0 0F DEC $0FB0,x[$7E:0FB0] $A7D7FA F0 02 BEQ $02 [$D7FE] $A7D7FC 10 2B BPL $2B [$D829] $A7D7FE 22 11 81 80 JSL $808111[$80:8111] $A7D802 29 07 00 AND #$0007 $A7D805 48 PHA $A7D806 0A ASL A $A7D807 0A ASL A $A7D808 0A ASL A $A7D809 A8 TAY $A7D80A B9 AD CD LDA $CDAD,y[$A7:CDE5] $A7D80D 8D A8 0F STA $0FA8 [$7E:0FA8] $A7D810 B9 AF CD LDA $CDAF,y[$A7:CDE7] $A7D813 8D 7A 0F STA $0F7A [$7E:0F7A] $A7D816 B9 B1 CD LDA $CDB1,y[$A7:CDE9] $A7D819 8D 7E 0F STA $0F7E [$7E:0F7E] $A7D81C 9C EC 0F STZ $0FEC [$7E:0FEC] $A7D81F A9 3F D7 LDA #$D73F $A7D822 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7D825 68 PLA $A7D826 20 8B CF JSR $CF8B [$A7:CF8B] $A7D829 60 RTS $A7D82A A9 0C 00 LDA #$000C $A7D82D 20 64 D4 JSR $D464 [$A7:D464] $A7D830 20 F1 D0 JSR $D0F1 [$A7:D0F1] $A7D833 20 CA CF JSR $CFCA [$A7:CFCA] $A7D836 CE E8 0F DEC $0FE8 [$7E:0FE8] $A7D839 F0 02 BEQ $02 [$D83D] $A7D83B 10 1E BPL $1E [$D85B] $A7D83D 9C 28 10 STZ $1028 [$7E:1028] $A7D840 A9 3F D7 LDA #$D73F $A7D843 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7D846 AD 7A 0F LDA $0F7A [$7E:0F7A] $A7D849 C9 80 00 CMP #$0080 $A7D84C 30 07 BMI $07 [$D855] $A7D84E A9 02 00 LDA #$0002 $A7D851 20 8B CF JSR $CF8B [$A7:CF8B] $A7D854 60 RTS $A7D85B 60 RTS $A7D948 EA NOP $A7D949 AD EC 0F LDA $0FEC [$7E:0FEC] $A7D94C 89 01 00 BIT #$0001 $A7D94F D0 0D BNE $0D [$D95E] $A7D951 A9 0C 00 LDA #$000C $A7D954 20 64 D4 JSR $D464 [$A7:D464] $A7D957 AD F2 0F LDA $0FF2 [$7E:0FF2] $A7D95A D0 0D BNE $0D [$D969] $A7D95C 80 2C BRA $2C [$D98A] $A7D95E A9 0C 00 LDA #$000C $A7D961 20 86 D4 JSR $D486 [$A7:D486] $A7D964 AD F2 0F LDA $0FF2 [$7E:0FF2] $A7D967 F0 21 BEQ $21 [$D98A] $A7D969 9C F2 0F STZ $0FF2 [$7E:0FF2] $A7D96C AD EC 0F LDA $0FEC [$7E:0FEC] $A7D96F 1A INC A $A7D970 8D EC 0F STA $0FEC [$7E:0FEC] $A7D973 C9 0A 00 CMP #$000A $A7D976 30 12 BMI $12 [$D98A] $A7D978 A9 8B D9 LDA #$D98B $A7D97B 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7D97E A9 0F 00 LDA #$000F $A7D981 9D B0 0F STA $0FB0,x[$7E:0FB0] $A7D984 9C 32 10 STZ $1032 [$7E:1032] $A7D987 9C A8 0F STZ $0FA8 [$7E:0FA8] $A7D98A 60 RTS $A7D98B DE B0 0F DEC $0FB0,x[$7E:0FB0] $A7D98E F0 03 BEQ $03 [$D993] $A7D990 30 01 BMI $01 [$D993] $A7D992 60 RTS $A7D993 AD 32 10 LDA $1032 [$7E:1032] $A7D996 0A ASL A $A7D997 0A ASL A $A7D998 A8 TAY $A7D999 B9 1D DA LDA $DA1D,y[$A7:DA1D] $A7D99C 29 FF 00 AND #$00FF $A7D99F 89 80 00 BIT #$0080 $A7D9A2 F0 03 BEQ $03 [$D9A7] $A7D9A4 09 00 FF ORA #$FF00 $A7D9A7 85 12 STA $12 [$7E:0012] $A7D9A9 AD 7A 0F LDA $0F7A [$7E:0F7A] $A7D9AC 18 CLC $A7D9AD 65 12 ADC $12 [$7E:0012] $A7D9AF 85 12 STA $12 [$7E:0012] $A7D9B1 B9 1E DA LDA $DA1E,y[$A7:DA1E] $A7D9B4 29 FF 00 AND #$00FF $A7D9B7 89 80 00 BIT #$0080 $A7D9BA F0 03 BEQ $03 [$D9BF] $A7D9BC 09 00 FF ORA #$FF00 $A7D9BF 85 14 STA $14 [$7E:0014] $A7D9C1 AD 7E 0F LDA $0F7E [$7E:0F7E] $A7D9C4 18 CLC $A7D9C5 65 14 ADC $14 [$7E:0014] $A7D9C7 85 14 STA $14 [$7E:0014] $A7D9C9 5A PHY $A7D9CA B9 1F DA LDA $DA1F,y[$A7:DA1F] $A7D9CD 29 FF 00 AND #$00FF $A7D9D0 48 PHA $A7D9D1 A0 09 E5 LDY #$E509 $A7D9D4 22 97 80 86 JSL $868097[$86:8097] $A7D9D8 68 PLA $A7D9D9 C9 1D 00 CMP #$001D $A7D9DC D0 09 BNE $09 [$D9E7] $A7D9DE A9 24 00 LDA #$0024 $A7D9E1 22 CB 90 80 JSL $8090CB[$80:90CB] $A7D9E5 80 07 BRA $07 [$D9EE] $A7D9E7 A9 2B 00 LDA #$002B $A7D9EA 22 CB 90 80 JSL $8090CB[$80:90CB] $A7D9EE 7A PLY $A7D9EF B9 20 DA LDA $DA20,y[$A7:DA20] $A7D9F2 29 FF 00 AND #$00FF $A7D9F5 9D B0 0F STA $0FB0,x[$7E:0FB0] $A7D9F8 AD 32 10 LDA $1032 [$7E:1032] $A7D9FB 1A INC A $A7D9FC 8D 32 10 STA $1032 [$7E:1032] $A7D9FF C9 0D 00 CMP #$000D $A7DA02 30 18 BMI $18 [$DA1C] $A7DA04 A9 05 00 LDA #$0005 $A7DA07 8D 32 10 STA $1032 [$7E:1032] $A7DA0A AD A8 0F LDA $0FA8 [$7E:0FA8] $A7DA0D 1A INC A $A7DA0E 8D A8 0F STA $0FA8 [$7E:0FA8] $A7DA11 C9 03 00 CMP #$0003 $A7DA14 30 06 BMI $06 [$DA1C] $A7DA16 A9 51 DA LDA #$DA51 $A7DA19 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7DA1C 60 RTS $A7DA1D db 00, 00, 1D, 10, 20, E0, 1D, 10, E0, 20, 1D, 10, E0, E0, 1D, 10, 20, 20, 1D, 20, E0, F8, 1D, 08, 00, 00, 03, 08, 20, F8, 1D, 08, 00, 00, 03, 08, 00, 18, 03, 08, 00, 30, 1D, 08, E8, 18, 03, 08, 18, 18, 03, 08 $A7DA51 AD A3 CD LDA $CDA3 [$A7:CDA3] $A7DA54 85 16 STA $16 [$7E:0016] $A7DA56 A9 01 00 LDA #$0001 $A7DA59 22 87 E4 88 JSL $88E487[$88:E487] $A7DA5D 9C 6E 10 STZ $106E [$7E:106E] $A7DA60 A9 86 DA LDA #$DA86 $A7DA63 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7DA66 A9 02 00 LDA #$0002 $A7DA69 8D EC 0F STA $0FEC [$7E:0FEC] $A7DA6C AD 86 0F LDA $0F86 [$7E:0F86] $A7DA6F 29 FF DF AND #$DFFF $A7DA72 09 00 05 ORA #$0500 $A7DA75 8D C6 0F STA $0FC6 [$7E:0FC6] $A7DA78 8D 06 10 STA $1006 [$7E:1006] $A7DA7B 8D 46 10 STA $1046 [$7E:1046] $A7DA7E A9 7E 00 LDA #$007E $A7DA81 22 CB 90 80 JSL $8090CB[$80:90CB] $A7DA85 60 RTS $A7DA86 AD 9F CD LDA $CD9F [$A7:CD9F] $A7DA89 85 12 STA $12 [$7E:0012] $A7DA8B AD A1 CD LDA $CDA1 [$A7:CDA1] $A7DA8E 85 14 STA $14 [$7E:0014] $A7DA90 20 27 CF JSR $CF27 [$A7:CF27] $A7DA93 AD EC 0F LDA $0FEC [$7E:0FEC] $A7DA96 C9 FF FF CMP #$FFFF $A7DA99 F0 2A BEQ $2A [$DAC5] $A7DA9B AD B6 05 LDA $05B6 [$7E:05B6] $A7DA9E 89 0F 00 BIT #$000F $A7DAA1 D0 33 BNE $33 [$DAD6] $A7DAA3 E2 20 SEP #$20 $A7DAA5 AD EC 0F LDA $0FEC [$7E:0FEC] $A7DAA8 C9 F2 CMP #$F2 $A7DAAA F0 0C BEQ $0C [$DAB8] $A7DAAC 18 CLC $A7DAAD 69 10 ADC #$10 $A7DAAF 8D EC 0F STA $0FEC [$7E:0FEC] $A7DAB2 85 57 STA $57 [$7E:0057] $A7DAB4 C2 20 REP #$20 $A7DAB6 80 1E BRA $1E [$DAD6] $A7DAB8 C2 20 REP #$20 $A7DABA A9 FF FF LDA #$FFFF $A7DABD 8D EC 0F STA $0FEC [$7E:0FEC] $A7DAC0 9C F2 0F STZ $0FF2 [$7E:0FF2] $A7DAC3 80 11 BRA $11 [$DAD6] $A7DAC5 A9 0C 00 LDA #$000C $A7DAC8 20 64 D4 JSR $D464 [$A7:D464] $A7DACB AD F2 0F LDA $0FF2 [$7E:0FF2] $A7DACE F0 06 BEQ $06 [$DAD6] $A7DAD0 A9 D7 DA LDA #$DAD7 $A7DAD3 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7DAD6 60 RTS $A7DAD7 E2 20 SEP #$20 $A7DAD9 64 57 STZ $57 [$7E:0057] $A7DADB C2 20 REP #$20 $A7DADD 9C F4 0F STZ $0FF4 [$7E:0FF4] $A7DAE0 AD 88 19 LDA $1988 [$7E:1988] $A7DAE3 29 FF BF AND #$BFFF $A7DAE6 8D 88 19 STA $1988 [$7E:1988] $A7DAE9 A9 FF FF LDA #$FFFF $A7DAEC 8D 74 10 STA $1074 [$7E:1074] $A7DAEF A9 3D DB LDA #$DB3D $A7DAF2 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7DAF5 A9 3C 00 LDA #$003C $A7DAF8 9D B0 0F STA $0FB0,x[$7E:0FB0] $A7DAFB 9C F2 0F STZ $0FF2 [$7E:0FF2] $A7DAFE A9 80 01 LDA #$0180 $A7DB01 8D 7A 0F STA $0F7A [$7E:0F7A] $A7DB04 A9 80 00 LDA #$0080 $A7DB07 8D 7E 0F STA $0F7E [$7E:0F7E] $A7DB0A A2 FE 03 LDX #$03FE $A7DB0D A9 38 03 LDA #$0338 $A7DB10 9F 00 20 7E STA $7E2000,x[$7E:23FE] $A7DB14 CA DEX $A7DB15 CA DEX $A7DB16 10 F8 BPL $F8 [$DB10] $A7DB18 AE 30 03 LDX $0330 [$7E:0330] $A7DB1B A9 00 04 LDA #$0400 $A7DB1E 95 D0 STA $D0,x [$7E:00D0] $A7DB20 E8 INX $A7DB21 E8 INX $A7DB22 A9 00 20 LDA #$2000 $A7DB25 95 D0 STA $D0,x [$7E:00D2] $A7DB27 E8 INX $A7DB28 E8 INX $A7DB29 E2 20 SEP #$20 $A7DB2B A9 7E LDA #$7E $A7DB2D 95 D0 STA $D0,x [$7E:00D4] $A7DB2F C2 20 REP #$20 $A7DB31 E8 INX $A7DB32 A9 00 48 LDA #$4800 $A7DB35 95 D0 STA $D0,x [$7E:00D5] $A7DB37 E8 INX $A7DB38 E8 INX $A7DB39 8E 30 03 STX $0330 [$7E:0330] $A7DB3C 60 RTS $A7DB3D DA PHX $A7DB3E BD B0 0F LDA $0FB0,x[$7E:0FB0] $A7DB41 F0 05 BEQ $05 [$DB48] $A7DB43 DE B0 0F DEC $0FB0,x[$7E:0FB0] $A7DB46 FA PLX $A7DB47 60 RTS $A7DB48 AD B6 05 LDA $05B6 [$7E:05B6] $A7DB4B 89 03 00 BIT #$0003 $A7DB4E D0 48 BNE $48 [$DB98] $A7DB50 A9 0C 00 LDA #$000C $A7DB53 8D EE 0F STA $0FEE [$7E:0FEE] $A7DB56 20 5A DC JSR $DC5A [$A7:DC5A] $A7DB59 90 3D BCC $3D [$DB98] $A7DB5B E2 20 SEP #$20 $A7DB5D A5 69 LDA $69 [$7E:0069] $A7DB5F 09 02 ORA #$02 $A7DB61 85 69 STA $69 [$7E:0069] $A7DB63 C2 20 REP #$20 $A7DB65 22 0B BA A0 JSL $A0BA0B[$A0:BA0B] $A7DB69 AD 86 0F LDA $0F86 [$7E:0F86] $A7DB6C 09 00 02 ORA #$0200 $A7DB6F 8D 86 0F STA $0F86 [$7E:0F86] $A7DB72 8D C6 0F STA $0FC6 [$7E:0FC6] $A7DB75 8D 06 10 STA $1006 [$7E:1006] $A7DB78 8D 46 10 STA $1046 [$7E:1046] $A7DB7B AE 9F 07 LDX $079F [$7E:079F] $A7DB7E BF 28 D8 7E LDA $7ED828,x[$7E:D82B] $A7DB82 09 01 00 ORA #$0001 $A7DB85 9F 28 D8 7E STA $7ED828,x[$7E:D82B] $A7DB89 22 D7 83 84 JSL $8483D7[$84:83D7] $A7DB91 A9 03 00 LDA #$0003 $A7DB94 22 C1 8F 80 JSL $808FC1[$80:8FC1] $A7DB98 FA PLX $A7DB99 60 RTS $A7DB9A C2 30 REP #$30 $A7DB9C AD EE 0F LDA $0FEE [$7E:0FEE] $A7DB9F 1A INC A $A7DBA0 CD F0 0F CMP $0FF0 [$7E:0FF0] $A7DBA3 B0 08 BCS $08 [$DBAD] $A7DBA5 A9 00 00 LDA #$0000 $A7DBA8 8D F0 0F STA $0FF0 [$7E:0FF0] $A7DBAB 38 SEC $A7DBAC 60 RTS $A7DBAD A2 00 00 LDX #$0000 $A7DBB0 DA PHX $A7DBB1 BD 41 CA LDA $CA41,x[$A7:CA41] $A7DBB4 A8 TAY $A7DBB5 BF E0 C0 7E LDA $7EC0E0,x[$7E:C0E0] $A7DBB9 AA TAX $A7DBBA AD F0 0F LDA $0FF0 [$7E:0FF0] $A7DBBD 20 95 DC JSR $DC95 [$A7:DC95] $A7DBC0 FA PLX $A7DBC1 9F E0 C0 7E STA $7EC0E0,x[$7E:C0E0] $A7DBC5 E8 INX $A7DBC6 E8 INX $A7DBC7 E0 20 00 CPX #$0020 $A7DBCA 90 E4 BCC $E4 [$DBB0] $A7DBCC AD F0 0F LDA $0FF0 [$7E:0FF0] $A7DBCF 1A INC A $A7DBD0 8D F0 0F STA $0FF0 [$7E:0FF0] $A7DBD3 18 CLC $A7DBD4 60 RTS $A7DBD5 C2 30 REP #$30 $A7DBD7 AD EE 0F LDA $0FEE [$7E:0FEE] $A7DBDA 1A INC A $A7DBDB CD F0 0F CMP $0FF0 [$7E:0FF0] $A7DBDE B0 08 BCS $08 [$DBE8] $A7DBE0 A9 00 00 LDA #$0000 $A7DBE3 8D F0 0F STA $0FF0 [$7E:0FF0] $A7DBE6 38 SEC $A7DBE7 60 RTS $A7DBE8 A2 00 00 LDX #$0000 $A7DBEB DA PHX $A7DBEC 20 0F DC JSR $DC0F [$A7:DC0F] $A7DBEF BF E0 C0 7E LDA $7EC0E0,x[$7E:C0E0] $A7DBF3 AA TAX $A7DBF4 AD F0 0F LDA $0FF0 [$7E:0FF0] $A7DBF7 20 95 DC JSR $DC95 [$A7:DC95] $A7DBFA FA PLX $A7DBFB 9F E0 C0 7E STA $7EC0E0,x[$7E:C0E0] $A7DBFF E8 INX $A7DC00 E8 INX $A7DC01 E0 20 00 CPX #$0020 $A7DC04 90 E5 BCC $E5 [$DBEB] $A7DC06 AD F0 0F LDA $0FF0 [$7E:0FF0] $A7DC09 1A INC A $A7DC0A 8D F0 0F STA $0FF0 [$7E:0FF0] $A7DC0D 18 CLC $A7DC0E 60 RTS $A7DC0F 86 18 STX $18 [$7E:0018] $A7DC11 AE 54 0E LDX $0E54 [$7E:0E54] $A7DC14 A9 C4 09 LDA #$09C4 $A7DC17 4A LSR A $A7DC18 4A LSR A $A7DC19 4A LSR A $A7DC1A 85 12 STA $12 [$7E:0012] $A7DC1C 85 14 STA $14 [$7E:0014] $A7DC1E 64 16 STZ $16 [$7E:0016] $A7DC20 A5 14 LDA $14 [$7E:0014] $A7DC22 DD 8C 0F CMP $0F8C,x[$7E:0F8C] $A7DC25 10 11 BPL $11 [$DC38] $A7DC27 A5 14 LDA $14 [$7E:0014] $A7DC29 18 CLC $A7DC2A 65 12 ADC $12 [$7E:0012] $A7DC2C 85 14 STA $14 [$7E:0014] $A7DC2E A5 16 LDA $16 [$7E:0016] $A7DC30 1A INC A $A7DC31 85 16 STA $16 [$7E:0016] $A7DC33 C9 07 00 CMP #$0007 $A7DC36 30 E8 BMI $E8 [$DC20] $A7DC38 A5 16 LDA $16 [$7E:0016] $A7DC3A 0A ASL A $A7DC3B A8 TAY $A7DC3C B9 4A DC LDA $DC4A,y[$A7:DC58] $A7DC3F 18 CLC $A7DC40 65 18 ADC $18 [$7E:0018] $A7DC42 A8 TAY $A7DC43 B9 00 00 LDA $0000,y[$A7:CC21] $A7DC46 A8 TAY $A7DC47 A6 18 LDX $18 [$7E:0018] $A7DC49 60 RTS $A7DC4A db 41, CB, 61, CB, 81, CB, A1, CB, C1, CB, E1, CB, 01, CC, 21, CC $A7DC5A C2 30 REP #$30 $A7DC5C AD EE 0F LDA $0FEE [$7E:0FEE] $A7DC5F 1A INC A $A7DC60 CD F0 0F CMP $0FF0 [$7E:0FF0] $A7DC63 B0 08 BCS $08 [$DC6D] $A7DC65 A9 00 00 LDA #$0000 $A7DC68 8D F0 0F STA $0FF0 [$7E:0FF0] $A7DC6B 38 SEC $A7DC6C 60 RTS $A7DC6D A2 00 00 LDX #$0000 $A7DC70 DA PHX $A7DC71 BD 61 CA LDA $CA61,x[$A7:CA61] $A7DC74 A8 TAY $A7DC75 BF 00 C0 7E LDA $7EC000,x[$7E:C000] $A7DC79 AA TAX $A7DC7A AD F0 0F LDA $0FF0 [$7E:0FF0] $A7DC7D 20 95 DC JSR $DC95 [$A7:DC95] $A7DC80 FA PLX $A7DC81 9F 00 C0 7E STA $7EC000,x[$7E:C000] $A7DC85 E8 INX $A7DC86 E8 INX $A7DC87 E0 E0 00 CPX #$00E0 $A7DC8A 90 E4 BCC $E4 [$DC70] $A7DC8C AD F0 0F LDA $0FF0 [$7E:0FF0] $A7DC8F 1A INC A $A7DC90 8D F0 0F STA $0FF0 [$7E:0FF0] $A7DC93 18 CLC $A7DC94 60 RTS $A7DC95 48 PHA $A7DC96 48 PHA $A7DC97 DA PHX $A7DC98 5A PHY $A7DC99 A3 01 LDA $01,s [$7E:1FE0] $A7DC9B 29 1F 00 AND #$001F $A7DC9E A8 TAY $A7DC9F A3 03 LDA $03,s [$7E:1FE2] $A7DCA1 29 1F 00 AND #$001F $A7DCA4 AA TAX $A7DCA5 A3 05 LDA $05,s [$7E:1FE4] $A7DCA7 20 F1 DC JSR $DCF1 [$A7:DCF1] $A7DCAA 83 07 STA $07,s [$7E:1FE6] $A7DCAC A3 01 LDA $01,s [$7E:1FE0] $A7DCAE 0A ASL A $A7DCAF 0A ASL A $A7DCB0 0A ASL A $A7DCB1 EB XBA $A7DCB2 29 1F 00 AND #$001F $A7DCB5 A8 TAY $A7DCB6 A3 03 LDA $03,s [$7E:1FE2] $A7DCB8 0A ASL A $A7DCB9 0A ASL A $A7DCBA 0A ASL A $A7DCBB EB XBA $A7DCBC 29 1F 00 AND #$001F $A7DCBF AA TAX $A7DCC0 A3 05 LDA $05,s [$7E:1FE4] $A7DCC2 20 F1 DC JSR $DCF1 [$A7:DCF1] $A7DCC5 0A ASL A $A7DCC6 0A ASL A $A7DCC7 0A ASL A $A7DCC8 0A ASL A $A7DCC9 0A ASL A $A7DCCA 03 07 ORA $07,s [$7E:1FE6] $A7DCCC 83 07 STA $07,s [$7E:1FE6] $A7DCCE A3 01 LDA $01,s [$7E:1FE0] $A7DCD0 4A LSR A $A7DCD1 4A LSR A $A7DCD2 EB XBA $A7DCD3 29 1F 00 AND #$001F $A7DCD6 A8 TAY $A7DCD7 A3 03 LDA $03,s [$7E:1FE2] $A7DCD9 4A LSR A $A7DCDA 4A LSR A $A7DCDB EB XBA $A7DCDC 29 1F 00 AND #$001F $A7DCDF AA TAX $A7DCE0 A3 05 LDA $05,s [$7E:1FE4] $A7DCE2 20 F1 DC JSR $DCF1 [$A7:DCF1] $A7DCE5 0A ASL A $A7DCE6 0A ASL A $A7DCE7 EB XBA $A7DCE8 03 07 ORA $07,s [$7E:1FE6] $A7DCEA 83 07 STA $07,s [$7E:1FE6] $A7DCEC 7A PLY $A7DCED FA PLX $A7DCEE 68 PLA $A7DCEF 68 PLA $A7DCF0 60 RTS $A7DCF1 C9 00 00 CMP #$0000 $A7DCF4 D0 02 BNE $02 [$DCF8] $A7DCF6 8A TXA $A7DCF7 60 RTS $A7DCF8 3A DEC A $A7DCF9 CD EE 0F CMP $0FEE [$7E:0FEE] $A7DCFC D0 02 BNE $02 [$DD00] $A7DCFE 98 TYA $A7DCFF 60 RTS $A7DD00 DA PHX $A7DD01 1A INC A $A7DD02 85 14 STA $14 [$7E:0014] $A7DD04 98 TYA $A7DD05 38 SEC $A7DD06 E3 01 SBC $01,s [$7E:1FDC] $A7DD08 85 12 STA $12 [$7E:0012] $A7DD0A 10 04 BPL $04 [$DD10] $A7DD0C 49 FF FF EOR #$FFFF $A7DD0F 1A INC A $A7DD10 E2 21 SEP #$21 $A7DD12 9C 04 42 STZ $4204 [$7E:4204] $A7DD15 8D 05 42 STA $4205 [$7E:4205] $A7DD18 AD EE 0F LDA $0FEE [$7E:0FEE] $A7DD1B E5 14 SBC $14 [$7E:0014] $A7DD1D 1A INC A $A7DD1E 8D 06 42 STA $4206 [$7E:4206] $A7DD21 C2 20 REP #$20 $A7DD23 EA NOP $A7DD24 EA NOP $A7DD25 EA NOP $A7DD26 EA NOP $A7DD27 EA NOP $A7DD28 AD 14 42 LDA $4214 [$7E:4214] $A7DD2B 24 12 BIT $12 [$7E:0012] $A7DD2D 10 04 BPL $04 [$DD33] $A7DD2F 49 FF FF EOR #$FFFF $A7DD32 1A INC A $A7DD33 85 12 STA $12 [$7E:0012] $A7DD35 68 PLA $A7DD36 EB XBA $A7DD37 18 CLC $A7DD38 65 12 ADC $12 [$7E:0012] $A7DD3A EB XBA $A7DD3B 29 FF 00 AND #$00FF $A7DD3E 60 RTS $A7DD3F 08 PHP $A7DD40 C2 30 REP #$30 $A7DD42 AD 9C 0F LDA $0F9C [$7E:0F9C] $A7DD45 C9 08 00 CMP #$0008 $A7DD48 F0 10 BEQ $10 [$DD5A] $A7DD4A AD A4 0F LDA $0FA4 [$7E:0FA4] $A7DD4D 89 02 00 BIT #$0002 $A7DD50 D0 22 BNE $22 [$DD74] $A7DD52 AD 36 10 LDA $1036 [$7E:1036] $A7DD55 89 00 FF BIT #$FF00 $A7DD58 F0 39 BEQ $39 [$DD93] $A7DD5A A2 1E 00 LDX #$001E $A7DD5D 20 0F DC JSR $DC0F [$A7:DC0F] $A7DD60 98 TYA $A7DD61 9F E0 C0 7E STA $7EC0E0,x[$7E:C0FE] $A7DD65 CA DEX $A7DD66 CA DEX $A7DD67 10 F4 BPL $F4 [$DD5D] $A7DD69 AD 36 10 LDA $1036 [$7E:1036] $A7DD6C 29 FF 00 AND #$00FF $A7DD6F 8D 36 10 STA $1036 [$7E:1036] $A7DD72 80 1F BRA $1F [$DD93] $A7DD74 AD 36 10 LDA $1036 [$7E:1036] $A7DD77 89 00 FF BIT #$FF00 $A7DD7A D0 17 BNE $17 [$DD93] $A7DD7C A2 1E 00 LDX #$001E $A7DD7F A9 FF 7F LDA #$7FFF $A7DD82 9F E0 C0 7E STA $7EC0E0,x[$7E:C0FE] $A7DD86 CA DEX $A7DD87 CA DEX $A7DD88 10 F5 BPL $F5 [$DD7F] $A7DD8A AD 36 10 LDA $1036 [$7E:1036] $A7DD8D 09 00 01 ORA #$0100 $A7DD90 8D 36 10 STA $1036 [$7E:1036] $A7DD93 28 PLP $A7DD94 6B RTL $A7DD95 22 97 A4 A0 JSL $A0A497[$A0:A497] $A7DD99 6B RTL $A7DD9B 8B PHB $A7DD9C AD B2 0F LDA $0FB2 [$7E:0FB2] $A7DD9F C9 48 D9 CMP #$D948 $A7DDA2 30 02 BMI $02 [$DDA6] $A7DDA6 AE 54 0E LDX $0E54 [$7E:0E54] $A7DDA9 BD 8C 0F LDA $0F8C,x[$7E:0F8C] $A7DDAC 48 PHA $A7DDAD 22 A7 A6 A0 JSL $A0A6A7[$A0:A6A7] $A7DDB1 68 PLA $A7DDB2 85 12 STA $12 [$7E:0012] $A7DDB4 BD 8C 0F LDA $0F8C,x[$7E:0F8C] $A7DDB7 D0 1B BNE $1B [$DDD4] $A7DDB9 A9 73 00 LDA #$0073 $A7DDBC 22 CB 90 80 JSL $8090CB[$80:90CB] $A7DDC0 A9 01 00 LDA #$0001 $A7DDC3 8D 36 10 STA $1036 [$7E:1036] $A7DDC6 AD 86 0F LDA $0F86 [$7E:0F86] $A7DDC9 09 00 04 ORA #$0400 $A7DDCC 8D 86 0F STA $0F86 [$7E:0F86] $A7DDCF 20 21 D4 JSR $D421 [$A7:D421] $A7DDD2 AB PLB $A7DDD3 6B RTL $A7DDD4 BD 8A 0F LDA $0F8A,x[$7E:0F8A] $A7DDD7 89 02 00 BIT #$0002 $A7DDDA F0 F6 BEQ $F6 [$DDD2] $A7DDDC A9 73 00 LDA #$0073 $A7DDDF 22 CB 90 80 JSL $8090CB[$80:90CB] $A7DDE3 BD B2 0F LDA $0FB2,x[$7E:0FB2] $A7DDE6 C9 0D D6 CMP #$D60D $A7DDE9 F0 43 BEQ $43 [$DE2E] $A7DDEB C9 88 D7 CMP #$D788 $A7DDEE F0 3E BEQ $3E [$DE2E] $A7DDF0 C9 78 D6 CMP #$D678 $A7DDF3 F0 03 BEQ $03 [$DDF8] $A7DDF8 A5 12 LDA $12 [$7E:0012] $A7DDFA 38 SEC $A7DDFB FD 8C 0F SBC $0F8C,x[$7E:0F8C] $A7DDFE 85 12 STA $12 [$7E:0012] $A7DE00 C9 2C 01 CMP #$012C $A7DE03 30 13 BMI $13 [$DE18] $A7DE18 BD 2A 10 LDA $102A,x[$7E:102A] $A7DE1B 18 CLC $A7DE1C 65 12 ADC $12 [$7E:0012] $A7DE1E 9D 2A 10 STA $102A,x[$7E:102A] $A7DE21 C9 2C 01 CMP #$012C $A7DE24 30 6C BMI $6C [$DE92] $A7DE26 A9 01 00 LDA #$0001 $A7DE29 9D B0 0F STA $0FB0,x[$7E:0FB0] $A7DE2C 80 64 BRA $64 [$DE92] $A7DE2E A5 12 LDA $12 [$7E:0012] $A7DE30 38 SEC $A7DE31 FD 8C 0F SBC $0F8C,x[$7E:0F8C] $A7DE34 85 12 STA $12 [$7E:0012] $A7DE36 C9 2C 01 CMP #$012C $A7DE39 30 13 BMI $13 [$DE4E] $A7DE4E BD 2A 10 LDA $102A,x[$7E:102A] $A7DE51 18 CLC $A7DE52 65 12 ADC $12 [$7E:0012] $A7DE54 9D 2A 10 STA $102A,x[$7E:102A] $A7DE57 C9 2C 01 CMP #$012C $A7DE5A 10 3E BPL $3E [$DE9A] $A7DE5C 22 11 81 80 JSL $808111[$80:8111] $A7DE60 29 07 00 AND #$0007 $A7DE63 A8 TAY $A7DE64 B9 A5 CD LDA $CDA5,y[$A7:CDA5] $A7DE67 29 FF 00 AND #$00FF $A7DE6A 8D EA 0F STA $0FEA [$7E:0FEA] $A7DE6D 98 TYA $A7DE6E 8D 76 10 STA $1076 [$7E:1076] $A7DE71 A9 01 00 LDA #$0001 $A7DE74 8D 36 10 STA $1036 [$7E:1036] $A7DE77 AD 28 10 LDA $1028 [$7E:1028] $A7DE7A D0 14 BNE $14 [$DE90] $A7DE7C A9 01 00 LDA #$0001 $A7DE7F 8D 28 10 STA $1028 [$7E:1028] $A7DE82 BD B0 0F LDA $0FB0,x[$7E:0FB0] $A7DE85 C9 10 00 CMP #$0010 $A7DE88 30 06 BMI $06 [$DE90] $A7DE8A A9 10 00 LDA #$0010 $A7DE8D 9D B0 0F STA $0FB0,x[$7E:0FB0] $A7DE90 AB PLB $A7DE91 6B RTL $A7DE92 A9 02 00 LDA #$0002 $A7DE95 8D 36 10 STA $1036 [$7E:1036] $A7DE98 AB PLB $A7DE99 6B RTL $A7DE9A A9 B9 D6 LDA #$D6B9 $A7DE9D 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7DEA0 9E B0 0F STZ $0FB0,x[$7E:0FB0] $A7DEA3 9C 28 10 STZ $1028 [$7E:1028] $A7DEA6 9E 2A 10 STZ $102A,x[$7E:102A] $A7DEA9 AD 88 19 LDA $1988 [$7E:1988] $A7DEAC 09 00 40 ORA #$4000 $A7DEAF 8D 88 19 STA $1988 [$7E:1988] $A7DEB2 A9 01 00 LDA #$0001 $A7DEB5 8D 94 0F STA $0F94 [$7E:0F94] $A7DEB8 8D D4 0F STA $0FD4 [$7E:0FD4] $A7DEBB A9 41 CC LDA #$CC41 $A7DEBE 8D 92 0F STA $0F92 [$7E:0F92] $A7DEC1 A9 91 CC LDA #$CC91 $A7DEC4 8D D2 0F STA $0FD2 [$7E:0FD2] $A7DEC7 AD 86 0F LDA $0F86 [$7E:0F86] $A7DECA 09 00 04 ORA #$0400 $A7DECD 8D 86 0F STA $0F86 [$7E:0F86] $A7DED0 9C F2 0F STZ $0FF2 [$7E:0FF2] $A7DED3 80 BD BRA $BD [$DE92] $A7DEDD db 01, 00, 00, 00, 00, 00, AA, E0, 20, E0, 01, 00, 00, 00, 00, 00, AA, E0, 2E, E0, 01, 00, 00, 00, 00, 00, AA, E0, 6C, E0, 01, 00, 00, 00, 00, 00, 36, E2 $A7DF05 db 01, 00, 00, 00, 00, 00, 36, E2 $A7DF0F db 01, 00, 00, 00, 00, 00, 02, E2 $A7DF19 db 01, 00, 00, 00, 00, 00, CE, E1 $A7DF23 db 01, 00, 00, 00, 00, 00, 6A, E2 $A7DF37 db 01, 00, 00, 00, 00, 00, 92, E2 $A7DF41 db 01, 00, 00, 00, 00, 00, A6, E2 $A7DF4B db 01, 00, 00, 00, 00, 00, BA, E2 $A7DF55 db 01, 00, 00, 00, 00, 00, CE, E2 $A7DF5F db 01, 00, 00, 00, 00, 00, E2, E2 $A7DF73 db 01, 00, 00, 00, 00, 00, 0A, E3 $A7DFB3 db 02, 00, 00, 00, 00, 00, 1E, E3 $A7DFBD db 00, 00, 00, 00, 4E, E3 $A7DFC5 db 02, 00, 00, 00, 00, 00, 2E, E3 $A7DFCF db 00, 00, 00, 00, 5E, E3 $A7DFD7 db 02, 00, 00, 00, 00, 00, 3E, E3 $A7DFE1 db 00, 00, 00, 00, 6E, E3 $A7DFE9 db 01, 00, 00, 00, 00, 00, 7E, E3 $A7DFF3 db 01, 00, 00, 00, 00, 00, 9A, E3 $A7DFFD db 01, 00, 00, 00, 00, 00, B6, E3 $A7E011 6B RTL $A7E020 db 01, 00, 00, 00 $A7E026 db 00, 00 $A7E02E db 05, 00, DF, FF, D8, FF, 20, 00, 38, 00, 95, DD, 9B, DD, F7, FF, 16, 00, 08, 00, 27, 00 $A7E048 db E9, FF, 34, 00, F0, FF, 47, 00 $A7E054 db 0F, 00, 35, 00, 16, 00, 46, 00 $A7E05E db 9B, DD, F4, FF, 35, 00, 0B, 00, 45, 00, 95, DD, 9B, DD, 01, 00, F7, FF, 16, 00, 08, 00, 27, 00 $A7E078 db 9B, DD $A7E0AA db FE, FF, 00, 20, 0A, 00, 38, 23, 38, 23, 38, 23, 32, 3D, 33, 3D, 33, 7D, 32, 7D, 38, 23, 38, 23, 38, 23, 40, 20, 0A, 00, 38, 23, 40, 3D, 41, 3D, 42, 3D, 43, 3D, 43, 7D, 42, 7D, 41, 7D, 40, 7D, 38, 23, 80, 20, 0A, 00, 38, 23, 50, 3D, 51, 3D, 52, 3D, 53, 3D, 53, 7D, 52, 7D, 51, 7D, 50, 7D, 38, 23, C0, 20, 0A, 00, 78, 3D, 60, 3D, 61, 3D, 62, 3D, 63, 3D, 63, 7D, 62, 7D, 61, 7D, 60, 7D, 78, 7D, 00, 21, 0A, 00, 79, 3D, 70, 3D, 71, 3D, 72, 3D, 73, 3D, 73, 7D, 72, 7D, 71, 7D, 70, 7D, 79, 7D, 40, 21, 0A, 00, 78, BD, 34, 3D, 35, 3D, 36, 3D, 37, 3D, 37, 7D, 36, 7D, 35, 7D, 34, 7D, 78, FD, 80, 21, 0A, 00, 38, 23, 44, 3D, 45, 3D, 46, 3D, 47, 3D, 47, 7D, 46, 7D, 45, 7D, 44, 7D, 38, 23, C0, 21, 0A, 00, 38, 23, 54, 3D, 55, 3D, 56, 3D, 57, 3D, 57, 7D, 56, 7D, 55, 7D, 54, 7D, 38, 23, 00, 22, 0A, 00, 38, 23, 64, 3D, 65, 3D, 66, 3D, 38, 23, 38, 23, 66, 7D, 65, 7D, 64, 7D, 38, 23, 40, 22, 0A, 00, 38, 23, 74, 3D, 75, 3D, 76, 3D, 38, 23, 38, 23, 76, 7D, 75, 7D, 74, 7D, 38, 23, 80, 22, 0A, 00, 38, 23, 38, 23, 38, 3D, 39, 3D, 3A, 3D, 3A, 7D, 39, 7D, 38, 7D, 38, 23, 38, 23, C0, 22, 0A, 00, 38, 23, 38, 23, 48, 3D, 49, 3D, 4A, 3D, 4A, 7D, 49, 7D, 48, 7D, 38, 23, 38, 23, FF, FF, FE, FF, C6, 21, 04, 00, 56, 3D, 57, 3D, 57, 7D, 56, 7D, 06, 22, 04, 00, 66, 3D, 67, 3D, 3F, 3D, 66, 7D, 46, 22, 04, 00, 76, 3D, 77, 3D, 4F, 3D, 76, 7D, 86, 22, 04, 00, 39, 3D, 3A, 3D, 3A, 7D, 39, 7D, FF, FF, FE, FF, C6, 21, 04, 00, 3D, 3D, 3E, 3D, 3E, 7D, 3D, 7D, 06, 22, 04, 00, 4D, 3D, 4E, 3D, 5F, 3D, 4D, 7D, 46, 22, 04, 00, 5D, 3D, 5E, 3D, 6F, 3D, 5D, 7D, 86, 22, 04, 00, 6D, 3D, 6E, 3D, 6E, 7D, 6D, 7D, FF, FF, FE, FF, C6, 21, 04, 00, 3B, 3D, 3C, 3D, 3C, 7D, 3B, 7D, 06, 22, 04, 00, 4B, 3D, 4C, 3D, 4C, 7D, 4B, 7D, 46, 22, 04, 00, 5B, 3D, 5C, 3D, 5C, 7D, 5B, 7D, 86, 22, 04, 00, 6B, 3D, 6C, 3D, 6C, 7D, 6B, 7D, FF, FF, FE, FF, 08, 22, 02, 00, 67, 3D, 3F, 3D, 48, 22, 02, 00, 77, 3D, 4F, 3D, FF, FF $A7E292 db FE, FF, 08, 22, 02, 00, 12, 3D, 13, 3D, 48, 22, 02, 00, 22, 3D, 23, 3D, FF, FF, FE, FF, 08, 22, 02, 00, 14, 3D, 15, 3D, 48, 22, 02, 00, 24, 3D, 25, 3D, FF, FF, FE, FF, 08, 22, 02, 00, 16, 3D, 17, 3D, 48, 22, 02, 00, 26, 3D, 27, 3D, FF, FF, FE, FF, 08, 22, 02, 00, 18, 3D, 19, 3D, 48, 22, 02, 00, 28, 3D, 29, 3D, FF, FF, FE, FF, 08, 22, 02, 00, 1A, 3D, 1B, 3D, 48, 22, 02, 00, 2A, 3D, 2B, 3D, FF, FF $A7E30A db FE, FF, 08, 22, 02, 00, 1E, 3D, 1F, 3D, 48, 22, 02, 00, 2E, 3D, 2F, 3D, FF, FF, FE, FF, 04, 23, 01, 00, 58, 3D, 44, 23, 01, 00, 68, 3D, FF, FF, FE, FF, 04, 23, 01, 00, 81, 3D, 44, 23, 01, 00, 83, 3D, FF, FF, FE, FF, 04, 23, 01, 00, 80, 3D, 44, 23, 01, 00, 82, 3D, FF, FF, FE, FF, 0E, 23, 01, 00, 58, 7D, 4E, 23, 01, 00, 68, 7D, FF, FF, FE, FF, 0E, 23, 01, 00, 81, 7D, 4E, 23, 01, 00, 83, 7D, FF, FF, FE, FF, 0E, 23, 01, 00, 80, 7D, 4E, 23, 01, 00, 82, 7D, FF, FF, FE, FF, 06, 23, 04, 00, 59, 3D, 5A, 3D, 5A, 7D, 59, 7D, 46, 23, 04, 00, 69, 3D, 6A, 3D, 6A, 7D, 69, 7D, FF, FF, FE, FF, 06, 23, 04, 00, 7A, 3D, 7B, 3D, 7B, 7D, 7A, 7D, 46, 23, 04, 00, 7C, 3D, 7D, 3D, 7D, 7D, 7C, 7D, FF, FF, FE, FF, 06, 23, 04, 00, 7E, 3D, 7F, 3D, 7F, 7D, 7E, 7D, 46, 23, 04, 00, 30, 3D, 31, 3D, 31, 7D, 30, 7D, FF, FF, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, FF, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 01, 00, 00, FF, 01, 00, 01, 00, 00, FF, 01, 00, 01, 00, 00, FF, 01, 00, 01, 00, 00, FF, 01, 00, 01, 00, 01, 00, 01, 00, 00, FF, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 01, 01, 00, 01, 00, 01, 00, 01, 00, 00, 01, 01, 00, 01, 00, 01, 00, 00, 01, 01, 00, 01, 00, 00, 01, 01, 00, 01, 00, 01, 01, 01, 00, 01, 01, 01, 00, 00, 01, 01, 00, 01, 00, 00, 01, 01, 00, 00, 01, 01, 00, 01, 00, 00, 01, 01, 00, 00, 01, 01, 00, 00, 01, 01, 00, 01, 01, 01, 01, 01, 01, 01, 01, 00, 01, 01, 00, 00, 01, 01, 00, 00, 01, 01, 00, 00, 01, 00, 01, 01, 00, 00, 01, 00, 01, 01, 00, 00, 01, 00, 01, 01, 00, 00, 01, 00, 01, 00, 01, 01, 00, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, FF, 00, 00, 01, 00, 01, 00, 01, FF, 00, 00, 01, 00, 01, FF, 01, 00, 01, FF, 00, 00, 01, 00, 01, FF, 00, 00, 01, FF, 00, 00, 01, FF, 00, 00, 01, FF, 01, 00, 01, FF, 00, FF, 01, FF, 01, FF, 00, 00, 01, FF, 00, 00, 01, FF, 00, 00, 01, FF, 00, FF, 00, 00, 01, FF, 00, 00, 01, FF, 00, FF, 00, 00, 01, FF, 00, FF, 01, FF, 00, FF, 01, FF, 00, FF, 00, 00, 01, FF, 00, FF, 00, 00, 01, FF, 00, FF, 00, FF, 00, 00, 01, FF, 00, FF, 00, FF, 00, FF, 00, FF, 01, FF, 00, FF, 00, FF, 00, FF, 00, FF, 00, FF, 00, FF, 00, FF, 00, FF, 00, FF, 00, 00, FF, FF, 00, FF, 00, FF, 00, FF, 00, 00, FF, FF, 00, FF, 00, 00, FF, FF, 00, FF, 00, 00, FF, FF, 00, FF, 00, 00, FF, FF, 00, FF, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, 00, FF, FF, FF, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, FF, FF, FF, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, FF, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, FF, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, FF, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, FF, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, 00, FF, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, 00, FF, FF, FF, 00, 00, FF, FF, 00, FF, 00, 00, FF, FF, 00, FF, 00, 00, FF, FF, 00, FF, 00, 00, FF, FF, 00, FF, 00, FF, 00, FF, 00, 00, FF, FF, 00, FF, 00, FF, 00, FF, 00, FF, 00, FF, 00, FF, 00, FF, 00, FF, 00, FF, 00, FF, 01, FF, 00, FF, 00, FF, 00, FF, 00, 00, 01, FF, 00, FF, 00, FF, 00, 00, 01, FF, 00, FF, 00, 00, 01, FF, 00, FF, 00, FF, 01, FF, 00, FF, 01, FF, 00, 00, 01, FF, 00, FF, 00, 00, 01, FF, 00, 00, 01, FF, 00, FF, 00, 00, 01, FF, 00, 00, 01, FF, 00, 00, 01, FF, 00, 00, 01, FF, 00, FF, 01, FF, 01, FF, 01, 00, 01, FF, 00, 00, 01, FF, 00, 00, 01, FF, 00, 00, 01, 00, 01, FF, 00, 00, 01, FF, 01, 00, 01, 00, 01, FF, 00, 00, 01, 00, 01, 00, 01, FF, 00, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 01, 00, 00, 01, 00, 01, 00, 01, 01, 00, 00, 01, 00, 01, 01, 00, 00, 01, 00, 01, 01, 00, 00, 01, 00, 01, 01, 00, 00, 01, 01, 00, 00, 01, 01, 00, 00, 01, 01, 01, 01, 01, 00, 01, 01, 00, 01, 01, 01, 00, 00, 01, 01, 00, 00, 01, 01, 00, 00, 01, 01, 00, 01, 00, 00, 01, 01, 00, 00, 01, 01, 00, 01, 00, 00, 01, 01, 00, 01, 01, 01, 00, 01, 01, 01, 00, 01, 00, 00, 01, 01, 00, 01, 00, 00, 01, 01, 00, 01, 00, 01, 00, 00, 01, 01, 00, 01, 00, 01, 00, 01, 00, 01, 01, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 00, FF, 01, 00, 01, 00, 01, 00, 01, 00, 00, FF, 01, 00, 01, 00, 00, FF, 01, 00, 01, 00, 00, FF, 01, 00, 01, 00, 00, FF, 01, 00, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 01, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, FF, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, FF, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 00, 38, 97, 5F, F2, 56, 87, 29, A0, 00, 55, 63, B0, 4A, 0B, 3A, C9, 31, FF, 57, F7, 42, 10, 26, 8C, 15, FF, 03, 79, 02, 29, 00 $A7E854 db 01, 00, 6B, EF, 2F, 81, 0C, 00, 90, EF, 0C, 00, B5, EF, 06, 00, DA, EF, 0C, 00, B5, EF, 0C, 00, 90, EF, 2F, 81 $A7E8CE db 08, 00, 07, F1, ED, 80, CE, E8, 23, 81, 04, 00, 08, 00, 07, F1, 08, 00, 2C, F1, 08, 00, 51, F1, 08, 00, 76, F1, 08, 00, 51, F1, 08, 00, 2C, F1, 10, 81, DA, E8, 20, 00, 9B, F1, 20, 00, E5, F1 $A7E900 db FD, FF, 00, 00 $A7E912 AE 54 0E LDX $0E54 [$7E:0E54] $A7E915 BD 86 0F LDA $0F86,x[$7E:1186] $A7E918 09 00 20 ORA #$2000 $A7E91B 9D 86 0F STA $0F86,x[$7E:1186] $A7E91E A9 4D 80 LDA #$804D $A7E921 9D 8E 0F STA $0F8E,x[$7E:118E] $A7E924 A9 01 00 LDA #$0001 $A7E927 9D 94 0F STA $0F94,x[$7E:1194] $A7E92A 9E 90 0F STZ $0F90,x[$7E:1190] $A7E92D A9 CE E8 LDA #$E8CE $A7E930 9D 92 0F STA $0F92,x[$7E:1192] $A7E933 A9 AF E9 LDA #$E9AF $A7E936 9D B2 0F STA $0FB2,x[$7E:11B2] $A7E939 A9 FF FF LDA #$FFFF $A7E93C 9D B0 0F STA $0FB0,x[$7E:11B0] $A7E93F 6B RTL $A7E940 AE 54 0E LDX $0E54 [$7E:0E54] $A7E943 BD B6 0F LDA $0FB6,x[$7E:11B6] $A7E946 89 00 FF BIT #$FF00 $A7E949 F0 09 BEQ $09 [$E954] $A7E954 7C B2 0F JMP ($0FB2,x)[$A7:E9AF] $A7E983 BD A8 0F LDA $0FA8,x[$7E:11A8] $A7E986 85 14 STA $14 [$7E:0014] $A7E988 BD AA 0F LDA $0FAA,x[$7E:11AA] $A7E98B 85 12 STA $12 [$7E:0012] $A7E98D BD A8 0F LDA $0FA8,x[$7E:11A8] $A7E990 C9 05 00 CMP #$0005 $A7E993 10 15 BPL $15 [$E9AA] $A7E995 BD AA 0F LDA $0FAA,x[$7E:11AA] $A7E998 18 CLC $A7E999 6F 32 0B 00 ADC $000B32[$7E:0B32] $A7E99D 9D AA 0F STA $0FAA,x[$7E:11AA] $A7E9A0 BD A8 0F LDA $0FA8,x[$7E:11A8] $A7E9A3 6F 34 0B 00 ADC $000B34[$7E:0B34] $A7E9A7 9D A8 0F STA $0FA8,x[$7E:11A8] $A7E9AA 22 86 C7 A0 JSL $A0C786[$A0:C786] $A7E9AE 60 RTS $A7E9AF AD 97 07 LDA $0797 [$7E:0797] $A7E9B2 F0 01 BEQ $01 [$E9B5] $A7E9B4 6B RTL $A7E9B5 BD B0 0F LDA $0FB0,x[$7E:11B0] $A7E9B8 10 2C BPL $2C [$E9E6] $A7E9BA A9 80 00 LDA #$0080 $A7E9BD 22 ED AE A0 JSL $A0AEED[$A0:AEED] $A7E9C1 A8 TAY $A7E9C2 F0 3B BEQ $3B [$E9FF] $A7E9C4 BD B6 0F LDA $0FB6,x[$7E:11B6] $A7E9C7 89 03 00 BIT #$0003 $A7E9CA D0 07 BNE $07 [$E9D3] $A7E9CC A9 35 00 LDA #$0035 $A7E9CF 22 A3 90 80 JSL $8090A3[$80:90A3] $A7E9D3 A9 01 00 LDA #$0001 $A7E9D6 9D 94 0F STA $0F94,x[$7E:1194] $A7E9D9 A9 D6 E8 LDA #$E8D6 $A7E9DC 9D 92 0F STA $0F92,x[$7E:1192] $A7E9DF A9 00 01 LDA #$0100 $A7E9E2 9D B0 0F STA $0FB0,x[$7E:11B0] $A7E9E5 6B RTL $A7E9E6 DE B0 0F DEC $0FB0,x[$7E:11B0] $A7E9E9 F0 02 BEQ $02 [$E9ED] $A7E9EB 10 12 BPL $12 [$E9FF] $A7E9ED A9 54 E8 LDA #$E854 $A7E9F0 9D 92 0F STA $0F92,x[$7E:1192] $A7E9F3 A9 00 EA LDA #$EA00 $A7E9F6 9D B2 0F STA $0FB2,x[$7E:11B2] $A7E9F9 A9 0B 00 LDA #$000B $A7E9FC 9D B0 0F STA $0FB0,x[$7E:11B0] $A7E9FF 6B RTL $A7EA00 DE B0 0F DEC $0FB0,x[$7E:11B0] $A7EA03 F0 02 BEQ $02 [$EA07] $A7EA05 10 2F BPL $2F [$EA36] $A7EA07 AD 00 E9 LDA $E900 [$A7:E900] $A7EA0A 9D A8 0F STA $0FA8,x[$7E:11A8] $A7EA0D AD 02 E9 LDA $E902 [$A7:E902] $A7EA10 9D AA 0F STA $0FAA,x[$7E:11AA] $A7EA13 BD 92 0F LDA $0F92,x[$7E:1192] $A7EA16 1A INC A $A7EA17 1A INC A $A7EA18 9D 92 0F STA $0F92,x[$7E:1192] $A7EA1B A9 01 00 LDA #$0001 $A7EA1E 9D 94 0F STA $0F94,x[$7E:1194] $A7EA21 A9 37 EA LDA #$EA37 $A7EA24 9D B2 0F STA $0FB2,x[$7E:11B2] $A7EA27 AD F6 0A LDA $0AF6 [$7E:0AF6] $A7EA2A C9 00 01 CMP #$0100 $A7EA2D 30 07 BMI $07 [$EA36] $A7EA2F A9 33 00 LDA #$0033 $A7EA32 22 CB 90 80 JSL $8090CB[$80:90CB] $A7EA36 6B RTL $A7EA37 20 83 E9 JSR $E983 [$A7:E983] $A7EA3A B0 01 BCS $01 [$EA3D] $A7EA3C 6B RTL $A7EA3D BD A8 0F LDA $0FA8,x[$7E:11A8] $A7EA40 10 13 BPL $13 [$EA55] $A7EA55 A9 40 00 LDA #$0040 $A7EA58 22 ED AE A0 JSL $A0AEED[$A0:AEED] $A7EA5C A8 TAY $A7EA5D F0 3D BEQ $3D [$EA9C] $A7EA9C A9 0B 00 LDA #$000B $A7EA9F 9D B0 0F STA $0FB0,x[$7E:11B0] $A7EAA2 A9 00 EA LDA #$EA00 $A7EAA5 9D B2 0F STA $0FB2,x[$7E:11B2] $A7EAA8 A9 01 00 LDA #$0001 $A7EAAB 9D 94 0F STA $0F94,x[$7E:1194] $A7EAAE A9 54 E8 LDA #$E854 $A7EAB1 9D 92 0F STA $0F92,x[$7E:1192] $A7EAB4 6B RTL $A7F107 db 07, 00, F7, 01, FE, 22, 33, 00, 00, FE, 22, 73, F8, C3, F2, 0C, 33, FF, 01, 01, 24, 73, F8, 01, 01, 24, 33, FF, 01, FA, 20, 73, F8, 01, FA, 20, 33, 07, 00, 01, 00, FC, 22, 73, F6, 01, FC, 22, 33, F8, C3, F1, 0C, 33, FF, 01, 01, 23, 73, F8, 01, 01, 23, 33, FF, 01, FA, 20, 73, F8, 01, FA, 20, 33, 07, 00, FF, 01, 01, 23, 73, F8, 01, 01, 23, 33, F8, C3, EF, 0C, 33, FF, 01, F9, 20, 73, F8, 01, F9, 20, 33, 03, 00, F9, 21, 73, F4, 01, F9, 21, 33, 07, 00, FF, 01, 01, 23, 73, F8, 01, 01, 23, 33, F8, C3, EF, 0C, 33, FF, 01, F9, 20, 73, F8, 01, F9, 20, 33, 03, 00, F7, 21, 73, F4, 01, F7, 21, 33 $A7F225 db 00, 38, 57, 3F, 4D, 2E, E2, 00, 60, 00, B0, 3A, 0B, 22, 66, 11, 24, 09, FF, 57, F7, 42, 10, 26, 8C, 15, 1F, 7C, 18, 60, 0A, 30, 80, 15, 57, 3F, 4D, 2E, E2, 00, 60, 00, B0, 3A, 0B, 22, 66, 11, 24, 09, FF, 57, F7, 42, 10, 26, 8C, 15, 1F, 7C, 18, 60, 0A, 30, 00, 38, 57, 53, 4D, 42, E2, 14, 60, 14, B0, 4E, 0B, 36, 66, 25, 24, 1D, FF, 63, F7, 56, 10, 3A, 8C, 29, 1F, 7C, 18, 68, 0A, 44, 00, 38, 57, 6B, 4D, 5A, E2, 2C, 60, 2C, B0, 66, 0B, 4E, 66, 3D, 24, 35, FF, 73, F7, 6A, 10, 52, 8C, 41, 1F, 7C, 18, 74, 0A, 5C, 00, 38, 57, 7F, 4D, 6E, E2, 40, 60, 40, B0, 7A, 0B, 62, 66, 51, 24, 49, FF, 7F, F7, 7E, 10, 66, 8C, 55, 1F, 7C, 18, 7C, 0A, 70, 00, 38, 57, 3F, 4D, 2E, E2, 00, 60, 00, B0, 3A, 0B, 22, 66, 11, 24, 09, FF, 57, F7, 42, 10, 26, 8C, 15, 1F, 7C, 18, 60, 0A, 30, 00, 38, 78, 4B, 90, 3E, 67, 19, 06, 19, F3, 46, 6F, 32, EB, 25, A9, 1D, FF, 5F, 18, 4F, 73, 36, EF, 29, DF, 7C, D9, 64, CE, 3C, 00, 38, 9A, 57, F4, 4E, 0D, 32, CC, 31, 36, 53, D3, 46, 70, 3A, 2E, 36, FF, 67, 5A, 5B, D6, 46, 73, 3E, 9F, 7D, 9A, 69, 92, 4D, 00, 38, BB, 63, 37, 5F, B3, 4A, 72, 4A, 79, 63, 37, 57, F5, 52, D4, 4E, FF, 6F, 7B, 67, 39, 5B, F7, 52, 5F, 7E, 5C, 72, 56, 5E, 05, 00, C4, F9, 05, 00, F3, F9, 05, 00, 22, FA, 05, 00, 5B, FA, 05, 00, 8A, FA, 05, 00, B9, FA, ED, 80, 45, F3, 03, 00, C4, F9, 03, 00, F3, F9, 03, 00, 22, FA, 03, 00, 5B, FA, 03, 00, 8A, FA, 03, 00, B9, FA, ED, 80, 61, F3, 01, 00, C4, F9, 01, 00, F3, F9, 01, 00, 22, FA, 01, 00, 5B, FA, 01, 00, 8A, FA, 01, 00, B9, FA, ED, 80, 7D, F3 $A7F3FF db 05, 00, 8A, FA, ED, 80, FF, F3, 05, 00, A3, FC, 05, 00, D2, FC, 05, 00, 01, FD, 05, 00, 3A, FD, 05, 00, 69, FD, 05, 00, 98, FD, ED, 80, 07, F4, 03, 00, A3, FC, 03, 00, D2, FC, 03, 00, 01, FD, 03, 00, 3A, FD, 03, 00, 69, FD, 03, 00, 98, FD, ED, 80, 23, F4, 01, 00, A3, FC, 01, 00, D2, FC, 01, 00, 01, FD, 01, 00, 3A, FD, 01, 00, 69, FD, 01, 00, 98, FD, ED, 80, 3F, F4, 30, 00, 2F, FE, 0A, 00, C6, FE, 07, 00, F5, FE, 07, 00, 24, FF, 07, 00, 53, FF, 07, 00, 24, FF, 07, 00, F5, FE, 07, 00, 24, FF, 07, 00, 53, FF, 07, 00, 24, FF, 0A, 00, C6, FE, ED, 80, 5B, F4, 0B, 00, 2F, FE, 08, 00, 5E, FE, 08, 00, 92, FE, 04, 00, 2F, FE, 04, 00, 5E, FE, 04, 00, 92, FE, 0A, 00, 2F, FE, 05, 00, 5E, FE, 0B, 00, 92, FE, ED, 80, 8B, F4, 01, 00, D1, FD, 2F, 81, 0A, 00, FB, FD, ED, 80, B9, F4 $A7F4C9 db 60, 00 $A7F4CD db 78, 00, 3C, 00, 01, 00, 08, 00, 08, 00, 00, 00, 00, 00, 00, 10 $A7F4DD AE 54 0E LDX $0E54 [$7E:0E54] $A7F4E0 BD 86 0F LDA $0F86,x[$7E:1186] $A7F4E3 09 00 20 ORA #$2000 $A7F4E6 9D 86 0F STA $0F86,x[$7E:1186] $A7F4E9 A9 4D 80 LDA #$804D $A7F4EC 9D 8E 0F STA $0F8E,x[$7E:118E] $A7F4EF A9 01 00 LDA #$0001 $A7F4F2 9D 94 0F STA $0F94,x[$7E:1194] $A7F4F5 9E 90 0F STZ $0F90,x[$7E:1190] $A7F4F8 BD B4 0F LDA $0FB4,x[$7E:11B4] $A7F4FB 30 17 BMI $17 [$F514] $A7F4FD F0 08 BEQ $08 [$F507] $A7F4FF A9 5B F4 LDA #$F45B $A7F502 9D 92 0F STA $0F92,x[$7E:1192] $A7F505 80 06 BRA $06 [$F50D] $A7F50D A9 70 F5 LDA #$F570 $A7F510 9D B2 0F STA $0FB2,x[$7E:11B2] $A7F513 6B RTL $A7F514 89 01 00 BIT #$0001 $A7F517 F0 08 BEQ $08 [$F521] $A7F519 A9 B9 F4 LDA #$F4B9 $A7F51C 9D 92 0F STA $0F92,x[$7E:11D2] $A7F51F 80 06 BRA $06 [$F527] $A7F527 A9 8C F9 LDA #$F98C $A7F52A 9D B2 0F STA $0FB2,x[$7E:11F2] $A7F52D 6B RTL $A7F52E AE 54 0E LDX $0E54 [$7E:0E54] $A7F531 7C B2 0F JMP ($0FB2,x)[$A7:F570] $A7F535 08 PHP $A7F536 C2 30 REP #$30 $A7F538 DA PHX $A7F539 A9 00 7E LDA #$7E00 $A7F53C 85 01 STA $01 [$7E:0001] $A7F53E BD 96 0F LDA $0F96,x[$7E:1196] $A7F541 EB XBA $A7F542 4A LSR A $A7F543 0A ASL A $A7F544 AA TAX $A7F545 BD 5F F5 LDA $F55F,x[$A7:F56D] $A7F548 85 00 STA $00 [$7E:0000] $A7F54A BB TYX $A7F54B A0 00 00 LDY #$0000 $A7F54E BD 00 00 LDA $0000,x[$A7:F245] $A7F551 97 00 STA [$00],y[$7E:C1E0] $A7F553 E8 INX $A7F554 E8 INX $A7F555 C8 INY $A7F556 C8 INY $A7F557 C0 20 00 CPY #$0020 $A7F55A 30 F2 BMI $F2 [$F54E] $A7F55C FA PLX $A7F55D 28 PLP $A7F55E 60 RTS $A7F56D db E0, C1 $A7F570 A9 01 00 LDA #$0001 $A7F573 85 14 STA $14 [$7E:0014] $A7F575 64 12 STZ $12 [$7E:0012] $A7F577 22 86 C7 A0 JSL $A0C786[$A0:C786] $A7F57B A9 40 00 LDA #$0040 $A7F57E 22 ED AE A0 JSL $A0AEED[$A0:AEED] $A7F582 A8 TAY $A7F583 F0 36 BEQ $36 [$F5BB] $A7F585 AD C9 F4 LDA $F4C9 [$A7:F4C9] $A7F588 22 0B AF A0 JSL $A0AF0B[$A0:AF0B] $A7F58C A8 TAY $A7F58D F0 2C BEQ $2C [$F5BB] $A7F58F BD B4 0F LDA $0FB4,x[$7E:11B4] $A7F592 F0 08 BEQ $08 [$F59C] $A7F594 A9 8B F4 LDA #$F48B $A7F597 9D 92 0F STA $0F92,x[$7E:1192] $A7F59A 80 06 BRA $06 [$F5A2] $A7F5A2 A9 01 00 LDA #$0001 $A7F5A5 9D 94 0F STA $0F94,x[$7E:1194] $A7F5A8 A9 BC F5 LDA #$F5BC $A7F5AB 9D B2 0F STA $0FB2,x[$7E:11B2] $A7F5AE AD CD F4 LDA $F4CD [$A7:F4CD] $A7F5B1 9D A8 0F STA $0FA8,x[$7E:11A8] $A7F5B4 A9 1D 00 LDA #$001D $A7F5B7 22 A3 90 80 JSL $8090A3[$80:90A3] $A7F5BB 6B RTL $A7F5BC DE A8 0F DEC $0FA8,x[$7E:11A8] $A7F5BF D0 2B BNE $2B [$F5EC] $A7F5C1 BD B4 0F LDA $0FB4,x[$7E:11B4] $A7F5C4 F0 0E BEQ $0E [$F5D4] $A7F5C6 A9 07 F4 LDA #$F407 $A7F5C9 9D 92 0F STA $0F92,x[$7E:1192] $A7F5CC A9 5E F6 LDA #$F65E $A7F5CF 9D B2 0F STA $0FB2,x[$7E:11B2] $A7F5D2 80 0C BRA $0C [$F5E0] $A7F5E0 A9 01 00 LDA #$0001 $A7F5E3 9D 94 0F STA $0F94,x[$7E:1194] $A7F5E6 A9 01 00 LDA #$0001 $A7F5E9 9D B0 0F STA $0FB0,x[$7E:11B0] $A7F5EC 6B RTL $A7F5ED 20 D5 F6 JSR $F6D5 [$A7:F6D5] $A7F5F0 A5 14 LDA $14 [$7E:0014] $A7F5F2 49 FF FF EOR #$FFFF $A7F5F5 85 14 STA $14 [$7E:0014] $A7F5F7 A5 12 LDA $12 [$7E:0012] $A7F5F9 49 FF FF EOR #$FFFF $A7F5FC 1A INC A $A7F5FD 85 12 STA $12 [$7E:0012] $A7F5FF D0 02 BNE $02 [$F603] $A7F601 E6 14 INC $14 [$7E:0014] $A7F603 22 AB C6 A0 JSL $A0C6AB[$A0:C6AB] $A7F607 B0 06 BCS $06 [$F60F] $A7F609 22 AD C8 A0 JSL $A0C8AD[$A0:C8AD] $A7F60D 80 2B BRA $2B [$F63A] $A7F60F A9 07 F4 LDA #$F407 $A7F612 9D 92 0F STA $0F92,x[$7E:1192] $A7F615 A9 5E F6 LDA #$F65E $A7F618 9D B2 0F STA $0FB2,x[$7E:11B2] $A7F61B A9 01 00 LDA #$0001 $A7F61E 9D B0 0F STA $0FB0,x[$7E:11B0] $A7F621 A9 01 00 LDA #$0001 $A7F624 9D B4 0F STA $0FB4,x[$7E:11B4] $A7F627 A9 01 00 LDA #$0001 $A7F62A 9D 94 0F STA $0F94,x[$7E:1194] $A7F62D 9E A8 0F STZ $0FA8,x[$7E:11A8] $A7F630 9E AA 0F STZ $0FAA,x[$7E:11AA] $A7F633 A0 25 F2 LDY #$F225 $A7F636 20 35 F5 JSR $F535 [$A7:F535] $A7F639 6B RTL $A7F63A BD 7A 0F LDA $0F7A,x[$7E:117A] $A7F63D C9 60 00 CMP #$0060 $A7F640 30 CD BMI $CD [$F60F] $A7F642 6B RTL $A7F65E 20 D5 F6 JSR $F6D5 [$A7:F6D5] $A7F661 22 AB C6 A0 JSL $A0C6AB[$A0:C6AB] $A7F665 B0 06 BCS $06 [$F66D] $A7F667 22 AD C8 A0 JSL $A0C8AD[$A0:C8AD] $A7F66B 80 2C BRA $2C [$F699] $A7F66D A9 71 00 LDA #$0071 $A7F670 22 A3 90 80 JSL $8090A3[$80:90A3] $A7F674 A9 45 F3 LDA #$F345 $A7F677 9D 92 0F STA $0F92,x[$7E:1192] $A7F67A A9 ED F5 LDA #$F5ED $A7F67D 9D B2 0F STA $0FB2,x[$7E:11B2] $A7F680 9E B4 0F STZ $0FB4,x[$7E:11B4] $A7F683 9E A8 0F STZ $0FA8,x[$7E:11A8] $A7F686 A0 25 F2 LDY #$F225 $A7F689 20 35 F5 JSR $F535 [$A7:F535] $A7F68C 9E B0 0F STZ $0FB0,x[$7E:11B0] $A7F68F 9E AA 0F STZ $0FAA,x[$7E:11AA] $A7F692 A9 01 00 LDA #$0001 $A7F695 9D 94 0F STA $0F94,x[$7E:1194] $A7F698 6B RTL $A7F699 BD 7A 0F LDA $0F7A,x[$7E:117A] $A7F69C C9 80 04 CMP #$0480 $A7F69F 10 01 BPL $01 [$F6A2] $A7F6A1 6B RTL $A7F6A2 A9 B3 F4 LDA #$F4B3 $A7F6A5 9D 92 0F STA $0F92,x[$7E:1192] $A7F6A8 A9 8F F7 LDA #$F78F $A7F6AB 9D B2 0F STA $0FB2,x[$7E:11B2] $A7F6AE AD CF F4 LDA $F4CF [$A7:F4CF] $A7F6B1 9D A8 0F STA $0FA8,x[$7E:11A8] $A7F6B4 BD 7E 0F LDA $0F7E,x[$7E:117E] $A7F6B7 18 CLC $A7F6B8 69 08 00 ADC #$0008 $A7F6BB 9D 7E 0F STA $0F7E,x[$7E:117E] $A7F6BE A9 3D 00 LDA #$003D $A7F6C1 22 CB 90 80 JSL $8090CB[$80:90CB] $A7F6C5 80 C5 BRA $C5 [$F68C] $A7F6D5 BD A8 0F LDA $0FA8,x[$7E:11A8] $A7F6D8 CD D5 F4 CMP $F4D5 [$A7:F4D5] $A7F6DB 30 42 BMI $42 [$F71F] $A7F6DD BD B0 0F LDA $0FB0,x[$7E:11B0] $A7F6E0 C9 01 00 CMP #$0001 $A7F6E3 D0 07 BNE $07 [$F6EC] $A7F6E5 A9 39 00 LDA #$0039 $A7F6E8 22 CB 90 80 JSL $8090CB[$80:90CB] $A7F6EC BD B0 0F LDA $0FB0,x[$7E:11B0] $A7F6EF 3A DEC A $A7F6F0 9D B0 0F STA $0FB0,x[$7E:11B0] $A7F6F3 29 FF 00 AND #$00FF $A7F6F6 F0 02 BEQ $02 [$F6FA] $A7F6F8 10 25 BPL $25 [$F71F] $A7F6FA BD B0 0F LDA $0FB0,x[$7E:11B0] $A7F6FD EB XBA $A7F6FE 29 FF 00 AND #$00FF $A7F701 0A ASL A $A7F702 A8 TAY $A7F703 B9 87 F7 LDA $F787,y[$A7:F787] $A7F706 A8 TAY $A7F707 20 35 F5 JSR $F535 [$A7:F535] $A7F70A BD B0 0F LDA $0FB0,x[$7E:11B0] $A7F70D 18 CLC $A7F70E 69 10 01 ADC #$0110 $A7F711 9D B0 0F STA $0FB0,x[$7E:11B0] $A7F714 C9 10 04 CMP #$0410 $A7F717 30 06 BMI $06 [$F71F] $A7F719 A9 10 03 LDA #$0310 $A7F71C 9D B0 0F STA $0FB0,x[$7E:11B0] $A7F71F A9 01 00 LDA #$0001 $A7F722 85 14 STA $14 [$7E:0014] $A7F724 64 12 STZ $12 [$7E:0012] $A7F726 22 86 C7 A0 JSL $A0C786[$A0:C786] $A7F72A BD A8 0F LDA $0FA8,x[$7E:11A8] $A7F72D CD D5 F4 CMP $F4D5 [$A7:F4D5] $A7F730 30 1A BMI $1A [$F74C] $A7F732 BD AA 0F LDA $0FAA,x[$7E:11AA] $A7F735 CD D7 F4 CMP $F4D7 [$A7:F4D7] $A7F738 30 12 BMI $12 [$F74C] $A7F73A AD D5 F4 LDA $F4D5 [$A7:F4D5] $A7F73D 9D A8 0F STA $0FA8,x[$7E:11A8] $A7F740 85 14 STA $14 [$7E:0014] $A7F742 AD D7 F4 LDA $F4D7 [$A7:F4D7] $A7F745 9D AA 0F STA $0FAA,x[$7E:11AA] $A7F748 85 12 STA $12 [$7E:0012] $A7F74A 80 3A BRA $3A [$F786] $A7F74C BD AA 0F LDA $0FAA,x[$7E:11AA] $A7F74F 18 CLC $A7F750 6D DB F4 ADC $F4DB [$A7:F4DB] $A7F753 9D AA 0F STA $0FAA,x[$7E:11AA] $A7F756 85 12 STA $12 [$7E:0012] $A7F758 BD A8 0F LDA $0FA8,x[$7E:11A8] $A7F75B 6D D9 F4 ADC $F4D9 [$A7:F4D9] $A7F75E 9D A8 0F STA $0FA8,x[$7E:11A8] $A7F761 85 14 STA $14 [$7E:0014] $A7F763 C9 04 00 CMP #$0004 $A7F766 D0 12 BNE $12 [$F77A] $A7F768 A5 12 LDA $12 [$7E:0012] $A7F76A C9 00 00 CMP #$0000 $A7F76D D0 17 BNE $17 [$F786] $A7F76F BD 92 0F LDA $0F92,x[$7E:1192] $A7F772 18 CLC $A7F773 69 1C 00 ADC #$001C $A7F776 9D 92 0F STA $0F92,x[$7E:1192] $A7F779 60 RTS $A7F77A C9 08 00 CMP #$0008 $A7F77D D0 07 BNE $07 [$F786] $A7F77F A5 12 LDA $12 [$7E:0012] $A7F781 C9 00 00 CMP #$0000 $A7F784 F0 E9 BEQ $E9 [$F76F] $A7F786 60 RTS $A7F787 db 45, F2, 65, F2, 85, F2, A5, F2 $A7F78F 20 0A F9 JSR $F90A [$A7:F90A] $A7F792 DE A8 0F DEC $0FA8,x[$7E:11A8] $A7F795 D0 6E BNE $6E [$F805] $A7F797 BD 92 0F LDA $0F92,x[$7E:1192] $A7F79A 1A INC A $A7F79B 1A INC A $A7F79C 9D 92 0F STA $0F92,x[$7E:1192] $A7F79F A9 01 00 LDA #$0001 $A7F7A2 9D 94 0F STA $0F94,x[$7E:1194] $A7F7A5 A9 06 F8 LDA #$F806 $A7F7A8 9D B2 0F STA $0FB2,x[$7E:11B2] $A7F7AB 9E E8 0F STZ $0FE8,x[$7E:11E8] $A7F7AE 9E EE 0F STZ $0FEE,x[$7E:11EE] $A7F7B1 9E 2E 10 STZ $102E,x[$7E:122E] $A7F7B4 9E 6E 10 STZ $106E,x[$7E:126E] $A7F7B7 9E AE 10 STZ $10AE,x[$7E:12AE] $A7F7BA 9E AC 0F STZ $0FAC,x[$7E:11AC] $A7F7BD 9E AE 0F STZ $0FAE,x[$7E:11AE] $A7F7C0 BD 7E 0F LDA $0F7E,x[$7E:117E] $A7F7C3 38 SEC $A7F7C4 E9 08 00 SBC #$0008 $A7F7C7 9D 7E 0F STA $0F7E,x[$7E:117E] $A7F7CA A9 3B 00 LDA #$003B $A7F7CD 22 CB 90 80 JSL $8090CB[$80:90CB] $A7F7D1 BD B4 0F LDA $0FB4,x[$7E:11B4] $A7F7D4 F0 11 BEQ $11 [$F7E7] $A7F7D6 A9 B9 F4 LDA #$F4B9 $A7F7D9 9D D2 0F STA $0FD2,x[$7E:11D2] $A7F7DC 9D 12 10 STA $1012,x[$7E:1212] $A7F7DF 9D 52 10 STA $1052,x[$7E:1252] $A7F7E2 9D 92 10 STA $1092,x[$7E:1292] $A7F7E5 80 0F BRA $0F [$F7F6] $A7F7F6 A9 01 00 LDA #$0001 $A7F7F9 9D D4 0F STA $0FD4,x[$7E:11D4] $A7F7FC 9D 14 10 STA $1014,x[$7E:1214] $A7F7FF 9D 54 10 STA $1054,x[$7E:1254] $A7F802 9D 94 10 STA $1094,x[$7E:1294] $A7F805 6B RTL $A7F806 20 0A F9 JSR $F90A [$A7:F90A] $A7F809 20 9A F8 JSR $F89A [$A7:F89A] $A7F80C BD AE 0F LDA $0FAE,x[$7E:11AE] $A7F80F 18 CLC $A7F810 6F 32 0B 00 ADC $000B32[$7E:0B32] $A7F814 9D AE 0F STA $0FAE,x[$7E:11AE] $A7F817 BD AC 0F LDA $0FAC,x[$7E:11AC] $A7F81A 6F 34 0B 00 ADC $000B34[$7E:0B34] $A7F81E 9D AC 0F STA $0FAC,x[$7E:11AC] $A7F821 BD AA 0F LDA $0FAA,x[$7E:11AA] $A7F824 18 CLC $A7F825 7D AE 0F ADC $0FAE,x[$7E:11AE] $A7F828 9D AA 0F STA $0FAA,x[$7E:11AA] $A7F82B 85 12 STA $12 [$7E:0012] $A7F82D BD A8 0F LDA $0FA8,x[$7E:11A8] $A7F830 7D AC 0F ADC $0FAC,x[$7E:11AC] $A7F833 9D A8 0F STA $0FA8,x[$7E:11A8] $A7F836 85 14 STA $14 [$7E:0014] $A7F838 C9 0F 00 CMP #$000F $A7F83B 30 05 BMI $05 [$F842] $A7F83D A9 0F 00 LDA #$000F $A7F840 85 14 STA $14 [$7E:0014] $A7F842 A5 14 LDA $14 [$7E:0014] $A7F844 49 FF FF EOR #$FFFF $A7F847 85 14 STA $14 [$7E:0014] $A7F849 A5 12 LDA $12 [$7E:0012] $A7F84B 49 FF FF EOR #$FFFF $A7F84E 1A INC A $A7F84F 85 12 STA $12 [$7E:0012] $A7F851 D0 02 BNE $02 [$F855] $A7F855 22 86 C7 A0 JSL $A0C786[$A0:C786] $A7F859 90 3E BCC $3E [$F899] $A7F85B BD B4 0F LDA $0FB4,x[$7E:11B4] $A7F85E D0 0E BNE $0E [$F86E] $A7F86E A9 FF F3 LDA #$F3FF $A7F871 9D 92 0F STA $0F92,x[$7E:1192] $A7F874 9E B4 0F STZ $0FB4,x[$7E:11B4] $A7F877 A9 35 F9 LDA #$F935 $A7F87A 9D B2 0F STA $0FB2,x[$7E:11B2] $A7F87D A9 01 00 LDA #$0001 $A7F880 9D 94 0F STA $0F94,x[$7E:1194] $A7F883 9E A8 0F STZ $0FA8,x[$7E:11A8] $A7F886 9E AA 0F STZ $0FAA,x[$7E:11AA] $A7F889 9E B0 0F STZ $0FB0,x[$7E:11B0] $A7F88C A0 25 F2 LDY #$F225 $A7F88F 20 35 F5 JSR $F535 [$A7:F535] $A7F892 A9 3C 00 LDA #$003C $A7F895 22 CB 90 80 JSL $8090CB[$80:90CB] $A7F899 6B RTL $A7F89A BD E8 0F LDA $0FE8,x[$7E:11E8] $A7F89D F0 05 BEQ $05 [$F8A4] $A7F89F 3A DEC A $A7F8A0 9D E8 0F STA $0FE8,x[$7E:11E8] $A7F8A3 60 RTS $A7F8A4 AD D1 F4 LDA $F4D1 [$A7:F4D1] $A7F8A7 9D E8 0F STA $0FE8,x[$7E:11E8] $A7F8AA BD EE 0F LDA $0FEE,x[$7E:11EE] $A7F8AD D0 13 BNE $13 [$F8C2] $A7F8AF BD 7A 0F LDA $0F7A,x[$7E:117A] $A7F8B2 9D BA 0F STA $0FBA,x[$7E:11BA] $A7F8B5 BD 7E 0F LDA $0F7E,x[$7E:117E] $A7F8B8 9D BE 0F STA $0FBE,x[$7E:11BE] $A7F8BB AD D3 F4 LDA $F4D3 [$A7:F4D3] $A7F8BE 9D EE 0F STA $0FEE,x[$7E:11EE] $A7F8C1 60 RTS $A7F8C2 BD 2E 10 LDA $102E,x[$7E:122E] $A7F8C5 D0 13 BNE $13 [$F8DA] $A7F8C7 BD 7A 0F LDA $0F7A,x[$7E:117A] $A7F8CA 9D FA 0F STA $0FFA,x[$7E:11FA] $A7F8CD BD 7E 0F LDA $0F7E,x[$7E:117E] $A7F8D0 9D FE 0F STA $0FFE,x[$7E:11FE] $A7F8D3 AD D3 F4 LDA $F4D3 [$A7:F4D3] $A7F8D6 9D 2E 10 STA $102E,x[$7E:122E] $A7F8D9 60 RTS $A7F8DA BD 6E 10 LDA $106E,x[$7E:126E] $A7F8DD D0 13 BNE $13 [$F8F2] $A7F8DF BD 7A 0F LDA $0F7A,x[$7E:117A] $A7F8E2 9D 3A 10 STA $103A,x[$7E:123A] $A7F8E5 BD 7E 0F LDA $0F7E,x[$7E:117E] $A7F8E8 9D 3E 10 STA $103E,x[$7E:123E] $A7F8EB AD D3 F4 LDA $F4D3 [$A7:F4D3] $A7F8EE 9D 6E 10 STA $106E,x[$7E:126E] $A7F8F1 60 RTS $A7F8F2 BD AE 10 LDA $10AE,x[$7E:12AE] $A7F8F5 D0 12 BNE $12 [$F909] $A7F8F7 BD 7A 0F LDA $0F7A,x[$7E:117A] $A7F8FA 9D 7A 10 STA $107A,x[$7E:127A] $A7F8FD BD 7E 0F LDA $0F7E,x[$7E:117E] $A7F900 9D 7E 10 STA $107E,x[$7E:127E] $A7F903 AD D3 F4 LDA $F4D3 [$A7:F4D3] $A7F906 9D AE 10 STA $10AE,x[$7E:12AE] $A7F909 60 RTS $A7F90A BD B0 0F LDA $0FB0,x[$7E:11B0] $A7F90D EB XBA $A7F90E 29 FF 00 AND #$00FF $A7F911 0A ASL A $A7F912 A8 TAY $A7F913 B9 2D F9 LDA $F92D,y[$A7:F92D] $A7F916 A8 TAY $A7F917 20 35 F5 JSR $F535 [$A7:F535] $A7F91A BD B0 0F LDA $0FB0,x[$7E:11B0] $A7F91D 18 CLC $A7F91E 69 00 01 ADC #$0100 $A7F921 9D B0 0F STA $0FB0,x[$7E:11B0] $A7F924 C9 00 04 CMP #$0400 $A7F927 30 03 BMI $03 [$F92C] $A7F929 9E B0 0F STZ $0FB0,x[$7E:11B0] $A7F92C 60 RTS $A7F92D db C5, F2, E5, F2, 05, F3, 25, F3 $A7F935 BD AA 0F LDA $0FAA,x[$7E:11AA] $A7F938 18 CLC $A7F939 6F 32 0B 00 ADC $000B32[$7E:0B32] $A7F93D 9D AA 0F STA $0FAA,x[$7E:11AA] $A7F940 85 12 STA $12 [$7E:0012] $A7F942 BD A8 0F LDA $0FA8,x[$7E:11A8] $A7F945 6F 34 0B 00 ADC $000B34[$7E:0B34] $A7F949 9D A8 0F STA $0FA8,x[$7E:11A8] $A7F94C 85 14 STA $14 [$7E:0014] $A7F94E C9 0A 00 CMP #$000A $A7F951 30 07 BMI $07 [$F95A] $A7F953 A9 0A 00 LDA #$000A $A7F956 85 14 STA $14 [$7E:0014] $A7F958 64 12 STZ $12 [$7E:0012] $A7F95A 22 86 C7 A0 JSL $A0C786[$A0:C786] $A7F95E 90 2B BCC $2B [$F98B] $A7F960 BD B4 0F LDA $0FB4,x[$7E:11B4] $A7F963 F0 0E BEQ $0E [$F973] $A7F973 A9 45 F3 LDA #$F345 $A7F976 9D 92 0F STA $0F92,x[$7E:1192] $A7F979 A9 ED F5 LDA #$F5ED $A7F97C 9D B2 0F STA $0FB2,x[$7E:11B2] $A7F97F A9 01 00 LDA #$0001 $A7F982 9D 94 0F STA $0F94,x[$7E:1194] $A7F985 9E A8 0F STZ $0FA8,x[$7E:11A8] $A7F988 9E AA 0F STZ $0FAA,x[$7E:11AA] $A7F98B 6B RTL $A7F98C BD AE 0F LDA $0FAE,x[$7E:11EE] $A7F98F F0 1C BEQ $1C [$F9AD] $A7F991 3A DEC A $A7F992 9D AE 0F STA $0FAE,x[$7E:11EE] $A7F995 8A TXA $A7F996 89 40 00 BIT #$0040 $A7F999 F0 0A BEQ $0A [$F9A5] $A7F99B AD B6 05 LDA $05B6 [$7E:05B6] $A7F99E 89 01 00 BIT #$0001 $A7F9A1 D0 15 BNE $15 [$F9B8] $A7F9A3 80 08 BRA $08 [$F9AD] $A7F9A5 AD B6 05 LDA $05B6 [$7E:05B6] $A7F9A8 89 01 00 BIT #$0001 $A7F9AB F0 0B BEQ $0B [$F9B8] $A7F9AD BD 86 0F LDA $0F86,x[$7E:11C6] $A7F9B0 09 00 01 ORA #$0100 $A7F9B3 9D 86 0F STA $0F86,x[$7E:11C6] $A7F9B6 80 09 BRA $09 [$F9C1] $A7F9B8 BD 86 0F LDA $0F86,x[$7E:11C6] $A7F9BB 29 FF FE AND #$FEFF $A7F9BE 9D 86 0F STA $0F86,x[$7E:11C6] $A7F9C1 6B RTL $A7F9C4 db 09, 00, F0, 01, F2, 10, 33, F8, C3, EA, 01, 33, 02, 00, F7, 1E, 33, FA, 01, F7, 0E, 33, F2, 01, 03, 1F, 33, F2, 01, FB, 0F, 33, F2, 01, 0F, 22, 33, FA, C3, 07, 13, 33, FA, C3, FF, 03, 33, 09, 00, EF, 01, F3, 10, 33, F7, C3, EB, 01, 33, 02, 00, F8, 5F, 33, FA, 01, F8, 5E, 33, F2, 01, 04, 1F, 33, F2, 01, FC, 0F, 33, FA, C3, 08, 16, 33, F2, 01, 08, 15, 33, FA, C3, 00, 06, 33, 0B, 00, EE, 01, F1, 10, 33, F6, C3, E9, 01, 33, EA, 01, 0E, 2D, 33, 02, 00, F6, 1E, 33, FA, 01, F6, 0E, 33, F2, 01, FA, 0F, 33, FA, C3, FE, 09, 33, F2, C3, FE, 08, 33, 0A, 00, 0E, 2B, 33, 0A, 00, 06, 1B, 33, F2, C3, 06, 18, 33, 09, 00, F0, 01, F2, 10, 33, F8, C3, EA, 01, 33, 02, 00, F7, 5F, 33, FA, 01, F7, 5E, 33, F2, 01, 0F, 52, 33, F2, 01, 03, 1F, 33, F2, 01, FB, 0F, 33, FA, C3, 07, 43, 33, FA, C3, FF, 33, 33, 09, 00, EF, 01, F3, 10, 33, F7, C3, EB, 01, 33, F4, 01, 10, 52, 33, F2, 01, 04, 1F, 33, F2, 01, FC, 0F, 33, 02, 00, F8, 1E, 33, FA, 01, F8, 0E, 33, FA, C3, 08, 46, 33, FA, C3, 00, 36, 33, 0B, 00, EE, 01, F1, 10, 33, F6, C3, E9, 01, 33, 02, 00, F6, 5F, 33, FA, 01, F6, 5E, 33, EA, 01, 0E, 5A, 33, F2, 01, FA, 0F, 33, FA, C3, FE, 39, 33, F2, C3, 06, 48, 33, 0A, 00, 06, 4B, 33, 0A, 00, 0E, 5B, 33, F2, C3, FE, 38, 33 $A7FCA3 db 09, 00, 08, 00, F2, 10, 73, F8, C3, EA, 01, 73, F6, 01, F7, 1E, 73, FE, 01, F7, 0E, 73, 06, 00, 03, 1F, 73, 06, 00, FB, 0F, 73, 06, 00, 0F, 22, 73, F6, C3, 07, 13, 73, F6, C3, FF, 03, 73, 09, 00, 09, 00, F3, 10, 73, F9, C3, EB, 01, 73, F6, 01, F8, 5F, 73, FE, 01, F8, 5E, 73, 06, 00, 04, 1F, 73, 06, 00, FC, 0F, 73, F6, C3, 08, 16, 73, 06, 00, 08, 15, 73, F6, C3, 00, 06, 73, 0B, 00, 0A, 00, F1, 10, 73, FA, C3, E9, 01, 73, 0E, 00, 0E, 2D, 73, F6, 01, F6, 1E, 73, FE, 01, F6, 0E, 73, 06, 00, FA, 0F, 73, F6, C3, FE, 09, 73, FE, C3, FE, 08, 73, EE, 01, 0E, 2B, 73, EE, 01, 06, 1B, 73, FE, C3, 06, 18, 73, 09, 00, 08, 00, F2, 10, 73, F8, C3, EA, 01, 73, F6, 01, F7, 5F, 73, FE, 01, F7, 5E, 73, 06, 00, 0F, 52, 73, 06, 00, 03, 1F, 73, 06, 00, FB, 0F, 73, F6, C3, 07, 43, 73, F6, C3, FF, 33, 73, 09, 00, 09, 00, F3, 10, 73, F9, C3, EB, 01, 73, 04, 00, 10, 52, 73, 06, 00, 04, 1F, 73, 06, 00, FC, 0F, 73, F6, 01, F8, 1E, 73, FE, 01, F8, 0E, 73, F6, C3, 08, 46, 73, F6, C3, 00, 36, 73, 0B, 00, 0A, 00, F1, 10, 73, FA, C3, E9, 01, 73, F6, 01, F6, 5F, 73, FE, 01, F6, 5E, 73, 0E, 00, 0E, 5A, 73, 06, 00, FA, 0F, 73, F6, C3, FE, 39, 73, FE, C3, 06, 48, 73, EE, 01, 06, 4B, 73, EE, 01, 0E, 5B, 73, FE, C3, FE, 38, 73, 08, 00, 02, 00, FD, 05, 73, 0B, 00, FD, 10, 73, FB, C3, F5, 01, 73, 05, 00, 08, 1F, 73, 05, 00, 00, 0F, 73, F5, 01, FD, 1E, 73, FD, 01, FD, 0E, 73, F5, C3, 05, 0C, 73, 0A, 00, F5, 01, F1, 1E, 73, FD, 01, F1, 0E, 73, 05, 00, FD, 1F, 73, 05, 00, F5, 0F, 73, F5, C3, F9, 3C, 73, FA, 01, DF, 41, B3, F2, C3, E7, 20, B3, F5, 01, 09, 5D, 73, FD, 01, 09, 50, 73, FD, 01, 11, 25, 73, 09, 00, 08, 00, F3, 10, 73, F8, C3, EB, 01, 73, 05, 00, 10, 51, 73, F5, 01, F8, 1E, 73, FD, 01, F8, 0E, 73, 05, 00, 04, 1F, 73, 05, 00, FC, 0F, 73, F5, C3, 08, 4C, 73, F5, C3, 00, 3C, 73, 0A, 00, FF, 01, F3, 40, 73, 08, 00, F3, 10, 73, F8, C3, EB, 01, 73, 05, 00, 10, 51, 73, F5, 01, F8, 1E, 73, FD, 01, F8, 0E, 73, 05, 00, 04, 1F, 73, 05, 00, FC, 0F, 73, F5, C3, 08, 4C, 73, F5, C3, 00, 3C, 73, 0A, 00, FF, 01, F3, 05, 73, 08, 00, F3, 10, 73, F8, C3, EB, 01, 73, 05, 00, 10, 51, 73, F5, 01, F8, 1E, 73, FD, 01, F8, 0E, 73, 05, 00, 04, 1F, 73, 05, 00, FC, 0F, 73, F5, C3, 08, 4C, 73, F5, C3, 00, 3C, 73