Outils pour utilisateurs

Outils du site


back2root:reverse-engineering:planet-x3:part3-partial-reveal-code

Partially revealed early code

Lors de sa video Planet X3 Status Update - Part 3, David, The8bitGuy, a présenter une petite partie du code du jeu; j'ai reproduit ici cette partie :

[snip]
	JE	>L3
	CALL	Draw_Unit_Working
	RET
 
L3:	MOV	AL,Unit_Type[SI]
	CMP	AL,1			; builder
	JNE	>L5
	CALL	Draw_Status_Builder
	RET
 
L5:	CMP	AL,22			; power station
	JNE	>L6
	CALL	Draw_Status_Power_Station
	RET
 
L6:	CMP	AL,23			; Solar Panel
	JNE	>L7
	CALL	Draw_Status_Solar_Panel
	RET
 
L7:	CMP	AL,26			; Missile Silo
	JNE	>L8
	CALL	Draw_Status_Missile_Silo
	RET
 
L8:	CMP	AL,20			; headQuarters
	JNE	>L9
	CALL	Draw_Status_HeadQuarters
	RET
 
L9:	CMP	AL,27
	JNE	>L10
	CALL	Draw_Status_Smelter
	RET
 
L10:	RET
 
Draw_Status_Smelter:
	MOV	AL,Selected_Unit
	MOV	AL,0
	MOV	SI,AX
	CMP	Unit_AL[SI],8
	JNE	>L2
	MOV	SI,OFFSET Text_Smelter1
	MOV	DI,7552
	CALL	Write_Text
	MOV	SI,OFFSET Text_Smelter2
	MOV	DI,7790
	CALL	Write_Text
L2:	RET
 
Draw_Status_HeadQuarters:
	MOV	SI,OFFSET Text_ComCen1
	MOV	DI,7550
	CALL	Write_Text
	MOV	SI,OFFSET Text_ComCen2
	MOV	DI,7790
	CALL	Write_Text
 
	; Display Number of unit
	MOV	AL,Unit_Count_PlUnits
	MOV	HexNum,AL
	MOV	DI,7568
	CALL	Write_DecNum
 
	; Display Number of Buildings
	MOV	AL,Unit_Count_PlBldg
	MOV	HexNum,AL
	CALL	Write_DecNum
	RET
 
Draw_Status_Missile_Silo:
	MOV	SI,OFFSET Text_Missile6
	MOV	DI,7550
	CALL	Write_Text
	MOV	SI,OFFSET Text_Missile7
	MOV	DI,7790	
	CALL	Write_Text
 
	; Find Target X Cordinate
	MOV	AL,Selected_Unit
	MOV	AH,0
	MOV	SI,AX
	MOV	AL,Unit_Dest_X[SI]
	MOV	HexNum,AL
	MOV	DI,7794
	CALL	Write_DecNum
 
	; Find Target Y Cordinate
	MOV	AL,Selected_Unit
	MOV	AH,0
	MOV	SI,AX
	MOV	AL,Unit_Dest_Y[SI]
	MOV	HexNum,AL
	MOV	DI,7806
	CALL	Write_DecNum
 
	; Check if Armed
	MOV	AL,Selected_Unit
	MOV	AH,0
	MOV	SI,AX
	CMP	Unit_Gen_A[SI],0
	JE	>L1
	MOV	DI,7318
	MOV	SI,OFFSET Text_Missile8
	CALL	Write_Text
L1:	RET
 
Draw_Status_Solar_Panel:
	MOV	AL,Unit_Gen_A[SI]
	CMP	AL,0
	JE	>L1
	MOV	HexNum,AL
	MOV	DI,7804
	CALL	Write_DecNum
	MOV	SI,OFFSET Text_ConPanel3
	MOV	SI,7550
	CALL	Write_Text
	MOV	SI,OFFSET Text_ConPanel4
	MOV	DI,7790
	CALL	Write_Text
	RET
 
L1:	; Not Connected
	MOV	SI,OFFSET Text_ConPanel5
	MOV	DI,7550
	CALL	Write_Text
	MOV	SI,OFFSET Text_ConPanel6
	MOV	DI,7790
	CALL	Write_Text
	RET
 
Draw_Status_Power_Station:
	MOV	AL,Unit_Gen_A[SI]
	MOV	HexNum,AL
	MOV	DI,7804
	CALL	Write_DecNum
	MOV	SI,OFFSET Text_ConPanel1
	MOV	DI,7550
	CALL	Write_Text
	MOV	SI,OFFSET Text_ConPanel2
	MOV	DI,7790
	CALL	Write_Text
	RET
 
Draw_Status_Builder:
	MOV	AL,Unit_Gen_C[SI]
	MOV	Temp_A,AL
	CMP	AL,0
	JE	>L5
	MOV	SI,OFFSET Text_Carrying
	MOV	DI,7550
	CALL	Write_Text
	MOV	DI,7328
	CALL	UnplotCursorSkip
L5:	RET
 
Draw_Status_Browse:
	MOV	DI,6590
	MOV	SI,OFFSET Text_BrowseMode
	CALL	Write_Text
	MOV	DI,7550
	CALL	Write_Title_Name
	MOV	DI,6840
	MOV	AL,Selected_Tile
	MOV	Temp_A,AL
	CALL	UnplotCursorSkip
	RET
 
Draw_Command_Window:
	CALL	Clear_Command_Window
	MOV	AL,Selected_Unit
	MOV	AH,0
	MOV	SI,AX
	CMP	Unit_Type[SI],0		; is unit Dead?
	JNE	>B0
	RET
B0:
[snip]
back2root/reverse-engineering/planet-x3/part3-partial-reveal-code.txt · Dernière modification : 2023/01/17 09:11 de frater