2021년 10월 24일 일요일

FontPack 제작 #14 - 롬매퍼 변경

폰트팩 V1은 ASCII 16K 매퍼와 동일하게 구현되어 있고,

전체 주소영역을 반으로 나눠서 플래쉬롬과 SRAM이 2MB씩 사용합니다.


지난 6년(?)간 폰트팩을 사용해본 결과, ASCII 16K 매퍼를 활용하는 경우가 별로 없네요.

MMC/SD V4의 메가램도 용량이 2MB라서, ASCII 매퍼 테스트 목적으로 폰트팩을 쓸 이유도 사라졌구요.


폰트팩 V2에서는 롬이 8MB로 늘어났기 때문에,

ASCII 16KB 매퍼를 삭제하고 폰트팩 전용의 롬매퍼가 탑재되었습니다.

이렇게 변경되면서 V1에 있던 128KB 유저 메가램 기능도 함께 삭제되었습니다.

뭐, 바뀐 매퍼로 인해 사용자가 따로 신경 쓸 부분은 없어요. ㅎ.ㅎ


전체 8MB 플래쉬롬에서,

2MB는 기존 V1과 동일한 BIOS + CP949 관련 테이블/폰트가 들어가겠구요.

5MB는 V2 전용의 유니코드 테이블/폰트가 들어갑니다.

그럼 1MB가 남게 되는데요.


요기는 간단하게 활용할 수 있는 1MB짜리 멀티롬 하나를 넣어놨습니다.

제가 카트리지 배포할 때 넣어드리는건 아니고, 사용자가 직접 다운로드하셔야 됩니다요~

어차피 처음에 폰트롬 생성하고 다운로드 해야되니까 필수 작업이긴 하겠네요.


멀티롬은 요놈이 들어가니까 참고하시구요.





요약: V2에서는 '유저롬 128KB' 기능이 '멀티롬 1MB'으로 변경됨.


즐거운 주말 되세요~


2021년 10월 22일 금요일

FontPack 제작 #13 - 컨트롤 레지스터 변경

폰트팩 V2는 기본적으로 V1과 호환이 됩니다.

예전 S/W들을 그대로 쓸 수 있습니다. (죄다 제가 만든 것 뿐이지만요ㅋㅋ)


V2는 이 상태에서 유니코드 기능이 추가로 들어가게 되었는데요.

이걸 직접 컨트롤하는 경우는 어떻게 해야하는지 잠깐 알아보겠습니다요~

(사실 모르셔도 됩니다ㅋ)



아래는 V1 호환 모드일 때의 레지스터입니다.




포트를 4개 사용하는 것은 기존 폰트팩 V1과 동일하구요.

MOD 레지스터에 VER(BIT7)값이 추가되었습니다.

기본값은 0으로 되어있구요. 위의 표에서 처럼 V1과 똑같이 동작합니다.

기존 V1의 BIT7 값은 0으로 고정되어 있으니까,

값을 바꿔서 적용이 되는지 체크하는 것으로, 보드 버전을 디텍션 할 수 있습니다.



아래는 V2 모드로 설정했을 때의 레지스터입니다.




VER(BIT7)을 1로 바꾸면 V2 모드가 됩니다.

유니코드는 0000H ~ FFFFH 영역을 모두 사용하기 때문에,

V1 호환모드의 FSEL(BIT7)은 존재하지 않습니다.

따라서 0000H ~ 7FFFH 문자도 플래쉬롬의 폰트가 사용됩니다.


V1의 KOR 레지스터와 V2의 UNI 레지스터의 동작방식은 동일합니다.

BPP에 맞춰 컬러가 적용된 폰트 데이터를 스트림으로 읽어냅니다.


V1 모드에서 문자 코드 변환기로 동작하는 CCV 레지스터는

V2 모드에서 WID 레지스터로 동작하며, 요놈은 기능이 전혀 다릅니다.

폰트의 가로폭 처리 시, VRAM 주소의 옵셋을 얻어옵니다.

