What's new

idc

Enthusiast
Joined
Jun 14, 2015
Messages
141
Reaction score
257
Location
UK
Just going to leave this here. It's good for PIC16F628A chips.

Code:
; NAOMI/Triforce/Chihiro Netboot Security PIC v2.2
; invzim, idc/Team Avalaunch and others.

; Differences between games are the answers to:
;         AIJYOANSWER (net/non-net), AKEYCODE, BKEYCODE, FIRSTREADFILE0
;   Line: 937,                       992,      1003,     1015

    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_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
    MOVLW 0x07           ;   b'00000111'  d'007'
    MOVWF CMCON          ; !!Bank!! CMCON - VRCON - Unimplemented - Unimplemented
    NOP
    GOTO LADR_0x0005     ; !!Bank!! 0x0005 - 0x0805
;   Interrupt-Vector
    GOTO LADR_0x02AA     ; !!Bank!! 0x02AA - 0x0AAA
LADR_0x0005
    CALL SETPINSHIGH     ; !!Bank!! 0x0019 - 0x0819
    CALL LADR_0x0026     ; !!Bank!! 0x0026 - 0x0826
    CALL LADR_0x0080     ; !!Bank!! 0x0080 - 0x0880
LADR_0x0008
    CALL LADR_0x003A     ; !!Bank!! 0x003A - 0x083A
    CALL LADR_0x0048     ; !!Bank!! 0x0048 - 0x0848
    CALL LADR_0x002F     ; !!Bank!! 0x002F - 0x082F
    CALL LADR_0x0058     ; !!Bank!! 0x0058 - 0x0858
    CALL LADR_0x005B     ; !!Bank!! 0x005B - 0x085B
    CALL LADR_0x0278     ; !!Bank!! 0x0278 - 0x0A78
    CALL LADR_0x028C     ; !!Bank!! 0x028C - 0x0A8C
    CALL LADR_0x00E5     ; !!Bank!! 0x00E5 - 0x08E5
    CALL CHECKQUESTION   ; !!Bank!! 0x0146 - 0x0946
    CALL LADR_0x011D     ; !!Bank!! 0x011D - 0x091D
    CALL LADR_0x023E     ; !!Bank!! 0x023E - 0x0A3E
    CALL LADR_0x0252     ; !!Bank!! 0x0252 - 0x0A52
    CALL LADR_0x0091     ; !!Bank!! 0x0091 - 0x0891
    CALL LADR_0x002F     ; !!Bank!! 0x002F - 0x082F
    CALL LADR_0x0133     ; !!Bank!! 0x0133 - 0x0933
    CALL LADR_0x00B8     ; !!Bank!! 0x00B8 - 0x08B8
    CALL LADR_0x02A9     ; !!Bank!! 0x02A9 - 0x0AA9
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     ; !!Bank!! 0x002A - 0x082A
    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     ; !!Bank!! 0x0033 - 0x0833
    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     ; !!Bank!! 0x003E - 0x083E
LADR_0x0040
    BTFSS PORTB,3        ; !!Bank!! PORTB - TRISB - PORTB - TRISB
    GOTO LADR_0x0040     ; !!Bank!! 0x0040 - 0x0840
    MOVF PORTB,W         ; !!Bank!! PORTB - TRISB - PORTB - TRISB
    MOVWF INDF
    INCF FSR,F
    DECFSZ LRAM_0x20,F
    GOTO LADR_0x003E     ; !!Bank!! 0x003E - 0x083E
    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     ; !!Bank!! 0x004E - 0x084E
    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     ; !!Bank!! 0x0060 - 0x0860
    RETURN
LADR_0x0080
    MOVLW 0x10           ;   b'00010000'  d'016'
    MOVWF LRAM_0x20
    CLRF LRAM_0x21
LADR_0x0083
    MOVF LRAM_0x21,W
    BSF PCLATH,0         ; !!Bank Program-Page-Select
    BSF PCLATH,1         ; !!Bank Program-Page-Select
    CALL INITSESSIONKEY  ; !!Bank!! 0x0381 - 0x0B81
    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     ; !!Bank!! 0x0083 - 0x0883
    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     ; !!Bank!! 0x0095 - 0x0895
    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     ; !!Bank!! 0x00C0 - 0x08C0
    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     ; !!Bank!! 0x00F1 - 0x08F1
    BTFSC LRAM_0x21,0
    GOTO LADR_0x00F8     ; !!Bank!! 0x00F8 - 0x08F8
