2022년 4월 18일 월요일

Flash Drive 제작 #3 - 동작 모드 정리

Flash Drive는 디스크 커널과 디스크이미지가 롬 하나로 묶인 카트리지입니다.

이런걸 보통 롬디스크 드라이브라고 얘기합니다요.


일반적인 롬디스크와의 차이라면 요렇게 정리할 수 있겠네요.


1. DOS1과 DOS2 커널 모두 사용가능

2. 16K 매퍼 사용으로 PAC 류의 주변기기 디텍션과 충돌하지 않음

3. 롬디스크 일부를 R/W 가능한 영역으로 사용

4. DSK 이미지파일은 1488KB까지 사용가능



그럼 자세한 설명이 나갑니다요~


1. DOS1과 DOS2 커널 모두 사용가능


DOS1 커널 사용 시,

기본으로 ONE-Drive ON 상태가 됩니다.

DSK 파일을 다운로드 할 때 /DO 옵션으로 OFF 가능하구요.


DOS2 커널 사용 시,

항상 ONE-Drive OFF 됩니다.

DSK 파일을 다운로드 할 때 /D2 옵션을 넣으면 DOS2 커널이 적용됩니다.

더미 DSK 파일(FFH로 채운 파일)을 다운로드 해두면,

DOS2 커널만 구동하고 부팅은 다른 드라이브로 할 수 있습니다.

(예: WSX, X-II 등에서 슬롯1에 Flash Drive를 꽂고 본체의 FDD로 DOS2 디스크 부팅)


부팅 중 INS 키를 누르고 있으면, 디스크롬 인스톨을 건너뜁니다. (DOS1, DOS2 공통)

이 기능은, 다른 DSK 이미지를 다운로드 할 때 필요합니다.



2. 16K 매퍼 사용으로 PAC 류의 주변기기 디텍션과 충돌하지 않음


범용의 플래쉬롬팩(SCC 8K 등)으로 롬디스크를 만들면,

PAC 류의 SRAM 디텍션(주소 5xxxH) 중 매퍼 뱅킹이 되기 때문에 오동작 하는 경우가 생깁니다.

Flash Drive는 16K 매퍼라서 안전(?)하게 사용가능합니다.

(참고로 FDD의 디스크롬은 뱅킹없는 16KB롬이라서, 이런 문제가 생길 여지가 없어요.)



3. 롬디스크 일부를 R/W 가능한 영역으로 사용


보통의 롬디스크는 읽기전용(readonly) 디스크로 동작이 됩니다.

Flash Drive는 플래쉬롬의 작은 섹터(8KB, 16KB)를 R/W 파일로 활용할 수 있습니다.

작은 용량의 플래쉬롬이 여러개(6개)가 들어있는 이유가...

이 섹터를 많이 얻기 위함이죠. 롬 하나에 3개밖에 없어요 ㅎ.ㅎ


이 영역은 DOS2 모드일 때만 쓰기(write)가 가능합니다.

DOS1 모드일 때는 모두 readonly이니, 다운로드할 때 DOS2 모드로 해주세요.


그리고, 플래쉬롬의 앞부분은 DOS2 커널 48KB가 점유하고 있으니,

실제 디스크 섹터와 플래시롬의 섹터 위치를 잘 계산해서 사용해야합니다.

예를 들어 첫번째 플래시롬의 8KB 섹터의 주소는 아래처럼 주소를 계산할 수 있습니다.

38000H - 0C000H(DOS2 롬옵셋) = 2C000H


물론 이부분은 BDOS의 논리섹터 R/W 대신 파일 R/W을 하려면,

미리 파일을 생성하고 FAT의 체인을 설정하는 작업이 필요합니다.


무슨 얘기인지 이해가 어려우면, 그냥 제가 만든 템플릿 DSK를 사용하시면 되겠습니다.

R/W 가능한 섹터에 미리 세이브 용 파일을 만들어두었습니다.

Download: Flash_Drive_DOS2_1488KB.zip


