2016년 10월 28일 금요일

FAT16.COM ver0.12 기능 추가 버전 (1026.10.28)

Download: FAT16_20161028_OCM_DiskROM_and_RAMD_SEG.zip

----------------------------------------------------------------

    FAT16.COM ver0.12의 기능 추가 버전 (2016.10.28)

        By 서영만 <sharksym@hitel.net>

----------------------------------------------------------------


* 이 프로그램은...


  - OKEI씨의 FAT16.COM 에 추가 코드를 넣은 프로그램입니다.


  - 로더 + 원본 FAT16 ver0.12 를 하나의 파일로 묶었습니다.

    원본 FAT16 코드 자체를 수정한 것이 아닙니다.


  - 첨부된 FAT16.COM 은 새로운 파일입니다.

    OKEI씨의 원본 파일은 fat012.zip을 참고하세요.



* 추가 내용


  - OCM DiskROM 디텍션

    OCM의 MEGA-SD 커널은 FAT16 루틴이 이미 내장되어있습니다.

    이 경우 원본 FAT16 프로그램을 실행하면 오동작합니다.

    MEGA-SD를 사용하는 경우 FAT16을 로딩하지 않도록 했습니다.

    OCM 딥스위치 8번 OFF 시, FAT16을 정상적으로 로딩합니다.


  - 램디스크 보완

    원본 FAT16 프로그램은 BDOS의 _RAMD(68H) 호출을 막습니다.

    따라서 램디스크 크기 변경/확인 등의 시스템콜을 못 씁니다.

    이 경우, 현재 설정된 램디스크 크기를 알 수 있도록,

    FAT16 로딩 전 RAMD_SEG 이름의 환경 변수를 설정합니다.

    HEX 값으로 설정됩니다.

    예) RAMD_SEG = 10 인 경우, 할당된 세그먼트 갯수는 16개



* 사용법


  원본 FAT16.COM과 형태 및 실행 방법 동일합니다.



* 마지막으로


  이 프로그램 관련 요청 사항이 있으시면, 이메일을 보내주세요.

  



  

2016년 10월 25일 화요일

BASIC에서 DOS 커맨드 실행

BASIC 모드에서 DOS 모드로 복귀(전환) 후 특정 커맨드를 자동으로 실행하는 방법입니다.

어떻게 구현하는지 궁금해하시는 분이 계셔서, 직접 보여드리겠습니다요~ ㅎ.ㅎ


일단 도스로 복귀하는 방법부터 알아야겠네요.

BASIC에서 CALL SYSTEM 명령을 사용하면 됩니다.

(참고로 CALL은 MSX에서 외부 슬롯의 BASIC 커맨드를 실행하는 명령어입니다.)


여기서 한가지 알고계셔야 할 부분은,

DOS1에서는 CALL SYSTEM 명령으로 DOS 복귀만 가능.

DOS2에서는 CALL SYSTEM("문자열") 식으로 DOS 복귀 후 실행할 명령까지 입력가능.

이라는 점입니다.


지금부터 설명드릴 "DOS 복귀 후 커맨드 실행하기"는 DOS1 환경 기준입니다.

DOS2에서는 CALL SYSTEM("문자열")만으로 쉽게 가능하다고 위에서 알려드렸구요.


DOS1에서 이걸 구현하려면, 약간의 꼼수가 필요합니다.

워낙 유명한거라서 아시는 분들이 많을꺼에요. ㅎ.ㅎ


바로 "WORKAREA의 키입력 버퍼에 글자 밀어넣기"가 되겠습니다.


MSX의 BIOS에서는 주기적(VDP VBLANK 인터럽트)으로 키보드 입력을 체크해서 버퍼에 채워넣습니다.

키 매트릭스 버퍼는 현재 눌려진 키(스위치)의 상태를 나타내구요.

키입력 버퍼는 눌러진 키를 ASCII 코드로 변환하여 순서대로 채워넣습니다.


여기서 키입력 버퍼는 40바이트의 원형 버퍼(Circular Buffer/Queue)로 구현되어있구요.

WORKAREA FBF0H 부터 할당이 되어있습니다.

원형 버퍼니까 쓰기/읽기 포인터가 필요한데요.

각각 WORKAREA F3F8H, F3FAH에 저장됩니다.