LADR_0x00F8
    BTFSC LRAM_0x2A,7
    BSF LRAM_0x2B,0
    GOTO LADR_0x00FD     ; !!Bank!! 0x00FD - 0x08FD
    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     ; !!Bank!! 0x00EC - 0x08EC
    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     ; !!Bank!! 0x0127 - 0x0927
    BTFSC LRAM_0x2A,0
    BSF LRAM_0x2B,0
    RLF LRAM_0x2B,F
    INCF FSR,F
    DECFSZ LRAM_0x21,F
    GOTO LADR_0x0122     ; !!Bank!! 0x0122 - 0x0922
    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     ; !!Bank!! 0x0137 - 0x0937
    RETURN
    MOVF LRAM_0x2C,W
    XORWF LRAM_0x2B,W
    ANDLW 0x3F           ;   b'00111111'  d'063'  "?"
    BTFSS STATUS,Z
    GOTO LADR_0x0145     ; !!Bank!! 0x0145 - 0x0945
    RETURN
LADR_0x0145
    GOTO LADR_0x0145     ; !!Bank!! 0x0145 - 0x0945
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     ; !!Bank!! 0x0192 - 0x0992
    MOVF LRAM_0x60,W
    XORLW 0x22           ;   b'00100010'  d'034'  """
    BTFSC STATUS,Z
    GOTO LADR_0x0192     ; !!Bank!! 0x0192 - 0x0992
    MOVF LRAM_0x60,W
    XORLW 0x23           ;   b'00100011'  d'035'  "#"
    BTFSC STATUS,Z
    GOTO LADR_0x0192     ; !!Bank!! 0x0192 - 0x0992
    MOVF LRAM_0x60,W
    XORLW 0x41           ;   b'01000001'  d'065'  "A"
    BTFSC STATUS,Z
    GOTO LADR_0x0184     ; !!Bank!! 0x0184 - 0x0984
    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     ; !!Bank!! 0x0184 - 0x0984
    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     ; !!Bank!! 0x0184 - 0x0984
    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     ; !!Bank!! 0x0184 - 0x0984
    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     ; !!Bank!! 0x0184 - 0x0984
    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     ; !!Bank!! 0x0184 - 0x0984
    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     ; !!Bank!! 0x0184 - 0x0984
    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     ; !!Bank!! 0x0184 - 0x0984
LADR_0x0184
    BSF PCLATH,0         ; !!Bank Program-Page-Select
    BSF PCLATH,1         ; !!Bank Program-Page-Select
    MOVLW 0x61           ;   b'01100001'  d'097'  "a"
    MOVWF FSR
LADR_0x0188
    MOVF LRAM_0x21,W
    CALL QUESTIONS       ; !!Bank!! 0x0300 - 0x0B00
    XORWF INDF,W
    BTFSS STATUS,Z
    GOTO LADR_0x0195     ; !!Bank!! 0x0195 - 0x0995
    INCF FSR,F
    INCF LRAM_0x21,F
    DECF LRAM_0x20,F
    BTFSS STATUS,Z
    GOTO LADR_0x0188     ; !!Bank!! 0x0188 - 0x0988
LADR_0x0192
    MOVF LRAM_0x60,W
    MOVWF LRAM_0x29
    GOTO LADR_0x0195     ; !!Bank!! 0x0195 - 0x0995
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     ; !!Bank!! 0x01A7 - 0x09A7
    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     ; !!Bank!! 0x022B - 0x0A2B
    BSF PCLATH,0         ; !!Bank Program-Page-Select
    BSF PCLATH,1         ; !!Bank Program-Page-Select
    MOVF LRAM_0x21,W
    CALL SESSIONKEYANSWER1 ; !!Bank!! 0x0339 - 0x0B39
    GOTO LADR_0x0221     ; !!Bank!! 0x0221 - 0x0A21
LADR_0x01A7
    MOVF LRAM_0x29,W
    XORLW 0x22           ;   b'00100010'  d'034'  """
    BTFSS STATUS,Z
    GOTO LADR_0x01B6     ; !!Bank!! 0x01B6 - 0x09B6
    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     ; !!Bank!! 0x022B - 0x0A2B
    BSF PCLATH,0         ; !!Bank Program-Page-Select
    BSF PCLATH,1         ; !!Bank Program-Page-Select
    MOVF LRAM_0x21,W
    CALL SESSIONKEYANSWER2 ; !!Bank!! 0x0342 - 0x0B42
    GOTO LADR_0x0221     ; !!Bank!! 0x0221 - 0x0A21