아래처럼 SAVE 디렉토리의 SAVEx_xx 파일에 저장을 하면 됩니다.

파일 이름을 바꾸는 것은 괜찮지만 다른 디렉토리에 복사하면 안됩니다.

디스크 섹터위치가 바뀌면 플래시 섹터 위치도 바뀌니까요~




18개 파일이 192KB 용량 차지하고 있으니,

사용하지 않는 파일은 삭제하고 일반 readonly 용도로 바꿔쓰셔도 됩니다.

용량부족에 허덕이지 않는다면, 그냥 놔두시는 걸 추천합니다 ㅎ.ㅎ



4. DSK 이미지파일은 1488KB까지 사용가능


지난 글(#2)에서 Standard 버전은,

A: 드라이브 2HD 1440KB + B: 드라이브 48KB

으로 구성된다고 했었는데요.


사용의 복잡성을 줄이기 위해ㅋ

그냥 두 영역을 모두 합쳐서 A: 드라이브를 1488KB으로 쓰는 것으로 바꿨습니다.

B: 드라이브는 따로 활용하지 않습니다.

사실 초기 셋업 용 48KB 이미지를 따로 관리하는게 좀 불편한 것 같아서요...흐흠


그리고, Flash Drive의 플래시롬 용량은 1536KB으로 통일하기로 했습니다.

2DD 용량의 Lite 버전은 출시(?) 안하는 방향으로 갑니다요.

(보드 두 종류 관리도 귀찮...ㅋ)



마지막으로 Flash Drive 툴의 옵션들을 정리해보았습니다.


- FLASHDRV.COM의 옵션 설정입니다.


/DO -> ONE-Drive를 OFF합니다. (DOS1 모드에서만 사용가능)

/D2 -> 디스크 커널을 DOS2 모드로 설정합니다.

/T  -> 파나소닉 WX/WSX의 반터모 및 turboR의 고속모드를 강제로 ON합니다.



- 디스크롬 부팅 시 사용되는 키입니다.


CTRL -> B: 드라이브를 제거하고 A: 드라이브 한개만 등록합니다.

INS  -> 디스크롬 인스톨을 하지않습니다. (Flash Drive 부팅을 건너뜁니다)

T    -> WX/WSX/turboR의 고속모드를 강제로 ON합니다.



생각나는 것들은 대충 정리가 된 것 같으네요 ㅎ.ㅎ


그럼, 궁금한 점 있으시면 댓글로 ㄱㄱㄱ


2022년 4월 17일 일요일

Flash Drive 제작 #2 - 2HD 디스크 활용 (feat. Ys II)

Flash Drive는 플래시롬 용량이 다른 두가지 버전이 있습니다.

1536KB의 Standard 버전과 768KB의 Lite 버전이욤~


Lite 버전은 1DD 또는 2DD 한장을 담는 정도로 활용이 가능합니다.

지난 영상에서 보여드렸던 동작 모습을 참고하시면 되겠습니다요.

보드에는 256KB 플래쉬롬 3개가 들어있습니다.


Standard 버전은,

1440KB 용량의 2HD Main Disk 및 48KB의 Sub Disk로 구성됩니다.

보드에는 256KB 플래쉬롬 6개가 들어있습니다.



지금부터는 Standard 버전에 대한 얘기입니다~ ㅎ.ㅎ


- Main Disk (1440KB)


부트 드라이브 A:로 동작합니다.

2DD 두장 분량이니 왠만한 자작프로그램으로 충분하다고 생각이 드네요.

아마 더 큰 프로그램을 만든다면, 대용량 디스크에 인스톨하는 방식이 더 편하겠구요 ㅎ.ㅎ


플래시롬 한개에는 작은 플래시 섹터가 3개 (8KB x 2개, 16KB x 1개) 들어있습니다.

총 6개의 롬 중에서 5개의 롬의 작은 섹터를 데이터 저장용으로 활용가능합니다.


각 섹터 주소가 고정되어 있으니, 저장된 파일 위치를 잘 고려해서 만들어야겠지요~

29F002-T 계열의 플래시롬이니, 각 롬의 작은 섹터는 아래 영역이 됩니다.


4번 섹터 38000h - 39FFFh ( 8KB)

5번 섹터 3A000h - 3BFFFh ( 8KB)

6번 섹터 3C000h - 3FFFFh (16KB)


물론 64KB의 일반 섹터(64KB)를 저장 용으로 쓸 수 있겠습니다.

큰 파일의 저장이 필요하다면요~ ㅎ.ㅎ



- Sub Disk (48KB)


드라이브 B:로 동작하게 됩니다.

데이터 저장 용으로 큰 파일이 필요하지 않다면,

Main Disk는 그냥 readonly로 구성하고, Sub Disk를 데이터 저장 전용으로 활용하면 편리합니다.


6개의 플래시롬에서 마지막 롬의 플래시 섹터 3개를 활용합니다.

8KB 파일 두개 + 16KB 파일 한개로 구성됩니다.

제 경우는 저장용으로 Sub Disk를 주로 쓸 듯 하네요.

(사실 이렇게 쓰려고 만든거니까, 당연한 소리같네요ㅋ)



빠른 이해를 위해 영상을 하나 찍었습니다.


Main Disk를 파일 세이브가 되도록 활용하면, 요렇게 동작이 가능합니다.

테스트에는 이스2 HDD 버전이 사용되었습니다.

언어파일은 키티야님의 한글파일을 사용했습니다. (한글 짱! ㅎ.ㅎb)


세이브 파일 8개를 8KB/16KB 플래시 섹터에 분산해서 저장합니다.

그러면 일반 파일은 Readonly로 동작하고, 세이브 파일만 R/W로 쓸 수 있어요.

그럼, 동작 모습을 보시죠~




그럼, 다음편에서 보아요~ ㅎ.ㅎ


궁금한 점 있으시면 댓글로 ㄱㄱㄱ


2022년 4월 16일 토요일

Flash Drive 제작 #1 - 구상 및 테스트

예전에 유령군님께서 요청하셨던 것(!)이 있는데욤.

DOS2 용 프로그램이 들어있는 DSK 이미지를 넣어서 카트리지를 만드는 것이었지요.

폰트팩 보드로 하나 만들어드렸던 기억이 납니다. (스윗~ 펀치~)


결론부터 얘기하면,

DOS2 용 자작 게임을 카트리지로 릴리스할 때 필요한 '간단한 보드'를 만들어보자.

...입니다.



대충 필요한 것들을 나열하면...

- DOS1 및 DOS2 커널 내장

- 2HD 1.44MB 정도의 메인 디스크

- 데이터 세이브 용도의 유저 디스크

이렇습니다.


DOS1 용 디스크를 구동하려면 MMC/SD의 ONE-Drive 기능도 있어야겠네요.

부팅할 때 특정 키를 눌러서 고속모드로 전환하거나 그런 것도 있으면 좋겠구요.



그럼, 보드를 하나 만들어서 돌려봅니다.

요즘은 저용량 CPLD를 구하는데 무리가 있어서, 그냥 TTL 조합으로 해봅니다.

(이게 얼마만인지ㅋ)






구동하려면, DOS1/2 커널과 전용의 디스크루틴이 필요합니다.

DSK 이미지도 함께 다운로드 할 수 있도록 간단한 프로그램도 필요하겠네요.


다운로드 시, FLASHDRV.COM 프로그램을 사용합니다.

선택한 옵션은 플래쉬롬에 설정이 저장되니,

실제 사용할 때는 그냥 카트리지를 꽂으면 그대로 실행됩니다.





뭐, 백문이불여일견...이겠죠? ㅎ.ㅎ

테스트 영상으로 보시죠~

아래의 3가지 테스트가 나옵니다.

- DOS2 + 2DD 이미지

- DOS2 + 1DD 이미지

- DOS1 + 2DD 이미지




그럼, 다음편에서 보아요~ ㅎ.ㅎ


궁금한 점 있으시면 댓글로 ㄱㄱㄱ