글
아타리 링스는 현대의 낸드플래쉬와 비슷한 방법으로 카트리지에 접근하는데, 접근할 블록의 주소값을 한번에 1비트씩 8번 쓴 다음 블록 내 원하는 값이 나올 때 까지 1바이트씩 계속 읽어서 값이 나오면 그걸 RAM이나 레지스터로 복사하던가 아니면 스트리밍을 시작하는 식이다.
여기서 블록은 최대 256개까지이며, 각 블록의 크기는 최대 2048바이트까지 커질 수 있다. 그래서 링스에서 읽을 수 있는 카트리지의 영역은 도합 512KB가 된다.
이때 AUDIN 핀을 ROM 카트리지의 최상위 비트에 물려서 최대 1MB로 그 영역을 확장하는 게 가능하지만, 이것도 한계는 있다.
그 이유는 CPU에는 64KB RAM, 주변장치 I/O, 바이오스 ROM이 매핑되어져 있지만 ROM은 메모리 매핑되어있지 않고, 최대 접근 가능 영역이 64KB이기 때문인데, 이 때문에 ROM의 내용물(코드, 데이터)을 사용하기 위해서는 일단 RAM의 용량을 사용할 내용물의 용량(또는 그 이상)만큼 비워둔 다음 RAM에 복사해서 써야 한다. 그나마 데이터의 경우는 ROM에서 스트리밍하는 방식으로 사용할 수는 있지만 느리다.
cc65(6502 계열 CPU용 C 컴파일러)는 이 경우를 대비해 아타리 링스용 간이 파일시스템을 구현해놨다. (lynx_load, lynx_exec)
'기타' 카테고리의 다른 글
도돈파치 캠페인 (만우절 낚시) (0) | 2024.04.01 |
---|---|
해상도 타이밍에 대한 고찰 (백업본) (0) | 2023.06.11 |
네이버 블로그를 초기화하게 되었습니다. (0) | 2023.06.03 |
곧휴가철 (백업본) (0) | 2023.06.03 |
ORN BENCH (백업본) (4) | 2023.06.03 |
RECENT COMMENT