C10=10uF/16V
C14=10uF/16V
C22=100uF/16V
'Consoles > MSX' 카테고리의 다른 글
OLED 출력 관련 (0) | 2023.08.08 |
---|---|
msx-rom-and-floppy-emulator (0) | 2023.07.26 |
MSX 키보드 관련 자료 (0) | 2023.04.13 |
사용 기종 정보 (0) | 2023.04.10 |
C10=10uF/16V
C14=10uF/16V
C22=100uF/16V
OLED 출력 관련 (0) | 2023.08.08 |
---|---|
msx-rom-and-floppy-emulator (0) | 2023.07.26 |
MSX 키보드 관련 자료 (0) | 2023.04.13 |
사용 기종 정보 (0) | 2023.04.10 |
https://controllerstech.com/oled-display-using-i2c-stm32/
https://stm32-base.org/assets/pdf/boards/original-schematic-STM32F407VGT6_STM32F4XX_M.pdf
소니기종 도터보드 사운드 문제(HIC-1) (0) | 2024.05.11 |
---|---|
msx-rom-and-floppy-emulator (0) | 2023.07.26 |
MSX 키보드 관련 자료 (0) | 2023.04.13 |
사용 기종 정보 (0) | 2023.04.10 |
https://github.com/kernelcrash/msx-rom-and-floppy-emulator
이것을 테스트하기 위해 Omega MSX2 컴퓨터를 사용했습니다. 다른 MSX 또는 MSX2 컴퓨터에서는 테스트하지 않았습니다.
STM32F407VET6 또는 STM32F407VGT6 보드 사용('B'는 슬롯 커넥터의 버퍼링된 핀을 의미함)
저는 작은 파티션(1GB 미만)으로 마이크로 SD 카드를 FAT32로 포맷하는 경향이 있습니다. 루트에 msx 디렉터리를 만들고 해당 디렉터리에 ROM 이미지와 디스크 이미지를 추가합니다. 파일을 이 디렉토리에 복사하는 순서에 따라 파일을 순환할 수 있는 순서가 결정됩니다(즉, 알파벳순이 아님).
몇 가지 제한 사항:
디스크 이미지는 .dsk로 끝나야 하며 크기는 737280 또는 368640바이트여야 합니다.
디스크를 로드하려면 디스크롬이 필요합니다. 'disk.rom'이라는 SD 카드의 루트에 하나의 디스크 롬을 넣습니다. MD5 0ed6dbd654da55b56dfb331dd3df82f0 가 있는 NMS8250 디스크 롬으로만 테스트했습니다.
WD2793 플로피 디스크 컨트롤러 지원은 Marat Fayzullin이 만든 fMSX의 WD1793.c를 기반으로 합니다. 참고:
이제 SD 카드의 파일 목록을 표시하는 기본 MSX 프로그램(kcmfs)도 있어 하나를 선택하고 부팅할 수 있습니다. kcmfs를 사용하려면 menu.rom 파일을 SD 카드의 루트에 복사해야 합니다. STM32F4 보드를 재설정한 후 msx 디렉토리의 첫 번째 파일 대신 menu.rom을 로드합니다. 자세한 내용은 KCMFS 섹션을 참조하십시오.
일반적으로 저는 developer.arm.com의 ARM GNU 툴체인을 사용하지만 최신 Linux 배포판에서는 실제로 패키징된 ARM 크로스 컴파일러를 사용할 수 있습니다(예: 데비안/우분투에서는 'apt install gcc-arm-none-eabi'). . 저는 컴파일에만 Linux를 사용하므로 다른 플랫폼에서 수행하는 방법을 모릅니다.
st.com의 STM32F4DISCOVERY 보드 펌웨어 패키지가 필요합니다. 이것을 STSW-STM32068이라고 합니다. 이 저장소를 git이 복제한 '위' 디렉토리에 압축을 풀어야 합니다. 예. 당신이 볼 수있는 어떤 폴더에
./STM32F4-Discovery_FW_V1.1.0
./msx-rom-and-floppy-emulator
빌드
cd msx-rom-and-floppy-emulator
make
그러면 stm32f4 보드에 플래시할 수 있는 hex 및 bin 파일이 생성됩니다. USB DFU 모드를 사용하여 전송하는 예는 아래에 있습니다.
stm32 칩으로 펌웨어를 작성하기 위한 많은 옵션이 있습니다. transfer.sh 스크립트에 dfu-util을 사용한 예가 있습니다. 이것이 작동하려면 USB를 통해 보드를 연결하면 DFU 장치가 표시되도록 BOOT0 및/또는 BOOT1 설정을 지정해야 합니다. 그런 다음 transfer.sh를 실행할 수 있습니다. 이 작업을 수행한 후 BOOT0 또는 BOOT1 점퍼를 제거하십시오.
보드를 DFU 장치로 표시하는 데 문제가 있는 경우 PA10과 GND 사이에 풀다운 저항을 배치할 수 있습니다(1K에서 10K 사이의 값이 아마도 작동할 것임).
kcmfs 디렉토리에는 사용자에게 메뉴를 제공하는 sdcc 기반 MSX 프로그램이 있습니다. SD 카드의 msx 디렉토리에 있는 파일을 나열하고 하나를 선택하면 결과적으로 재부팅됩니다. SD 카드의 루트에 kcmfs(menu.rom)를 넣으면 STM32F4 보드를 리셋한 후 항상 menu.rom을 부팅합니다.
kcmfs는 내가 할 수 있는 만큼 간단합니다. 멋진 그래픽이 없습니다. 부팅 시 SD 카드의 msx 디렉토리에 있는 처음 20개 파일이 표시됩니다. 그들은 왼쪽 아래에 'a'에서 't'로 나열됩니다. 문자를 누르면 MSX 컴퓨터가 재부팅되고 선택한 항목이 시작됩니다. msx 디렉토리에 20개 이상의 파일이 있다고 가정하면 20개 파일의 두 번째 페이지에 대해 '2'를 누르고 세 번째에 대해 '3'을 누르기만 하면 됩니다. '?'를 눌러도 됩니다. 도움을 받으려면.
매우 간단한 프로토콜이 사용됩니다.
PC2는 _MREQ의 -ve 에지에서 인터럽트합니다. 과거에는 _MREQ int가 +ve 가장자리에 있도록 하는 다른 기술을 사용했습니다. 이전 기술은 주 while() 루프에 사용할 수 있는 시간을 줄이는 대신 _MREQ 처리에 대해 더 나은 타이밍 결과를 제공합니다. MSX는 M1이 560ns 동안 낮고 일반 메모리 액세스가 690ns인 대기 상태를 추가합니다. stm32f407 @ 240MHz에서 인터럽트 처리기의 첫 번째 라인까지 약 100ns의 최상의 경우이므로 다른 Z80A 시스템만큼 시간이 촉박하지 않습니다. 즉. -ve 가장자리의 인터럽트를 사용하여 '떠날' 수 있습니다. 인터럽트 처리 코드는 ARM 어셈블리로 작성되었습니다.
인터럽트 처리기는 범용 전역 상수 및 포인터로 사용되는 부동 소수점 레지스터를 많이 사용합니다. 이는 인터럽트 핸들러가 레지스터를 푸시할 필요가 없음을 의미합니다(ARM에서 r0-r3 및 r12는 사용자가 원하든 원하지 않든 자동으로 푸시됨). fpu 레지스터는 고속 RAM으로 효과적으로 사용됩니다. 다음은 예입니다.
// grab the pointer to GPIOA from s11
vmov r1,s11
// s1 is preset to the value '1'. Send PA0 high
vstr s1,[r1,ODR]
32개의 32비트 fpu 레지스터(s0 ~ s31)가 있습니다. gcc가 s16, s17, s18 및 s19(d8 및 d9)로 이상한 작업을 수행하려는 경향이 있음을 알았지만 대부분 사용했습니다. 그래서 나는 그것들을 피하는 경향이 있습니다.
_MREQ int에 대한 결정 프로세스까지;
1. 보드 준비 : STM32F407 (알리 구입 링크 : 11$)
2. 보드와 슬롯의 연결 (MSX 슬롯용 만능기판 이용을 추천)
PA1 - GND와 이 핀을 사용하여 버튼을 설치. 풀업 저항은 필요 없음. ('다음' 버튼)
PA2 - GND와 이 핀을 사용하여 버튼을 설치. 풀업 저항은 필요 없음. ('이전' 버튼)
PE0 에서 PE15 - BA0 에서 BA15
PD8 에서 PD15 - BD0 에서 BD7
PC0 - _B_IORQ
PC1 - _SLTSL1 혹은 SLTSL2
PC2 - _B_MREQ
PC3 - _B_RD
PC4 - _BUSDIR1 혹은 2 (RP5C01 칩을 에뮬레이션 할 때에만 필요)
GND - GND
3. github 저장소(https://github.com/kernelcrash/msx-rom-and-floppy-emulator) clone 혹은 zip 다운로드 후 압축풀기
4. st.com 사이트에서 보드 펌웨어 패키지 en.stsw-stm32068.zip 다운로드(https://www.st.com/en/embedded-software/stsw-stm32068.html) 후 압축풀기
5. 임의의 폴더 안에 프로그램 폴더(msx-rom-and-floppy-emulator)와 보드 펌웨어 폴더 (STM32F4-Discovery_FW_V1.1.0)가 나란히 존재하도록 할 것
6. (MacOS) homebrew 설치 : ruby -e "(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
7. (MacOS) make 설치 : brew install make
8. (MacOS) hex2bin 설치 : http://sourceforge.net/projects/hex2bin/ 에서 다운로드 후 압축해제 -> 폴더 안에 들어가서 hex2bin, mot2bin, hex2bin.1 파일 삭제 -> make 명령으로 MacOS용 바이너리 새로 빌드
9. arm 크로스 컴파일러(arm-none-eabi-gcc) 설치 : brew install --cask gcc-arm-embedded
10. 프로그램 컴파일 : 프로그램 폴더(msx-rom-and-floppy-emulator) 안으로 들어가서 make -> *.hex, *.bin 생성
11. 보드 프로그래머 툴(STM32 Cube Programmer) 다운로드 및 설치 : https://www.st.com/en/development-tools/stm32cubeprog.html
12. 보드 DFU 모드 설정 : SWD 단자 중에서 BT0 (BOOT 0) 단자와 보드의 5V 단자를 연결해줌
13. 보드의 USB 단자와 PC를 케이블로 연결 후 STM32 Cube Programmer를 실행
14. 메뉴 왼쪽 위에서 두번째의 'Erasing & Programming'을 선택 -> Download의 File path에서 Browse 버튼을 눌러 아까 생성한 *.hex 파일을 불러옴
15. Start Programming 버튼 클릭. 프로그램이 보드에 기록됨
16. 보드를 PC에서 분리하고 BT0 단자와 5V 단자의 연결을 끊어줌
17. 마이크로 SD 카드를 FAT16으로 포맷 -> 루트 폴더에 menu.rom 파일을 넣고, MSX 폴더를 만들어서 그 안에 원하는 롬팩 이미지와 디스크 이미지를 넣는다
18. 보드를 MSX의 카트리지 슬롯에 삽입하고 전원을 넣으면 사용 가능
소니기종 도터보드 사운드 문제(HIC-1) (0) | 2024.05.11 |
---|---|
OLED 출력 관련 (0) | 2023.08.08 |
MSX 키보드 관련 자료 (0) | 2023.04.13 |
사용 기종 정보 (0) | 2023.04.10 |
대우 MSX 키보드 매트릭스 : https://blog.naver.com/jsfx3/222011871680
대우 MSX 키보드 연결 : http://www.caro.su/msx/kbd4msx.htm
복각MSX님 USB 키보드 인터페이스 : https://cafe.naver.com/msx/27107
Brightsite님 PS/2 키보드 인터페이스 : https://cafe.naver.com/msx/26358
아두이노-MSX PS/2 연결 사례 : https://msx.gouget.com.br/2014/06/24/ps2-keyboard-to-msx-with-arduino/
키 매트릭스에 관해 : http://map.grauw.nl/articles/keymatrix.php
고명호님 인터페이스 : https://cafe.naver.com/msx/20819
고명호님 인터페이스 장착법 : https://cafe.naver.com/msx/21144
라즈베리파이 pico를 이용한 장착법 : https://github.com/hra1129/msx_tools/tree/main/usb_keyboard_bridge_for_msx
ESP32 블루투스 키보드 연결사례(듀크뉴켐3D ESP32포팅) : https://github.com/bozont/Duke3D/blob/master/components/SDL/bluetoothkeyboard/bluetoothkeyboard.h
소니기종 도터보드 사운드 문제(HIC-1) (0) | 2024.05.11 |
---|---|
OLED 출력 관련 (0) | 2023.08.08 |
msx-rom-and-floppy-emulator (0) | 2023.07.26 |
사용 기종 정보 (0) | 2023.04.10 |
대우 X-II (CPC-400)
- GOTEK USB 드라이브
- MMC/SD V4
- S-VIDEO AV 보드 (by 숲속라키)
- SC-88VL 미디 모듈
- 8BitDo MD 2.4Ghz 무선패드 개조, 내장
- V9958 VDP 교체
- 메모리 128KB 증설
- JAILBAR 노이즈필터 처리
- 전원부 교체 (민웰 SMPS RT-50B)
소니기종 도터보드 사운드 문제(HIC-1) (0) | 2024.05.11 |
---|---|
OLED 출력 관련 (0) | 2023.08.08 |
msx-rom-and-floppy-emulator (0) | 2023.07.26 |
MSX 키보드 관련 자료 (0) | 2023.04.13 |