Code : Tout sélectionner
; This is a disassembly of the PIC dump provided in mame for Guilty Gear XX #Reload
; It was disassembled with PICDisasm, http://www.hagi-online.org/picmicro/picdisasm_en.html,
; then recompiled with Microchip MPLAB 8.66.00.00.
; When programmed with a Wellon VP-280 or pickit2 - it is confirmed working like the original PIC
; Differences between games are the answers to:
; AKEYCODE, BKEYCODE, FILENAME and AIJYOANSWER (net/non-net)
processor 16F628A
#include <P16F628A.INC>
__config 0x3FA2
; _CP_OFF & _DATA_CP_OFF & _LVP_ON & _BODEN_OFF & _MCLRE_ON & _PWRTE_ON & _WDT_OFF
; & _HS_OSC
; __idlocs 0xFF, 0xFF, 0xFF, 0xFF
; EEPROM-Data
Org 0x2100
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ; ........
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ; ........
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ; ........
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ; ........
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ; ........
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ; ........
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ; ........
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ; ........
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ; ........
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ; ........
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ; ........
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ; ........
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ; ........
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ; ........
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ; ........
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ; ........
; RAM-Variable
LRAM_0x0A equ 0x0A
LRAM_0x20 equ 0x20
LRAM_0x21 equ 0x21
LRAM_0x22 equ 0x22
LRAM_0x23 equ 0x23
LRAM_0x24 equ 0x24
LRAM_0x25 equ 0x25
LRAM_0x26 equ 0x26
LRAM_0x28 equ 0x28
LRAM_0x29 equ 0x29
LRAM_0x2A equ 0x2A
LRAM_0x2B equ 0x2B
LRAM_0x2C equ 0x2C
LRAM_0x35 equ 0x35
LRAM_0x3B equ 0x3B
LRAM_0x41 equ 0x41
LRAM_0x47 equ 0x47
LRAM_0x50 equ 0x50
LRAM_0x51 equ 0x51
LRAM_0x52 equ 0x52
LRAM_0x53 equ 0x53
LRAM_0x54 equ 0x54
LRAM_0x55 equ 0x55
LRAM_0x56 equ 0x56
LRAM_0x57 equ 0x57
LRAM_0x60 equ 0x60
LRAM_0x61 equ 0x61
LRAM_0x62 equ 0x62
LRAM_0x63 equ 0x63
LRAM_0x64 equ 0x64
LRAM_0x65 equ 0x65
LRAM_0x66 equ 0x66
LRAM_0x67 equ 0x67
; Program
Org 0x0000
; Reset-Vector
GOTO LADR_0x0005
NOP
NOP
NOP
; Interrupt-Vector
GOTO LADR_0x02AA
LADR_0x0005
CALL SETPINSHIGH
CALL LADR_0x0026
CALL LADR_0x0080
LADR_0x0008
CALL LADR_0x003A
CALL LADR_0x0048
CALL LADR_0x002F
CALL LADR_0x0058
CALL LADR_0x005B
CALL LADR_0x0278
CALL LADR_0x028C
CALL LADR_0x00E5
CALL CHECKQUESTION
CALL LADR_0x011D
CALL LADR_0x023E
CALL LADR_0x0252
CALL LADR_0x0091
CALL LADR_0x002F
CALL LADR_0x0133
CALL LADR_0x00B8
CALL LADR_0x02A9
SETPINSHIGH
CLRF PORTA ; !!Bank!! PORTA - TRISA - Unimplemented - Unimplemented
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVLW 0xFF ; b'11111111' d'255'
MOVWF PORTA ; !!Bank!! PORTA - TRISA - Unimplemented - Unimplemented
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CLRF PORTB ; !!Bank!! PORTB - TRISB - PORTB - TRISB
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVLW 0x5F ; b'01011111' d'095' "_"
MOVWF TMR0 ; !!Bank!! TMR0 - OPTION_REG - TMR0 - OPTION_REG
MOVLW 0xFF ; b'11111111' d'255'
MOVWF PORTB ; !!Bank!! PORTB - TRISB - PORTB - TRISB
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
RETURN
LADR_0x0026
MOVLW 0x5F ; b'01011111' d'095' "_"
MOVWF LRAM_0x20
MOVLW 0x21 ; b'00100001' d'033' "!"
MOVWF FSR
LADR_0x002A
CLRF INDF
INCF FSR,F
DECFSZ LRAM_0x20,F
GOTO LADR_0x002A
RETURN
LADR_0x002F
MOVLW 0x18 ; b'00011000' d'024'
MOVWF LRAM_0x21
MOVLW 0x30 ; b'00110000' d'048' "0"
MOVWF FSR
LADR_0x0033
MOVF INDF,W
ANDLW 0x07 ; b'00000111' d'007'
MOVWF INDF
INCF FSR,F
DECFSZ LRAM_0x21,F
GOTO LADR_0x0033
RETURN
LADR_0x003A
MOVLW 0x18 ; b'00011000' d'024'
MOVWF LRAM_0x20
MOVLW 0x30 ; b'00110000' d'048' "0"
MOVWF FSR
LADR_0x003E
BTFSC PORTB,3 ; !!Bank!! PORTB - TRISB - PORTB - TRISB
GOTO LADR_0x003E
LADR_0x0040
BTFSS PORTB,3 ; !!Bank!! PORTB - TRISB - PORTB - TRISB
GOTO LADR_0x0040
MOVF PORTB,W ; !!Bank!! PORTB - TRISB - PORTB - TRISB
MOVWF INDF
INCF FSR,F
DECFSZ LRAM_0x20,F
GOTO LADR_0x003E
RETURN
LADR_0x0048
MOVLW 0x08 ; b'00001000' d'008'
MOVWF LRAM_0x20
MOVLW 0x0E ; b'00001110' d'014'
MOVWF LRAM_0x21
MOVLW 0x32 ; b'00110010' d'050' "2"
MOVWF FSR
LADR_0x004E
BTFSC INDF,2
BSF LRAM_0x2C,0
BTFSC LRAM_0x21,3
RLF LRAM_0x2C,F
MOVLW 0x03 ; b'00000011' d'003'
ADDWF FSR,F
DECF LRAM_0x21,F
DECFSZ LRAM_0x20,F
GOTO LADR_0x004E
RETURN
LADR_0x0058
MOVF LRAM_0x60,W
MOVWF LRAM_0x26
RETURN
LADR_0x005B
MOVLW 0x08 ; b'00001000' d'008'
MOVWF LRAM_0x20
CLRF LRAM_0x21
CLRF LRAM_0x22
CLRF LRAM_0x23
LADR_0x0060
MOVLW 0x30 ; b'00110000' d'048' "0"
ADDWF LRAM_0x23,W
MOVWF FSR
MOVF INDF,W
MOVWF LRAM_0x28
INCF LRAM_0x23,F
INCF FSR,F
RLF INDF,F
RLF INDF,F
RLF INDF,F
MOVF INDF,W
ADDWF LRAM_0x28,F
INCF LRAM_0x23,F
INCF FSR,F
RLF INDF,F
RLF INDF,F
RLF INDF,F
RLF INDF,F
RLF INDF,F
RLF INDF,F
MOVF INDF,W
ADDWF LRAM_0x28,F
MOVLW 0x60 ; b'01100000' d'096' "`"
ADDWF LRAM_0x22,W
MOVWF FSR
MOVF LRAM_0x28,W
MOVWF INDF
INCF LRAM_0x23,F
INCF LRAM_0x22,F
DECFSZ LRAM_0x20,F
GOTO LADR_0x0060
RETURN
LADR_0x0080
MOVLW 0x10 ; b'00010000' d'016'
MOVWF LRAM_0x20
CLRF LRAM_0x21
LADR_0x0083
MOVF LRAM_0x21,W
BSF LRAM_0x0A,0
BSF LRAM_0x0A,1
CALL PICPASSWORD
MOVWF LRAM_0x28
MOVLW 0x50 ; b'01010000' d'080' "P"
ADDWF LRAM_0x21,W
MOVWF FSR
MOVF LRAM_0x28,W
MOVWF INDF
INCF LRAM_0x21,F
DECFSZ LRAM_0x20,F
GOTO LADR_0x0083
RETURN
LADR_0x0091
CLRF LRAM_0x20
MOVLW 0x08 ; b'00001000' d'008'
MOVWF LRAM_0x21
CLRF LRAM_0x22
LADR_0x0095
MOVLW 0x68 ; b'01101000' d'104' "h"
ADDWF LRAM_0x20,W
MOVWF FSR
MOVF INDF,W
MOVWF LRAM_0x28
MOVLW 0x30 ; b'00110000' d'048' "0"
ADDWF LRAM_0x22,W
MOVWF FSR
MOVF LRAM_0x28,W
MOVWF INDF
INCF LRAM_0x22,F
RRF LRAM_0x28,F
RRF LRAM_0x28,F
RRF LRAM_0x28,F
MOVF LRAM_0x28,W
MOVLW 0x30 ; b'00110000' d'048' "0"
ADDWF LRAM_0x22,W
MOVWF FSR
MOVF LRAM_0x28,W
MOVWF INDF
INCF LRAM_0x22,F
RRF LRAM_0x28,F
RRF LRAM_0x28,F
RRF LRAM_0x28,F
MOVF LRAM_0x28,W
MOVLW 0x30 ; b'00110000' d'048' "0"
ADDWF LRAM_0x22,W
MOVWF FSR
MOVF LRAM_0x28,W
MOVWF INDF
INCF LRAM_0x22,F
INCF LRAM_0x20,F
DECFSZ LRAM_0x21,F
GOTO LADR_0x0095
RETURN
LADR_0x00B8
CLRF LRAM_0x20
MOVLW 0x18 ; b'00011000' d'024'
MOVWF LRAM_0x21
CLRF PORTB ; !!Bank!! PORTB - TRISB - PORTB - TRISB
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVLW 0xF0 ; b'11110000' d'240'
MOVWF PORTB ; !!Bank!! PORTB - TRISB - PORTB - TRISB
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
LADR_0x00C0
MOVLW 0x30 ; b'00110000' d'048' "0"
ADDWF LRAM_0x20,W
MOVWF FSR
MOVF INDF,W
MOVWF PORTB ; !!Bank!! PORTB - TRISB - PORTB - TRISB
BSF INDF,3
MOVF INDF,W
NOP
NOP
NOP
NOP
NOP
NOP
NOP
MOVWF PORTB ; !!Bank!! PORTB - TRISB - PORTB - TRISB
INCF LRAM_0x20,F
DECFSZ LRAM_0x21,F
GOTO LADR_0x00C0
NOP
NOP
NOP
NOP
NOP
NOP
CLRF PORTB ; !!Bank!! PORTB - TRISB - PORTB - TRISB
NOP
NOP
NOP
NOP
NOP
NOP
NOP
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVLW 0xFF ; b'11111111' d'255'
MOVWF PORTB ; !!Bank!! PORTB - TRISB - PORTB - TRISB
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
RETURN
LADR_0x00E5
MOVLW 0x08 ; b'00001000' d'008'
MOVWF LRAM_0x21
MOVLW 0x0E ; b'00001110' d'014'
MOVWF LRAM_0x22
MOVLW 0x60 ; b'01100000' d'096' "`"
MOVWF FSR
CLRF LRAM_0x2B
LADR_0x00EC
MOVLW 0x09 ; b'00001001' d'009'
MOVWF LRAM_0x20
MOVF INDF,W
MOVWF LRAM_0x28
CLRF LRAM_0x2A
LADR_0x00F1
MOVF LRAM_0x28,W
XORWF LRAM_0x2A,F
RLF LRAM_0x28,F
DECFSZ LRAM_0x20,F
GOTO LADR_0x00F1
BTFSC LRAM_0x21,0
GOTO LADR_0x00F8
LADR_0x00F8
BTFSC LRAM_0x2A,7
BSF LRAM_0x2B,0
GOTO LADR_0x00FD
BTFSS LRAM_0x2A,7
BSF LRAM_0x2B,0
LADR_0x00FD
BTFSC LRAM_0x22,3
RLF LRAM_0x2B,F
INCF FSR,F
DECF LRAM_0x22,F
DECFSZ LRAM_0x21,F
GOTO LADR_0x00EC
RETURN
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVLW 0x0F ; b'00001111' d'015'
MOVWF PORTB ; !!Bank!! PORTB - TRISB - PORTB - TRISB
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVF LRAM_0x2B,W
MOVWF LRAM_0x28
RLF LRAM_0x28,F
RLF LRAM_0x28,F
RLF LRAM_0x28,F
RLF LRAM_0x28,F
MOVF LRAM_0x28,W
MOVWF PORTB ; !!Bank!! PORTB - TRISB - PORTB - TRISB
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVLW 0x0F ; b'00001111' d'015'
MOVWF PORTB ; !!Bank!! PORTB - TRISB - PORTB - TRISB
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVF LRAM_0x2B,W
MOVWF LRAM_0x28
RRF LRAM_0x28,F
RRF LRAM_0x28,F
RRF LRAM_0x28,F
RRF LRAM_0x28,F
MOVF LRAM_0x28,W
MOVWF PORTA ; !!Bank!! PORTA - TRISA - Unimplemented - Unimplemented
RETURN
LADR_0x011D
MOVLW 0x07 ; b'00000111' d'007'
MOVWF LRAM_0x21
MOVLW 0x68 ; b'01101000' d'104' "h"
MOVWF FSR
CLRF LRAM_0x2B
LADR_0x0122
MOVLW 0x09 ; b'00001001' d'009'
MOVWF LRAM_0x20
MOVF INDF,W
MOVWF LRAM_0x28
CLRF LRAM_0x2A
LADR_0x0127
MOVF LRAM_0x28,W
XORWF LRAM_0x2A,F
RLF LRAM_0x28,F
DECFSZ LRAM_0x20,F
GOTO LADR_0x0127
BTFSC LRAM_0x2A,0
BSF LRAM_0x2B,0
RLF LRAM_0x2B,F
INCF FSR,F
DECFSZ LRAM_0x21,F
GOTO LADR_0x0122
RETURN
LADR_0x0133
MOVLW 0x08 ; b'00001000' d'008'
MOVWF LRAM_0x20
MOVLW 0x47 ; b'01000111' d'071' "G"
MOVWF FSR
LADR_0x0137
BTFSC LRAM_0x2B,0
BSF INDF,2
RRF LRAM_0x2B,F
MOVLW 0x03 ; b'00000011' d'003'
SUBWF FSR,F
DECFSZ LRAM_0x20,F
GOTO LADR_0x0137
RETURN
MOVF LRAM_0x2C,W
XORWF LRAM_0x2B,W
ANDLW 0x3F ; b'00111111' d'063' "?"
BTFSS STATUS,Z
GOTO LADR_0x0145
RETURN
LADR_0x0145
GOTO LADR_0x0145
CHECKQUESTION
MOVLW 0x07 ; b'00000111' d'007'
MOVWF LRAM_0x20
CLRF LRAM_0x21
CLRF LRAM_0x29
MOVF LRAM_0x60,W
XORLW 0x21 ; b'00100001' d'033' "!"
BTFSC STATUS,Z
GOTO LADR_0x0192
MOVF LRAM_0x60,W
XORLW 0x22 ; b'00100010' d'034' """
BTFSC STATUS,Z
GOTO LADR_0x0192
MOVF LRAM_0x60,W
XORLW 0x23 ; b'00100011' d'035' "#"
BTFSC STATUS,Z
GOTO LADR_0x0192
MOVF LRAM_0x60,W
XORLW 0x41 ; b'01000001' d'065' "A"
BTFSC STATUS,Z
GOTO LADR_0x0184
MOVLW 0x07 ; b'00000111' d'007'
ADDWF LRAM_0x21,F
MOVF LRAM_0x60,W
XORLW 0x42 ; b'01000010' d'066' "B"
BTFSC STATUS,Z
GOTO LADR_0x0184
MOVLW 0x07 ; b'00000111' d'007'
ADDWF LRAM_0x21,F
MOVF LRAM_0x60,W
XORLW 0x43 ; b'01000011' d'067' "C"
BTFSC STATUS,Z
GOTO LADR_0x0184
MOVLW 0x07 ; b'00000111' d'007'
ADDWF LRAM_0x21,F
MOVF LRAM_0x60,W
XORLW 0x44 ; b'01000100' d'068' "D"
BTFSC STATUS,Z
GOTO LADR_0x0184
MOVLW 0x07 ; b'00000111' d'007'
ADDWF LRAM_0x21,F
MOVF LRAM_0x60,W
XORLW 0x61 ; b'01100001' d'097' "a"
BTFSC STATUS,Z
GOTO LADR_0x0184
MOVLW 0x07 ; b'00000111' d'007'
ADDWF LRAM_0x21,F
MOVF LRAM_0x60,W
XORLW 0x62 ; b'01100010' d'098' "b"
BTFSC STATUS,Z
GOTO LADR_0x0184
MOVLW 0x07 ; b'00000111' d'007'
ADDWF LRAM_0x21,F
MOVF LRAM_0x60,W
XORLW 0x66 ; b'01100110' d'102' "f"
BTFSC STATUS,Z
GOTO LADR_0x0184
MOVLW 0x07 ; b'00000111' d'007'
ADDWF LRAM_0x21,F
MOVF LRAM_0x60,W
XORLW 0x6B ; b'01101011' d'107' "k"
BTFSC STATUS,Z
GOTO LADR_0x0184
LADR_0x0184
BSF LRAM_0x0A,0
BSF LRAM_0x0A,1
MOVLW 0x61 ; b'01100001' d'097' "a"
MOVWF FSR
LADR_0x0188
MOVF LRAM_0x21,W
CALL QUESTIONS
XORWF INDF,W
BTFSS STATUS,Z
GOTO LADR_0x0195
INCF FSR,F
INCF LRAM_0x21,F
DECF LRAM_0x20,F
BTFSS STATUS,Z
GOTO LADR_0x0188
LADR_0x0192
MOVF LRAM_0x60,W
MOVWF LRAM_0x29
GOTO LADR_0x0195
LADR_0x0195
MOVLW 0x08 ; b'00001000' d'008'
MOVWF LRAM_0x20
CLRF LRAM_0x21
LADR_0x0198
MOVF LRAM_0x29,W
XORLW 0x21 ; b'00100001' d'033' "!"
BTFSS STATUS,Z
GOTO LADR_0x01A7
MOVLW 0x50 ; b'01010000' d'080' "P"
MOVWF LRAM_0x25
MOVLW 0x07 ; b'00000111' d'007'
MOVWF LRAM_0x23
BTFSC LRAM_0x20,3
CALL LADR_0x022B
BSF LRAM_0x0A,0
BSF LRAM_0x0A,1
MOVF LRAM_0x21,W
CALL ANSWER1
GOTO LADR_0x0221
LADR_0x01A7
MOVF LRAM_0x29,W
XORLW 0x22 ; b'00100010' d'034' """
BTFSS STATUS,Z
GOTO LADR_0x01B6
MOVLW 0x57 ; b'01010111' d'087' "W"
MOVWF LRAM_0x25
MOVLW 0x07 ; b'00000111' d'007'
MOVWF LRAM_0x23
BTFSC LRAM_0x20,3
CALL LADR_0x022B
BSF LRAM_0x0A,0
BSF LRAM_0x0A,1
MOVF LRAM_0x21,W
CALL ANSWER2
GOTO LADR_0x0221
LADR_0x01B6
MOVF LRAM_0x29,W
XORLW 0x23 ; b'00100011' d'035' "#"
BTFSS STATUS,Z
GOTO LADR_0x01C5
MOVLW 0x5E ; b'01011110' d'094' "^"
MOVWF LRAM_0x25
MOVLW 0x02 ; b'00000010' d'002'
MOVWF LRAM_0x23
BTFSC LRAM_0x20,3
CALL LADR_0x022B
BSF LRAM_0x0A,0
BSF LRAM_0x0A,1
MOVF LRAM_0x21,W
CALL ANSWER3
GOTO LADR_0x0221
LADR_0x01C5
MOVF LRAM_0x29,W
XORLW 0x41 ; b'01000001' d'065' "A"
BTFSS STATUS,Z
GOTO LADR_0x01CE
BSF LRAM_0x0A,0
BSF LRAM_0x0A,1
MOVF LRAM_0x21,W
CALL AKEYCODE
GOTO LADR_0x0221
LADR_0x01CE
MOVF LRAM_0x29,W
XORLW 0x42 ; b'01000010' d'066' "B"
BTFSS STATUS,Z
GOTO LADR_0x01D7
BSF LRAM_0x0A,0
BSF LRAM_0x0A,1
MOVF LRAM_0x21,W
CALL BKEYCODE
GOTO LADR_0x0221
LADR_0x01D7
MOVF LRAM_0x29,W
XORLW 0x43 ; b'01000011' d'067' "C"
BTFSS STATUS,Z
GOTO LADR_0x01E0
BSF LRAM_0x0A,0
BSF LRAM_0x0A,1
MOVF LRAM_0x21,W
CALL FILENAME
GOTO LADR_0x0221
LADR_0x01E0
MOVF LRAM_0x29,W
XORLW 0x44 ; b'01000100' d'068' "D"
BTFSS STATUS,Z
GOTO LADR_0x01E9
BSF LRAM_0x0A,0
BSF LRAM_0x0A,1
MOVF LRAM_0x21,W
CALL LADR_0x03EE
GOTO LADR_0x0221
LADR_0x01E9
MOVF LRAM_0x29,W
XORLW 0x61 ; b'01100001' d'097' "a"
BTFSS STATUS,Z
GOTO LADR_0x01F2
BSF LRAM_0x0A,0
BSF LRAM_0x0A,1
MOVF LRAM_0x21,W
CALL KEEPALIVEANSWER
GOTO LADR_0x0221
LADR_0x01F2
MOVF LRAM_0x29,W
XORLW 0x62 ; b'01100010' d'098' "b"
BTFSS STATUS,Z
GOTO LADR_0x01FB
BSF LRAM_0x0A,0
BSF LRAM_0x0A,1
MOVF LRAM_0x21,W
CALL SECVERANSWER
GOTO LADR_0x0221
LADR_0x01FB
MOVF LRAM_0x29,W
XORLW 0x66 ; b'01100110' d'102' "f"
BTFSS STATUS,Z
GOTO LADR_0x0204
BSF LRAM_0x0A,0
BSF LRAM_0x0A,1
MOVF LRAM_0x21,W
CALL ANSWER4
GOTO LADR_0x0221
LADR_0x0204
MOVF LRAM_0x29,W
XORLW 0x6B ; b'01101011' d'107' "k"
BTFSS STATUS,Z
GOTO LADR_0x020D
BSF LRAM_0x0A,0
BSF LRAM_0x0A,1
MOVF LRAM_0x21,W
CALL AIJYOANSWER
GOTO LADR_0x0221
LADR_0x020D
BSF LRAM_0x0A,0
BSF LRAM_0x0A,1
MOVF LRAM_0x21,W
CALL LADR_0x0378
MOVF LRAM_0x60,W
MOVWF LRAM_0x57
MOVF LRAM_0x61,W
MOVWF LRAM_0x55
MOVF LRAM_0x62,W
MOVWF LRAM_0x53
MOVF LRAM_0x63,W
MOVWF LRAM_0x51
MOVF LRAM_0x64,W
MOVWF LRAM_0x56
MOVF LRAM_0x65,W
MOVWF LRAM_0x54
MOVF LRAM_0x66,W
MOVWF LRAM_0x52
MOVF LRAM_0x67,W
MOVWF LRAM_0x50
LADR_0x0221
MOVWF LRAM_0x28
MOVLW 0x68 ; b'01101000' d'104' "h"
ADDWF LRAM_0x21,W
MOVWF FSR
MOVF LRAM_0x28,W
MOVWF INDF
INCF LRAM_0x21,F
DECFSZ LRAM_0x20,F
GOTO LADR_0x0198
RETURN
LADR_0x022B
MOVLW 0x61 ; b'01100001' d'097' "a"
MOVWF LRAM_0x24
LADR_0x022D
MOVWF FSR
MOVWF LRAM_0x22
MOVF INDF,W
MOVWF LRAM_0x28
MOVF LRAM_0x25,W
MOVWF FSR
MOVF LRAM_0x28,W
MOVWF INDF
MOVF LRAM_0x22,W
MOVWF FSR
MOVLW 0x01 ; b'00000001' d'001'
ADDWF LRAM_0x25,F
INCF FSR,W
INCF LRAM_0x24,F
DECFSZ LRAM_0x23,F
GOTO LADR_0x022D
RETURN
LADR_0x023E
MOVLW 0x08 ; b'00001000' d'008'
MOVWF LRAM_0x20
MOVLW 0x68 ; b'01101000' d'104' "h"
MOVWF LRAM_0x21
MOVLW 0x58 ; b'01011000' d'088' "X"
MOVWF LRAM_0x22
LADR_0x0244
MOVF LRAM_0x22,W
MOVWF FSR
MOVF INDF,W
MOVWF LRAM_0x28
MOVF LRAM_0x21,W
MOVWF FSR
MOVF LRAM_0x28,W
XORWF INDF,F
INCF LRAM_0x21,F
INCF LRAM_0x22,F
DECF LRAM_0x20,F
BTFSS STATUS,Z
GOTO LADR_0x0244
RETURN
LADR_0x0252
MOVF LRAM_0x29,W
XORLW 0x66 ; b'01100110' d'102' "f"
BTFSC STATUS,Z
GOTO LADR_0x0269
MOVLW 0x08 ; b'00001000' d'008'
MOVWF LRAM_0x20
MOVLW 0x68 ; b'01101000' d'104' "h"
MOVWF LRAM_0x21
MOVLW 0x50 ; b'01010000' d'080' "P"
MOVWF LRAM_0x22
LADR_0x025C
MOVF LRAM_0x22,W
MOVWF FSR
MOVF INDF,W
MOVWF LRAM_0x28
MOVF LRAM_0x21,W
MOVWF FSR
MOVF LRAM_0x28,W
ADDWF INDF,F
INCF LRAM_0x21,F
INCF LRAM_0x22,F
DECF LRAM_0x20,F
BTFSS STATUS,Z
GOTO LADR_0x025C
LADR_0x0269
RETURN
MOVF LRAM_0x22,W
MOVWF FSR
MOVF INDF,W
MOVWF LRAM_0x28
MOVF LRAM_0x21,W
MOVWF FSR
MOVF LRAM_0x28,W
SUBWF INDF,F
INCF LRAM_0x21,F
INCF LRAM_0x22,F
DECF LRAM_0x20,F
BTFSS STATUS,Z
GOTO LADR_0x025C
RETURN
LADR_0x0278
MOVLW 0x08 ; b'00001000' d'008'
MOVWF LRAM_0x20
MOVLW 0x60 ; b'01100000' d'096' "`"
MOVWF LRAM_0x21
MOVLW 0x50 ; b'01010000' d'080' "P"
MOVWF LRAM_0x22
LADR_0x027E
MOVF LRAM_0x22,W
MOVWF FSR
MOVF INDF,W
MOVWF LRAM_0x28
MOVF LRAM_0x21,W
MOVWF FSR
MOVF LRAM_0x28,W
SUBWF INDF,F
INCF LRAM_0x21,F
INCF LRAM_0x22,F
DECF LRAM_0x20,F
BTFSS STATUS,Z
GOTO LADR_0x027E
RETURN
LADR_0x028C
MOVLW 0x08 ; b'00001000' d'008'
MOVWF LRAM_0x20
MOVLW 0x60 ; b'01100000' d'096' "`"
MOVWF LRAM_0x21
MOVLW 0x58 ; b'01011000' d'088' "X"
MOVWF LRAM_0x22
LADR_0x0292
MOVF LRAM_0x22,W
MOVWF FSR
MOVF INDF,W
MOVWF LRAM_0x28
MOVF LRAM_0x21,W
MOVWF FSR
MOVF LRAM_0x28,W
XORWF INDF,F
INCF LRAM_0x21,F
INCF LRAM_0x22,F
DECF LRAM_0x20,F
BTFSS STATUS,Z
GOTO LADR_0x0292
RETURN
MOVLW 0x04 ; b'00000100' d'004'
MOVWF LRAM_0x35
MOVLW 0x04 ; b'00000100' d'004'
MOVWF LRAM_0x3B
MOVLW 0x04 ; b'00000100' d'004'
MOVWF LRAM_0x41
MOVLW 0x04 ; b'00000100' d'004'
MOVWF LRAM_0x47
RETURN
LADR_0x02A9
GOTO LADR_0x0008
LADR_0x02AA
RETFIE
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
QUESTIONS
ADDWF PCL,F ; !!Program-Counter-Modification
DT "KEYCODE"
DT "keycode"
DT "1strdf0"
DT "1strdf1"
DT "testpic"
DT "sec_ver"
DT "NaomiGD"
DT "aijyo!?"
ANSWER1
ADDWF PCL,F ; !!Program-Counter-Modification
DT "0DIMMID0"
ANSWER2
ADDWF PCL,F ; !!Program-Counter-Modification
DT "1DIMMID1"
ANSWER3
ADDWF PCL,F ; !!Program-Counter-Modification
DT "2DIMMID2"
KEEPALIVEANSWER
ADDWF PCL,F ; !!Program-Counter-Modification
DT "7TEST_OK"
SECVERANSWER
ADDWF PCL,F ; !!Program-Counter-Modification
DT "8VER0001"
ANSWER4
ADDWF PCL,F ; !!Program-Counter-Modification
DT "?HereIam"
AIJYOANSWER
ADDWF PCL,F ; !!Program-Counter-Modification
DT 0x3A,0x70,0x1F,0x71,0x1F,0x00,0x00,0x00
; DT 0x3A,0x70,0x1F,0x71,0x1F,0x00,0x00,0x01
LADR_0x0378
ADDWF PCL,F ; !!Program-Counter-Modification
DT "ZERROR00"
PICPASSWORD
ADDWF PCL,F ; !!Program-Counter-Modification
DT "NAOMIGDROMSYSTEM"
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
AKEYCODE
ADDWF PCL,F ; !!Program-Counter-Modification
; DT 0x33,0x3E,0xE9, 0x23,0x54,0xDC,0x68,0x64 ; First 8 bytes part of DES key
DT 0x33,0x00,0x00, 0x00,0x00,0x00,0x00,0x00
NOP
NOP
NOP
NOP
NOP
NOP
NOP
BKEYCODE
ADDWF PCL,F ; !!Program-Counter-Modification
; DT 0x34,0x2F ; Last 2 bytes of DES key
DT 0x34,0x00
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
FILENAME
ADDWF PCL,F ; !!Program-Counter-Modification
; DT "5BGB.BIN"
DT "5ABC.BIN"
NOP
NOP
NOP
NOP
NOP
NOP
NOP
LADR_0x03EE
ADDWF PCL,F ; !!Program-Counter-Modification
RETLW 0x36 ; b'00110110' d'054' "6"
RETLW 0x00 ; b'00000000' d'000'
RETLW 0x00 ; b'00000000' d'000'
RETLW 0x00 ; b'00000000' d'000'
RETLW 0x00 ; b'00000000' d'000'
RETLW 0x00 ; b'00000000' d'000'
RETLW 0x00 ; b'00000000' d'000'
RETLW 0x00 ; b'00000000' d'000'
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
End