LADR_0x01B6
    MOVF LRAM_0x29,W
    XORLW 0x23           ;   b'00100011'  d'035'  "#"
    BTFSS STATUS,Z
    GOTO LADR_0x01C5     ; !!Bank!! 0x01C5 - 0x09C5
    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     ; !!Bank!! 0x022B - 0x0A2B
    BSF PCLATH,0         ; !!Bank Program-Page-Select
    BSF PCLATH,1         ; !!Bank Program-Page-Select
    MOVF LRAM_0x21,W
    CALL SESSIONKEYANSWER3 ; !!Bank!! 0x034B - 0x0B4B
    GOTO LADR_0x0221     ; !!Bank!! 0x0221 - 0x0A21
LADR_0x01C5
    MOVF LRAM_0x29,W
    XORLW 0x41           ;   b'01000001'  d'065'  "A"
    BTFSS STATUS,Z
    GOTO LADR_0x01CE     ; !!Bank!! 0x01CE - 0x09CE
    BSF PCLATH,0         ; !!Bank Program-Page-Select
    BSF PCLATH,1         ; !!Bank Program-Page-Select
    MOVF LRAM_0x21,W
    CALL AKEYCODE        ; !!Bank!! 0x03BE - 0x0BBE
    GOTO LADR_0x0221     ; !!Bank!! 0x0221 - 0x0A21
LADR_0x01CE
    MOVF LRAM_0x29,W
    XORLW 0x42           ;   b'01000010'  d'066'  "B"
    BTFSS STATUS,Z
    GOTO LADR_0x01D7     ; !!Bank!! 0x01D7 - 0x09D7
    BSF PCLATH,0         ; !!Bank Program-Page-Select
    BSF PCLATH,1         ; !!Bank Program-Page-Select
    MOVF LRAM_0x21,W
    CALL BKEYCODE        ; !!Bank!! 0x03CE - 0x0BCE
    GOTO LADR_0x0221     ; !!Bank!! 0x0221 - 0x0A21
LADR_0x01D7
    MOVF LRAM_0x29,W
    XORLW 0x43           ;   b'01000011'  d'067'  "C"
    BTFSS STATUS,Z
    GOTO LADR_0x01E0     ; !!Bank!! 0x01E0 - 0x09E0
    BSF PCLATH,0         ; !!Bank Program-Page-Select
    BSF PCLATH,1         ; !!Bank Program-Page-Select
    MOVF LRAM_0x21,W
    CALL FIRSTREADFILE0  ; !!Bank!! 0x03DE - 0x0BDE
    GOTO LADR_0x0221     ; !!Bank!! 0x0221 - 0x0A21
LADR_0x01E0
    MOVF LRAM_0x29,W
    XORLW 0x44           ;   b'01000100'  d'068'  "D"
    BTFSS STATUS,Z
    GOTO LADR_0x01E9     ; !!Bank!! 0x01E9 - 0x09E9
    BSF PCLATH,0         ; !!Bank Program-Page-Select
    BSF PCLATH,1         ; !!Bank Program-Page-Select
    MOVF LRAM_0x21,W
    CALL FIRSTREADFILE1  ; !!Bank!! 0x03EE - 0x0BEE
    GOTO LADR_0x0221     ; !!Bank!! 0x0221 - 0x0A21