그러니까 폰트를 그린 후, 다음 VRAM 주소값을 계산하는 용도로 쓰이는거죠.


CP949에서는 ASCII 문자가 한글/한자 폭의 절반으로 되어있어서,

S/W가 폰트의 폭을 이미 알고 있습니다. VRAM 주소를 계산하는데 H/W 도움이 필요없죠.


근데 유니코드의 폰트는 모양에 따라 폭이 결정되니까,

이걸 기반으로 VRAM 주소를 계산하도록 도와주는 레지스터 WID가 필요하게 되었네요.

BPP에 맞춰 값이 출력되기 때문에 포트에서 읽은 값을 기존 주소값에 더하면 끝입니다요.


그 외 BPP, PX12 등의 폰트 설정은 V1, V2 방식은 똑같구요.

CNV 설정은 V2에서도 변경이 가능하지만, 컨버터 데이터를 읽을 때는 V1 모드로 전환해야합니다.

코드 컨버터를 사용해야하는 경우가 어차피 CP949 또는 조합형 코드를 사용하는 경우일테니...

이렇게 해도 별 무리는 없을거에요.



그럼, 유니코드의 WID 레지스터를 활용하는 프로그램의 동작 모습을 보시죠.





폰트팩 V2 카트리지의 개발은 요렇게 마무리되겠습니다~


2021년 10월 20일 수요일

FontPack 제작 #12 - 유니코드 용 폰트 넣기

유니코드는 다국어 기본 평면(BMP, Basic Multilingual Plane)이 필요합니다.

부가 평면을 추가해도 되겠지만, 현재 MSX 활용 상황(ㅋ)를 볼 때 BMP만 있어도 충분할 것 같네요.


아래 그림이 폰트팩에서 실제 사용하는 유니코드(BMP) 폰트를 그림파일로 추출한 것입니다.




참고로, CP949 코드의 폰트는 1/4 정도의 영역만 사용합니다.




폰트 크기는 기존 폰트팩 V1과 같은 사이즈인 16 x 16 및 12 x 12 픽셀을 사용합니다.

BMP의 U+0000 ~ U+FFFF 문자를 16 x 16 사이즈의 비트맵으로 만들면 용량이 2MB가 됩니다.

결국 폰트팩 V2에서는 플래쉬롬의 4MB가 유니코드 폰트로 쓰이게 되는거죠.



폰트롬을 생성하는 방법은 FontPackTool 2.0 프로그램을 이용합니다.

기존 버전에서 유니코드 용 폰트를 선택하는 기능과 V2 롬을 생성하는 버튼이 추가되어있습니다.


고정폭의 폰트를 써야하니까 선택의 여지가 별로 없는건 똑같아요 ㅎ.ㅎ

굴림체, 돋움체, 바탕체, 궁서체 4개입니다.





V1 ROM으로 생성하면, 2MB의 파일이 나오구요. V2 ROM일때는 8MB입니다.

아래는 폰트팩 V2 롬을 다운로드 하는 모습입니다.

FONTPACK.COM 프로그램은 V1, V2 카트리지를 자동인식해서 동작합니다.

사용자가 따로 옵션에 신경 쓸 필요는 없어요.





기존 V1의 기능들은 이미 동작모습을 보셨으니, 유니코드가 제대로 동작하는지만 보겠습니다요~


U+AC00 문자입니다. 한글 영역입니다.




U+9752 문자입니다. 한자 영역이죠. 잘 나오네욤 ㅎ.ㅎ





이번엔 유니코드를 지원하는 프로그램에서 어떻게 출력되는지 봅시다요!

테스트 용으로 쓰인 문서는 첨부파일로 넣었으니 참고하시구요. (UTF16-LE 인코딩)

Download: UTF16LE.TXT


한글문서 뷰어인 HV의 동작 모습입니다.

아래는 기존 폰트팩 V1을 썼을 때의 출력입니다.

