2016년 9월 25일 일요일

[WIN] VS Code에서 GEN80 어셈블러 출력을 색칠(!)

간단한 C코드 빌드하거나 어셈블리로 개발하는 프로젝트인 경우, VS Code를 애용합니다.

대개 빌드하면 터미널(CMD) 창을 열고 작업하거나, 그냥 Task로 등록해서 빌드 명령을 쓰는데요.


VS Code 익스텐션을 살펴보니, Task OUTPUT에서도 언어 익스텐션이 동작 가능하더라구요.

터미널 창은 ANSI라서 git을 실행하면 알록달록 잘 나와서, 요게 Task에서도 되려나...했거든요.

GEN80 같은 어셈블러 출력 시, 에러 메시지에 색깔이 칠해지면 눈에 잘 보이고 좋으니까요. ㅎ.ㅎ


요약하면,

1. 어셈블리 프로젝트 빌드시, VS Code의 Task 사용

2. Task OUTPUT의 빌드 메시지를 언어 익스텐션으로 색칠

이 되겠습니다.


백문이 불여인견! 스크린샷 나갑니다~~

색칠 보여드리려고, 일부러 소스에 에러코드를 좀 넣어봤어요. ㅎ.ㅎ





에러 메시지가 빨갛게 잘 보이니까, 좀 더 편하게 개발할 듯 합니다.


혹시 익스텐션 써보실 분은 gen80으로 검색하시면 나와요.





그럼 즐거운 일요일 되세요!


2016년 9월 20일 화요일

[WIN] VS Code에서 MSX 어셈블리를 색칠(!)

혹시 Visual Studio Code 쓰시는 분 계세요?

코딩 용 에디터인데요, 저는 쓴지 1년 가까이 되어가는 듯 합니다.

보통 VS Code라고 부르더라구요.

안써보신 분은 한번 깔아보셔도 괜찮을 듯 합니다.



일단 본론으로 넘어가서~ ㅋ

대부분 에디터가 그렇지만...

VS Code에서는 언어 익스텐션이라는걸  추가하게 되면, 해당 언어에 대해 키워드 색칠놀이(?)을 할 수 있습니다.

저야 뭐~ 이걸로 MSX 용 코드 작업할 때 쓰고 있는데요. ㅎ.ㅎ

Z80 어셈 명령어와 MSX BIOS의 엔트리 심볼, 워크에어리어 변수들을 등록해놨어요.


요거 익스텐션을 야매(!)로 만들어서 쓰고 있었는데,

이걸 마켓플레이스에 등록하는 방법이 의외로 간단하더라구요.

(뭔가 복잡한 계정 설정이 필요할까봐 쳐다보지도 않았는데..ㅋ)


그.래.서.

작업한걸 VS Code 마켓플레이스에 올렸습니다. ㅎ.ㅎ


아래처럼 VS Code의 익스텐션(확장) 메뉴에서 msx로 검색하면 나옵니다.

README 템플릿를 대충 편집하다보니, 요구사항 도움말이 안지워지고 남아있네요.ㅋ





아까 저녁에 올렸는데, 벌써 두분이 받아가셨습니다. MSX 개발자에게 경의를 표합니다!

익스텐션 설치 후, VS Code를 재실행하면 동작합니다.


파일 확장자는 GEN, MAC, INC 세개만 넣었어요.

MSX 용 어셈 소스를 열어보면 아래처럼 키워드에 이쁘게 색칠되어서 나옵니다.


참고로 아래 코드는 폰트팩 소스 일부분인데, Cobalt 컬러 테마를 쓸 때의 색깔입니다. 푸르딩딩~~~





결론은,

VS Code로 MSX 어셈 코딩하시는 분 있으시면 받아서 쓰시라는 얘기지용~ ㅎ.ㅎ


그럼 즐거운 MSX 되세요!


PS. 20160921 업뎃
아이콘 추가하고 디스플레이 이름 바꿨습니다. extension 이름은 asm-msx 그대로입니다.
그리고 키워드는 대소문자 구분하지 않도록했습니다. ㅎ.ㅎ




2016년 9월 18일 일요일

MMC/SD Drive V3 제작 #12 - Hybrid 모드 (SUBROM + MegaRAM)

일요일을 맞아, MMC/SD Drive V3의 기능을 확장해보았습니다.


MMC/SD Drive V3 내부에는 플래쉬롬(SUBROM)과 SRAM이 함께 들어있습니다.

기본 H/W는 SUBROM 1024KB + SRAM 512KB가 들어있구요,

SRAM을 확장하면, SUBROM 1024KB + SRAM 1024KB 상태가 됩니다.


만약 롬 이미지를 구동는 경우,

MegaRAM 또는 SUBROM 모드를 쓰면 최대 1024KB의 롬 파일을 로드할 수 있습니다.


대부분 MSX 롬은 512KB 이하의 크기이지만, 가끔 2048KB나 되는 대용량 롬을 볼 수 있습니다.

Pointless Fighting, 수퍼 게임 월드(126합팩) 등이요. (두개 뿐이었나...ㅋ)


이런 롬들을 SUBROM과 SRAM에 나눠서 다운로드 후 구동하는 기능을 추가하게 되었습니다.

물론 기존에도 전혀 불가능하지는 않았어요.

사용자가 직접 파일을 쪼개서 다운로드해서 구동하는 방법도 있었습니다.


하지만 이 방법으로는 SCC 매퍼만 구동가능하다는 단점이 있구요.

결정적으로 귀찮아요.

그래서 한방에 동작하는 모드로 구현했습니다.


SUBROM과 SRAM을 함께 쓰니까, 이름은 Hybrid 모드라고 지었구요~ ㅋ

MMCSD.COM 프로그램으로 ROM 실행 시, 사용자가 선택해서 모드전환을 할 수 있습니다.

롬 용량이 1024KB 넘는 경우만 쓸 수 있어요.


아래는 2048KB 용량의 Pointless Fighting 롬을 다운로드 하는 모습입니다.

초반 1024KB는 SUBROM에 들어가겠구요. 후반 1024KB는 SRAM(MegaRAM)으로 다운로드됩니다.





V3의 SRAM을 확장(1024KB)한 경우만 2048KB 롬을 실행할 수 있구요.

V3 기본 상태의 SRAM(512KB)인 경우는 1536KB 롬까지 실행 가능합니다.

수퍼 마리오 월드(1304KB)를 다운로드 할 수 있겠네요.



그럼, 실제 동작하는 영상을 보시겠습니다요~

Pointless Fighting -> Super Mario World -> Super Game World 순으로 실행합니다.

PAC-V 카트리지도 함께 출연했어요. ㅋㅋ





그럼, 즐거운 일요일 밤 되세요!!