2013년 1월 27일 일요일

FC-100 에뮬레이션을 위한 PHC-25 부트벡터 분석

이전에 PC-6001과 FC-100과의 연관성을 분석하기위한 자료를 올렸었습니다.(여기)

여기에서는 PHC-25의 부트스트래퍼를 약간 분석해 보도록 하겠습니다.

PHC-25의 에뮬레이션 환경은 아래에서 다운로드 받습니다.
http://homepage3.nifty.com/takeda-toshiya/

롬 파일은 어둠의 경로를 통하셔야 합니다.


일단 FC-100과 비슷해 보이지만 PC-6001과 비교해 보면 PC-6001에 좀더 닮아 있음을 알 수 있습니다.

PHC-25의 부트벡터는 아래와 같습니다.

0000 C3AF0B    JP      0BAFH

부트스트래퍼 0BAFH의 내용은 아래와 같습니다.


0baf F3        DI    
0bb0 31FFF8    LD      SP,0F8FFH    <- 스택 상위 주소
0bb3 AF        XOR     A
0bb4 2100F9    LD      HL,0F900H
0bb7 010007    LD      BC,0700H
0bba CD9A05    CALL    059AH
0bbd 210060    LD      HL,6000H
0bc0 3E20      LD      A,20H
0bc2 01FF07    LD      BC,07FFH
0bc5 CD9A05    CALL    059AH
0bc8 210068    LD      HL,6800H
0bcb AF        XOR     A
0bcc 010010    LD      BC,1000H
0bcf CD9A05    CALL    059AH
0bd2 2100E0    LD      HL,0E000H
0bd5 3E20      LD      A,20H
0bd7 01FF07    LD      BC,07FFH
0bda CD9A05    CALL    059AH
0bdd 2100E8    LD      HL,0E800H
0be0 AF        XOR     A
0be1 010010    LD      BC,1000H
0be4 CD9A05    CALL    059AH
0be7 215DFD    LD      HL,0FD5DH
0bea 225BFD    LD      (0FD5BH),HL
0bed 3E01      LD      A,01H
0bef 324CF9    LD      (0F94CH),A
0bf2 3259F9    LD      (0F959H),A
0bf5 3E04      LD      A,04H
0bf7 321FF9    LD      (0F91FH),A
0bfa D340      OUT     (40H),A
0bfc 3E14      LD      A,14H
0bfe 3221F9    LD      (0F921H),A
0c01 325AF9    LD      (0F95AH),A
0c04 21540B    LD      HL,0B54H
0c07 1150FE    LD      DE,0FE50H
0c0a 014B00    LD      BC,004BH
0c0d EDB0      LDIR  
0c0f 219F0B    LD      HL,0B9FH
0c12 1173F9    LD      DE,0F973H
0c15 011000    LD      BC,0010H
0c18 EDB0      LDIR  
0c1a 218FF9    LD      HL,0F98FH
0c1d 2248F9    LD      (0F948H),HL
0c20 ED56      IM      1              <- 인터럽트 모드 1 설정
0c22 CD3747    CALL    4737H
0c25 FB        EI    
0c26 CD500D    CALL    0D50H
0c29 3E2C      LD      A,2CH
0c2b CD480D    CALL    0D48H
0c2e CD5545    CALL    4555H
0c31 31FFF8    LD      SP,0F8FFH
0c34 3E20      LD      A,20H
0c36 322EF9    LD      (0F92EH),A
0c39 CDDF10    CALL    10DFH
0c3c 3EFF      LD      A,0FFH
0c3e 325AF9    LD      (0F95AH),A
0c41 215100    LD      HL,0051H
0c44 CDFB1D    CALL    1DFBH
0c47 CDBF0C    CALL    0CBFH
0c4a FE31      CP      31H
0c4c 280D      JR      Z,0C5BH          ; (+0dH)
0c4e FE32      CP      32H
0c50 2809      JR      Z,0C5BH          ; (+09H)
0c52 FE14      CP      14H
0c54 20DB      JR      NZ,0C31H         ; (-25H)
0c56 CDBF0C    CALL    0CBFH
0c59 18D6      JR      0C31H            ; (-2aH)


인터럽트 모드 1을 쓰는것은 FC-100과 유사하지만 제가 개인적으로 느낄때는
프로그래밍 스타일은 PC-6001과 비슷하다고 생각합니다.

댓글 없음:

댓글 쓰기