폰트팩에서 유니코드를 CP949로 코드변환을 지원합니다만...

CP949에 존재하지 않는 문자는 출력이 되지않겠죠.




아래는 폰트팩 V2의 유니코드 폰트를 이용하여 제대로 출력된 모습입니다.




음... 사진의 문자열이 익숙한 분이라면, 마츠다 세이코의 노래도 잘 아시겠네요 ㅎ.ㅎ

(노래 듣는데 제목이 제대로 안보여서, 폰트팩 V2를 만들었다는 소문이...ㅋ)



그럼, 편안한 밤 되세요~ ㅎ.ㅎ


2021년 10월 16일 토요일

FontPack 제작 #11 - V2로 업그레이드

한글 FontPack 카트리지라고 들어보셨나요?ㅋ

요게 6년전에 만든건데요. 이제 다음 버전으로 가야될 타이밍이 된 것 같아요.


이번 폰트팩 V2에서는 유니코드 폰트가 추가됩니다.

물론 기존 폰트팩에 Unicode to CP949 코드 변환기가 있지만,

CP949 코드에 없는 한자, 특수문자는 표시가 불가능하거든요.

최소한 MP3의 ID3v2의 유니코드 문자열이라도 제대로 보여주면 좋을 듯 해서요~ ㅎ.ㅎ






기존 폰트팩 V1은 1MB 플래쉬롬 두개에 이리저리 구겨 넣었는데요.

폰트팩 V2는 8MB 플래쉬롬을 사용합니다.

롬의 하위 2MB는 기존 V1과 용도가 같습니다.

바꿔 말하면, 기존 V1의 기능을 그대로 갖고 있다는 얘기죠.


SRAM은 32KB로 줄였습니다.

유저폰트를 만들어서 활용하는 경우가 없어서요. 사실 저도 안쓰고 있... ㅎ.ㅎ;

BIOS 용 8x8 2KB 폰트램(SRAM) 기능은 기존과 똑같이 동작합니다.


그 외, V1 보드에서 BUSDIR 신호를 빼먹었던건 넣어놨구요ㅋ



일단 보드가 바꼈으니, 기존 기능들이 제대로 동작하는지 확인해보아요~


기본 2MB 롬(BIOS + FONT)을 다운로드 하는 모습입니다.





조합형 폰트는 아래처럼 잘 나오네요.

HV에서 ISS 가사 파일을 읽은 모습입니다.





완성형 폰트도 나오구요.





12 x 12 사이즈의 작은 폰트도 잘 나오네요.





DOS2에서 ANSI5 모드로 전환한 모습





이건 ADIR(ANSI DIR)을 실행해본 모습입니다.





그럼, 즐거운 주말 되셔요!



2021년 10월 10일 일요일

[MV] 걸그룹 불황을 이겨보아요~ ㅎ.ㅎ

이어지는 COVID-19 판데믹으로 걸그룹 활동에도 찬바람이 불고 있네요.


에이X크 -> 올해는 컴백 안하는 듯요. 연차도 많아서 뭐..ㅋ

러블X즈 -> 이번 11월 계약만료인데, 재계약 소식도 없고 컴백도 없었네요.

여자X구 -> 이미 공중분해 -_-


.

.

.


이럴 때는 옛날 노래를 들어보아요~ ㅎ.ㅎ

30년전 Wink 누님말고, 더 뒤로~ 뒤로~~ 성자(松田聖子) 이모님으로!!ㅋ





유투브에서 음방 영상을 몇개 받아서 MMC/SD용으로 변환했습니다.

파일용량이 크니까 구글 드라이브에서 받으셔요~

총 5개입니다.


https://drive.google.com/drive/folders/1kDPodCJKzot6kKYQeITOKSAtALgbrwfh?usp=sharing



V3,V4가 없거나 실기구동이 귀찮으신 분들은 아래 영상으로 간접 체험을 하시면 되겠습니다요.


00:00 青い珊瑚礁 (1980.07)

02:57 Eighteen (1980.10)