여기에 ASCII 코드를 채워넣으면, 사용자가 키보드를 직접 누르지 않더라도 키입력이 된 것처럼 만들 수 있어요.


그럼 간단한(?) BASIC 프로그램으로 동작을 보여드리겠습니다요~

아래는 BASIC 모드에서 DOS 모드로 복귀 후, DIR 명령을 수행하는 프로그램입니다.

DOS 복귀 전에, 키입력 버퍼에 DIR + '\r' 4바이트 문자를 넣어서 자동으로 실행되는 것이죠.

Download: DOS_COMMAND_DIR.zip




프로그램 자체는 C$ 문자열을 키입력 버퍼에 집어넣고, CALL SYSTEM을 수행하는게 전부입니다.

DOS2에서는 그냥 CALL SYSTEM("DIR") 하면 끝나는 작업을, DOS1에서는 이렇게 힘들게 해야되네요.ㅋ



그럼, 실제로 실행해보겠습니다.

해당 BASIC 프로그램은 DIR.BAS라는 이름의 파일로 저장했습니다.

DOS 부팅 후 BASIC DIR.BAS 명령으로 프로그램을 실행하면...




BASIC 모드에서 DIR.BAS 프로그램이 실행되어 다시 DOS로 돌아옵니다.

복귀하면 자동으로 DIR 명령이 수행되구요.





어떻게 구현하는지 아시겠죠? ㅎ.ㅎ


그럼, 즐거운 밤되셔요~


2016년 10월 18일 화요일

[파라동 이벤트] 11111번째 게시물의 주인공은?

"MSX의 천국" 네이버 카페로 이사온지 꽤 되었는데, 게시물 히트 이벤트는 이번이 처음인가?

기억이 안나는걸 보면, 이번이 처음인 듯 하네요! ㅎ.ㅎ


10000번째 게시물로 이벤트를 하려했지만, 잠시 숫자를 착각해서 시기를 놓치는 바람에~ㅋ

급하게 11111번째 게시물 이벤트로 고고고!


2016년 10월 18일, 드디어 게시물의 주인공이 등장했네요.

이벤트 상품은, CPLD + NiMH 충전지로 만든 PAC 카트리지입니다.


원래 이건 PAC-V 만들면서 FM-PAC 매퍼 + OPLL I/O 테스트용으로 쓰던 것이었는데요.

이번에 이벤트 상품으로 둔갑(?)하게 되었습니다.ㅋㅋ


DevPack v1.1 보드 귀퉁이를 잘라서 충전지를 붙여놨습지요.





흰색 케이스에 레이블도 붙이고~

레이블은 예전 천국동 대문으로 쓰였던 이미지를 재활용.ㅋ

하지만 이쁘죠~ ㅎ.ㅎ





당첨자 닉네임도 박아넣고~ (타인에게 양도금지! ㅋ)

구름으로 가렸어요. ㅎ.ㅎ





간만에 즐거운 카페 이벤트였습니다.


2016년 10월 17일 월요일

PAC-V 레이블을 붙였습니다~ ㅎ.ㅎ

맛탱이님, 택배 잘 받았습니다!

레이블 사이즈가 PERFECT!! 두둥~ ㅎ.ㅎb


요건 케이스 앞면~




케이스 뒷면~




아래는 터보알에 꽂은 모습입니다.

앞으로 쭈~욱 슬롯1 고정 멤버로 활동예정입니다요~ ㅎ.ㅎb





즐거운 밤 되셔요~

2016년 10월 7일 금요일

天愛金壽 (천애금수) 가을 버전입니다~

납땜 시즌이 끝나고 천애금수가 돌아왔어요~ ㅎ.ㅎ/


내용물은 PAC-V 입니다.






이번에는 납땜하느라 좀 고생했어요.

보드 두장 합체에 LED, 저항 개수가 많아서 납도 많이 함유(?)되어있습니다.

보드 무게가 64g입니다. 제가 만든 것 중에서 가장 무겁네요.ㅋ

참고로 MMC/SD Drive V3 보드는 30g입니다.


사진에는 보드 30장만 보이지만, 책상 옆에 8개가 더 있어요. 총 38장입니다.

완성하니까 뿌듯하군요.

.

.

.

라지만 이제 매뉴얼을 만들어야 할 시간! ㅎ.ㅎ;


보드는 다음 주 중으로 맛탱이님께 전달할 예정입니다. (케이스 합체 예정)


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