LADR_0x01E9
    MOVF LRAM_0x29,W
    XORLW 0x61           ;   b'01100001'  d'097'  "a"
    BTFSS STATUS,Z
    GOTO LADR_0x01F2     ; !!Bank!! 0x01F2 - 0x09F2
    BSF PCLATH,0         ; !!Bank Program-Page-Select
    BSF PCLATH,1         ; !!Bank Program-Page-Select
    MOVF LRAM_0x21,W
    CALL KEEPALIVEANSWER ; !!Bank!! 0x0354 - 0x0B54
    GOTO LADR_0x0221     ; !!Bank!! 0x0221 - 0x0A21
LADR_0x01F2
    MOVF LRAM_0x29,W
    XORLW 0x62           ;   b'01100010'  d'098'  "b"
    BTFSS STATUS,Z
    GOTO LADR_0x01FB     ; !!Bank!! 0x01FB - 0x09FB
    BSF PCLATH,0         ; !!Bank Program-Page-Select
    BSF PCLATH,1         ; !!Bank Program-Page-Select
    MOVF LRAM_0x21,W
    CALL SECVERANSWER    ; !!Bank!! 0x035D - 0x0B5D
    GOTO LADR_0x0221     ; !!Bank!! 0x0221 - 0x0A21
LADR_0x01FB
    MOVF LRAM_0x29,W
    XORLW 0x66           ;   b'01100110'  d'102'  "f"
    BTFSS STATUS,Z
    GOTO LADR_0x0204     ; !!Bank!! 0x0204 - 0x0A04
    BSF PCLATH,0         ; !!Bank Program-Page-Select
    BSF PCLATH,1         ; !!Bank Program-Page-Select
    MOVF LRAM_0x21,W
    CALL NAOMIGDANSWER   ; !!Bank!! 0x0366 - 0x0B66
    GOTO LADR_0x0221     ; !!Bank!! 0x0221 - 0x0A21
LADR_0x0204
    MOVF LRAM_0x29,W
    XORLW 0x6B           ;   b'01101011'  d'107'  "k"
    BTFSS STATUS,Z
    GOTO LADR_0x020D     ; !!Bank!! 0x020D - 0x0A0D
    BSF PCLATH,0         ; !!Bank Program-Page-Select
    BSF PCLATH,1         ; !!Bank Program-Page-Select
    MOVF LRAM_0x21,W
    CALL AIJYOANSWER     ; !!Bank!! 0x036F - 0x0B6F
    GOTO LADR_0x0221     ; !!Bank!! 0x0221 - 0x0A21
LADR_0x020D
    BSF PCLATH,0         ; !!Bank Program-Page-Select
    BSF PCLATH,1         ; !!Bank Program-Page-Select
    MOVF LRAM_0x21,W
    CALL LADR_0x0378     ; !!Bank!! 0x0378 - 0x0B78
    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     ; !!Bank!! 0x0198 - 0x0998
    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     ; !!Bank!! 0x022D - 0x0A2D
    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     ; !!Bank!! 0x0244 - 0x0A44
    RETURN
LADR_0x0252
    MOVF LRAM_0x29,W
    XORLW 0x66           ;   b'01100110'  d'102'  "f"
    BTFSC STATUS,Z
    GOTO LADR_0x0269     ; !!Bank!! 0x0269 - 0x0A69
    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     ; !!Bank!! 0x025C - 0x0A5C
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     ; !!Bank!! 0x025C - 0x0A5C
    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     ; !!Bank!! 0x027E - 0x0A7E
    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     ; !!Bank!! 0x0292 - 0x0A92
    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     ; !!Bank!! 0x0008 - 0x0808
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!?"
SESSIONKEYANSWER1
    ADDWF PCL,F          ; !!Program-Counter-Modification
    DT "0DIMMID0"
SESSIONKEYANSWER2
    ADDWF PCL,F          ; !!Program-Counter-Modification
    DT "1DIMMID1"
SESSIONKEYANSWER3
    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"
NAOMIGDANSWER
    ADDWF PCL,F          ; !!Program-Counter-Modification
    DT "?HereIam"
AIJYOANSWER
    ADDWF PCL,F          ; !!Program-Counter-Modification
    DT 0x3A,0x70,0x1F,0x71,0x1F,0x4C,0x00 ; First seven bytes