05:08 小麦色のマーメイド (1982.07)

06:59 夏の扉 (1981.04)

10:33 風は秋色 (1980.10)


그럼, 이만...


2021년 10월 5일 화요일

30년 전 Wink의 추억

국,중딩 시절에는 외국 팝음악을 많이 들었는데요.

아버지가 자주 들려주시던 70년대 유명했던 아바, 비지스, 비틀즈 같은 분들이랑,

80년대 아하, 모던토킹, 왬, 마돈나, 마이클잭슨 등의 분들이 생각나네요 ㅎ.ㅎ


사실 국내 가요는 별로 듣지 않았는데요.

당시에는 국내랑 외국음악의 차이가 넘사벽 수준이라...

진짜 좋아하던 노래가 아니면 일부러 듣지는 않았던 것 같네요 ㅎ.ㅎ;


그러다 중딩 때 우연히 일본 애니 음악들을 들으면서 J-Pop을 접하게 되었네요.

.

.

.

그리고 90년 어느날 애니 음악이 아닌 노래를 하나 듣게 됩니다.

중3때 처음 들었던게 이 노래였어요.





노래 제목은 '淋しい熱帯魚'입니다.

당시 처음 들었을 때엔 진짜 '헉'소리가 나올 정도로 충격이었죠.

노래를 부른 누님(?)들이 Wink라는걸 알게 되서, 그 때부터 J-Pop 아이돌쪽으로도 눈이 가게 되더라구요.

고딩때까지 Wink, CoCo, 사카이 노리코 등의 노래들을 들었지만, 주로 듣던 건 Wink였습니다.


우리입장에서는 Wink 노래에 접근이 쉬웠던 이유가 하나 있는데요.

이 누님들 노래 대부분이 외국 팝송의 번안곡이었거든요. 아마 70% 정도 될겁니다.

물론 위의 淋しい熱帯魚처럼 좋은 오리지널 곡들도 있었구요.


이미 어느정도 히트했던 곡들이고, 이미 원곡을 알고 있는 경우도 많아서 듣는데 부담이 별로 없었죠.

60~80년대 유행했던 노래들을 Wink 스타일로 듣는 것도 나름 신선했습니다.










요상한 안무 컨셉으로 뇌정지가 올뻔한 적도 많았지만, 노래들은 참 좋았었지요.

중고딩 시절에는 많이 들었었는데, 몇년 안가서 인기가 시들해지더라구요.

아이돌의 숙명인가...ㅋ


90년 중반으로 넘어가니 들을만한 아이돌 가수도 안나오고해서 이바닥(?)을 떠나게 되었습니다요.

아이돌 노래는 접고, ELT, TUBE, 안전지대, 차게&아스카 이런쪽으로 방향을 돌렸었죠. ㅎ.ㅎ


90년 후반에는 마츠다 세이코, 나카모리 아키나 같은 예전 아이돌 노래라도 들어볼까 했는데,

그냥 포기했던 기억도 나네요ㅋ


암튼 가끔 Wink 노래들을 듣다보면 중딩, 고딩 시절 기억들이 되살아나서 참 좋습니다요.

잠자고 있던 뇌세포들이 깨어나는 느낌? ㅎ.ㅎ



마지막으로 Wink의 번안곡이 아닌 오리지널 곡으로 모은 영상을 하나 올려봅니다.

Wink에 관심이 없으셨으면 이미 브라우저 '뒤로가기'를 누르셨을 테고,

Wink의 추억이 있으신 분이라면 히트했던 번안곡들은 지겹게 들으셨겠죠?


멤버가 솔로로 부른 곡도 몇개 포함해서 엄선했습니다.

예전 기억으로 고른 것들이라, 영상 올리고 보니 누락된 노래도 좀 있네요. 아쉽아쉽..ㅋ


30년 전 Wink의 추억을 가지신 분들께 이 영상을 바칩니다요~ ㅎ.ㅎ




그럼 이만...