Tom and Jerry 3

An unlicensed platformer, with Tom and Jerry.

Uncompiled Source Code
Beginning at and continuing until the end of the ROM, there is a good amount of code. LDA	MOTION,X AND	#$7F STA	MOTION,X LDA	#FFH STA	BGMeetFlag LDA		#Act0009PosProc4 STA		SNAPPOS_PROC+1 ?EXIT9 RTS PLAY_MUSIÿÿ MUSIC_NUM

JSR	CONMB_MUSIC_INIT_CHECK RTS ÿÿ     C000H _ResetKeyEntry1 	DS	3 CheckBGMeet1:		DS	3 SET_SPRMEET_F1		DS	3 SET_ACT00_WEAPON	DS	3 SET_ACT01_WEAPON	DS	3 _ResetKeyEntry		DS	3 SETÿÿPR   _F		DS	3 CheckBGMeet:		DS	3		;8

SET_SCATHE		DS	3		;9 LOST_LIFE		DS	3		;10 DOWN_SCROLL		DS	3		;11

GET_RANDOM1		DS	3		;12 GET_RANDOM2		Dÿÿ3 CONMB_MUSIC_INIT_CHECK	DS	3		;14 END �-- ACTProc#0013: LDA		#Act0101InitPÿÿc STA		SNAPINIT_PROC+1 LDA		#Act0013EndProc STA		SNAPEND_ÿÿOC   			LDA		#Act0010IncProc STA		SNAPINC_PROC+1 JMP		GetNexÿÿna   ct0013EndProc LDA	#D5H STA	MOTION+1,X JSR	_ResetKeyEntry LDA		MOTION+2,X AND		#$C0 STA		MOTION+2,X ÿÿ		   		 #$BF LDA		MOTION,X AND		#$7F STA		MOTION,X JSR		GetFrameAddress JSR		SetSnapPos RTS ACTProc#0014: LDA		#Act0012EndProc ÿÿTA   APEND_PROC+1 LDA		#Act0012IncProc STA		SNAPINC_PROC+1 ÿÿ	J   GetNextSnap ACTProc#0015: LDA		#Act0101InitProc STA		SNAPINIT_PROC+1 LDA		#Act0015IncProc STA		SNAPINC_PROC+1 JMP		GetNextSnap Act0015IncProc: LDA	MOTION AND	#40H BNE	?S1_5 LDA	SPRITE CLC ADC	#5ÿÿ	S   PRITE_X LDA	SPRITE+1 ADC	#0 STA	SPRITE_X+1 JMP	?A1_8 ?S1_5 LDA	SPRITE SEC SBC	#5 STA	SPRITE_X LDA	SPRITE+1 SBC	#0 STA	SPRÿÿE_ ?A1_8 LDA		SPRITE+2 CLC ADC		#8 STA		SPRITE_Y LDA		SPRITE+3 ADC		#0 STA		SPRITE_Y+1 LDA	SPRITE_Y CMP	#240 BCCÿÿC1   EC	SBC	#240 STA	SPRITE_Y INC	SPRITE_Y+1 ?C1 LDA		#$92 JSR		CheckBGMeet
 * ORG	 F300H
 * INCLUDE SPRITE.ASM
 * INCLUDE SPRITE.ASM
 * ================ÿÿ==   ===================
 * LDA		 MOTION+5,X
 * STA		 MOTION+5,X
 * ÿÿ--   -

JSR	SET_SPRMEET_F

LDA		BGMeetFlag AND		#10H ÿÿBN   ROC_D LDA		BGMeetFlag AND		#02H BNE	?PROC_E JMP	?PROC_F ?PROC_D LDA	#$CB STA	MOTION+1,X JSR	_ResetKeyEntry

LDA	MOTION+2,Xÿÿ	A   $C0 STA	MOTION+2,X LDA	MOTION,X AND	#$7F STA	MOTION,X LDA		#Act0015PosProc1 STA		SNAPPOS_PROC+1 JMP	?EXIT0F ?PROC_E LDA	#$C0 STA	MOTION+1,X JSR	_ResetKeyEntrÿÿ
 * LDA	 #0
 * STA	 MOTION+5,X