;    DT 0x00             ; Eighth byte = 00 --> GD ROM boot
    DT 0x01              ; Eighth byte = 01 --> Network boot
LADR_0x0378
    ADDWF PCL,F          ; !!Program-Counter-Modification
    DT "ZERROR00"
INITSESSIONKEY
    ADDWF PCL,F          ; !!Program-Counter-Modification
    DT "NAOMIGDROMSYSTEM" ; Initial session key
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    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 "3"
    DT 0x00,0x00,0x00,0x00,0x00,0x00,0x00 ; First 7 bytes of DES key
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
BKEYCODE
    ADDWF PCL,F          ; !!Program-Counter-Modification
    DT "4"
    DT 0x00              ; Last byte of DES key
    DT 0x00,0x00,0x00,0x00,0x00,0x00 ; Six bytes of padding
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
FIRSTREADFILE0
    ADDWF PCL,F          ; !!Program-Counter-Modification
    DT "5"
    DT "ABC.BIN"         ; First seven bytes of bootstrap filename
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
FIRSTREADFILE1
    ADDWF PCL,F          ; !!Program-Counter-Modification
    DT "6"
    DT 0x00,0x00,0x00,0x00,0x00,0x00,0x00 ; Last seven bytes of bootstrap filename
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    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
 
This works for all revisions or just type 1 Chihiro and Triforce?
 
This works for all revisions or just type 1 Chihiro and Triforce?
Good question. Theoretically I believe it should work on all, but I've never owned any Chihiro or Triforce kit so I've been unable to test myself.

People are encouraged to test and report back. :)
 
I'll test it. I have Type 3 for both Triforce and Chihiro set up now.
 
  • Like
Reactions: idc
Quick question:

Does it work for naomi 2 CF setups?
 
Quick question:

Does it work for naomi 2 CF setups?
I'm fairly certain for compact flash you need to change at least one thing (maybe more). At the least, unless I'm completely mistaken, you need to move the comment (;) from line 937 to 938 so that GD-ROM boot is set instead of network boot.
 
I did not test yet.

Usually the same zero key works for both Netboot and CF use.
 
Usually the same zero key works for both Netboot and CF use.
That's odd, I was under the impression the CF chip needed to be different.

It is easy to use an invalid PIC for netboot on NAOMI, if you leave the python script running you'll never know if your PIC is bad because it functions the same as no PIC. The only real way to know your PIC is good for netboot is to disconnect and ensure the game keeps running.
 
cf is treated as gdrom, netboot is diffent by the aijyo!? answer.

there is excess padding on the des key this wouldnt work properly

if you plug in the des key and switch it to gdrom it will error 33 for whatever game you making a key for. this is how i tested mine when i posted the changes needed on the other site
 
Last edited:
cf is treated as gdrom, netboot is diffent by the aijyo!? answer.

there is excess padding on the des key this wouldnt work properly

if you plug in the des key and switch it to gdrom it will error 33 for whatever game you making a key for. this is how i tested mine when i posted the changes needed on the other site
that sucks... I'll need a different key for my cf setup :(
 
I have used this PIC for both CF (unencrypted) and netboot on NAOMI 2 with no issues.
 
Setting the dips to GD-ROM mode on the net DIMM should be enough to use unencrypted CF card-based games with a netboot chip. Both the chip and the CF card bootstrap (or "1stread.bin" in Dreamcast parlance) must be "ABC.BIN".
 
I have not tried this one because I'm not sure how to compile it, embarrassingly. But the current zero key I use and sell works perfectly fine for CF, Netboot, and Piforce. Only one needed for all uses on Naomi.
 
Great to hear. One of those times I'm OK with being wrong :)

Mitsurugi-w if you need one compiled let me know. It's not too bad with mplab, but I could compile this one and send you the hex if you want. (or, idc, if you are worried about hosting the hex I have a server I could host it on for you where I keep PVM manuals).
 
That would be awesome. I downloaded mplab but never learned how to use it since most things were already compiled when I received it.
 
No worries, I'll compile (and write/test) when I get home. Assuming it works OK I'll send you a link to the .hex file.
 
Back
Top