A	MOTION+2,X AND	#$C0 STA	MOTION+2,X LDA	MOTION,X AND	#$7F STA	MOTION,X LDA		#Act0015PosProc2 STA		SNAPPOS_PROC+1 JMP	?EXIT0F
 * LDA	 #0
 * STA	 MOTION+5,X

?PROC_F LDA		BGMeetFlag Aÿÿ BEQ	?PROC_G LDA	BG_CONTROL22 AND	#40H BEQ	?PROC_G

LDA	#$D2 STA	MOTION+1,X JSR	_ResetKeyEntry

LDA	MOTION+2,X AND	#$C0 STÿÿMO   +2,X LDA	MOTION,X AND	#$7F STA	MOTION,X LDA		#Act0015PosProc2 STA		SNAPPOS_PROC+1 JMP	?EXIT0F
 * LDA	 #0
 * STA	 MOTION+5,X

?PROC_G LDA		#Act0015PosProc1 STA		SNAPPOS_PROC+1 ?EXIT0F RTS

Act0015PosProc2 LDA		BG_SUPPORT+0 STA		SPRITE+2 LDAÿÿBG   PORT+1 STA		SPRITE+3

Act0015PosProc22 LDA	MOTION AND	#40H BNE	?S1_5 LDA	SPRITE CLC ADC	#5 STA	SPRITE LDA	SPRITE+1 ADC	#ÿÿ SPRITE+1 JMP	?A1_8 ?S1_5 LDA	SPRITE SEC SBC	#5 STA	SPRITE LDA	SPRITE+1 SBC	#0 STA	SPRITE+1 ?A1_8 RTS

Act0015PosProc1 ÿÿA	   ITE+2 CLC ADC		#8 STA		SPRITE+2 LDA		SPRITE+3 ADC		#0 STA		SPRITE+3 JMP	Act0015PosProc22 ACTProc#0016: ACTProc#0017: LDA		#Act0000InitProc STA		SNAPINIT_ÿÿOC   			LDA		#Act0016IncProc STA		SNAPINC_PROC+1 JMP		GetNexÿÿna Act0016IncProc: JSR	GET_SPRITE_XY
 * ---ÿÿ--   --

JSR	SET_SPRMEET_F

JSR		DefaultIncProc

LDA	SPRMeetFlag1 BEQ	?EXIT

LDA	#$C0 STA	MOTIONÿÿ,X   SR	_ResetKeyEntry

LDA	MOTION+2,X AND	#$C0 STA	MOTION+2,X LDA	MOTION,X AND	#$7Fÿÿ	S   OTION,X ?EXIT RTS ACTProc#00ÿÿ: LDA		#Act0001InitProc STA		SNAPINIT_PROC+1 LDA		#Act0018EndProc STA		SNAPEND_PROC+1 JMP		GetNextSnap
 * LDA	 MOTION+5,X
 * AND	 #$BF
 * STA	 MOTION+5,X

Act0018EndPrÿÿ DA		MOTION+2,X AND		#$C0 STA		MOTION+2,X LDA		MOTION+5,X AND		#$BF STA		MOTION+5,X LDA		MOTION,X AND		#$7F STÿÿ	M   N,X JSR		GetFrameAddress JSR		SetSnapPos RTS ACTProc#0019: LDA		#<Act00ÿÿIn   oc			STA		SNAPINIT_PROC LDA            #>Act0001InitProc STA		SNAPINIT_PROC+1 LDA		#<Act0018EndProc STA	ÿÿNA   _PROC LDA            #>Act0018EndProc STA		SNAPEND_PROC+1 JMP		GetNextSnap ACTProc#001A: LDA		#<Act0001InitProc STA		SNAPINIT_PROC
 * -ÿÿ--