펌웨어 펌웨어 zx 스펙트럼. 영구 메모리

설치 방법 설명 쿼터스, 그러나 그것은 과제를 향한 한 걸음에 불과했습니다. 확인하려면 FPGA프로그래머가 작업 중이고 첫 번째 것은 플래시해야 했습니다.
이것은 두 가지 방법으로 수행될 수 있음이 밝혀졌습니다. 첫 번째는 JTAG인터페이스, 이 경우 구성 정보는 FPGA에 직접 재봉됩니다. 이 방법의 단점은 FPGA 메모리는 휘발성입니다.그리고 펌웨어는 전원이 켜진 후 매번 FPGA에 로드되어야 합니다.

이 상황에서 벗어나는 길은 스스로를 암시하며 다음과 같은 사실로 구성됩니다. FPGA 옆에 메모리 칩을 놓고 전원이 인가된 후 매번 펌웨어를 로드합니다.. 추가할 가치가 있는 유일한 것은 펌웨어가 일반 플래시 드라이브에 저장되지 않고 특수 마이크로 회로(순차 구성 ROM)에 저장된다는 것입니다. ~에 알테라시리즈의 마이크로 회로입니다 EPCS또는 EPCQ, 인터페이스로 프로그래밍 가능 활성 직렬. 이것은 두 번째 방법입니다. 그 의미는 직렬 구성 ROM 칩을 프로그래밍하는 것이며 전원이 인가된 후 FPGA는 펌웨어를 뺍니다.
그러나 여기서 또 다른 질문이 생깁니다. 직렬 구성 ROM 칩을 프로그래밍하려면 별도의 커넥터가 필요합니까?
FPGA 개발자가 이것을 처리했으며 FPGA는 인터페이스 간의 중개자 역할을 할 수 있습니다. JTAG그리고 활성 직렬. 즉, 그녀는 다음을 통해 펌웨어를 수신합니다. JTAG인터페이스를 사용하여 ROM에 씁니다. 활성 직렬. 이론을 정리하고 실습을 시작할 수 있습니다.

내 요청에 따라 판매자는 메일로 디버그 보드 다이어그램과 몇 가지 간단한 프로젝트를 보냈습니다. 프로젝트 중 하나에서 확장명이 있는 파일이 발견되었습니다. .소프, 펌웨어에 필요합니다.
FPGA를 플래시하려면 jtag필요한:

  • 운영 쿼터스
  • 고르다 프로그램 제작자도구
  • 펌웨어 파일 지정


  • 버튼을 눌러 FPGA 플래시 시작, 필요한 체크박스를 설정한 후

  • 오른쪽 상단 모서리에 성공적인 펌웨어가 있으면 100% 성공이 표시됩니다.

.sof 파일을 가져온 동일한 폴더에서 확장자가 .포프.이 확장자를 가진 파일은 ROM에 직접 연결해서 플래싱을 해야 하는데, jtag. 이렇게 하려면 .sof 파일에서 확장자를 가진 파일을 가져와야 했습니다. .jic.

.sof 파일을 .jic으로 변환하려면 다음이 필요합니다.:

  • 파일 메뉴에서 프로그래밍 파일 변환 선택

  • 열리는 메뉴에서 필드에서 선택 프로그래밍 파일 형식고르다 JTAG 간접
    구성 파일(.jic)
  • 현장에서 구성 장치보드에 있는 ROM 유형 선택
  • 현장에서 방법펌웨어 모드 선택
  • 현장에서 파일 이름출력 파일의 이름과 디렉토리 정의

  • 현장에서 변환할 입력 파일 SOF Data를 클릭하면 오른쪽에 버튼이 나타납니다. 파일 추가, 변환할 파일을 선택할 수 있는 클릭하여

마이크로 프로그램 오토마타지능화의 다음 단계를 나타냅니다. 디지털 회로. 마이크로 프로그램 오토마타를 기반으로 하여 다소 복잡한 알고리즘에 따라 작동하는 장치를 구축하고 입력 신호에 의해 결정된 다양한 기능을 수행하며 출력 신호의 복잡한 시퀀스를 발행하는 것이 가능합니다. 동시에 알고리즘은 마이크로 프로그램 기계 ROM 펌웨어를 변경하여 쉽게 변경할 수 있습니다.

작동 원리가 사용된 요소와 연결 방식에 따라 고유하게 결정되는 "하드" 논리를 기반으로 하는 이전에 고려된 장치와 달리, 마이크로 프로그램 오토마타동일한 회로를 사용하여 다양한 기능을 수행할 수 있습니다. 즉, "하드" 논리 회로보다 훨씬 유연합니다. 또한, 디자인 마이크로 프로그램 오토마타도식적인 관점에서 보면 매우 간단합니다. 어떤 것의 단점 마이크로 프로그램 기계"하드" 논리를 기반으로 하는 회로에 비해 최대 속도가 더 낮고 다음을 사용하여 ROM 펌웨어 맵을 컴파일해야 합니다. 펌웨어종종 상당히 복잡합니다.

가장 일반적인 구조 마이크로 프로그램 기계(그림 11.15)에는 3가지 요소만 포함됩니다. ROM, 에지에서 작동하는 레지스터, 클록 생성기.


쌀. 11.15.

ROM에는 (L+M) 주소 비트와 N 데이터 비트가 있습니다. 레지스터는 자릿수(N + L)로 적용됩니다. ROM 데이터 비트는 상승 에지에서 레지스터에 기록됩니다. 시계 신호발전기에서. 이 비트(M) 중 일부는 ROM 주소를 형성하는 데 사용되고 다른 부분(N-M)은 출력 신호를 생성하는 데 사용됩니다. 입력 신호(L)는 레지스터의 입력으로 공급되고 ROM 주소를 얻기 위해 출력 ROM 비트의 일부와 함께 사용됩니다.

이 계획은 다음과 같이 작동합니다. 각 사이클에서 ROM은 데이터 코드를 발행하여 회로의 출력 신호 상태뿐만 아니라 다음 사이클(다음 양의 에지 이후)에 설정될 ROM 주소도 결정합니다. 시계 신호). 이 다음 주소도 입력 신호의 영향을 받습니다. 즉, 이전 섹션에서 논의한 신호 시퀀서와 달리 이 경우 주소를 순차적으로(카운터 사용) 정렬할 수 있을 뿐만 아니라 펌웨어라고 하는 ROM 펌웨어에 의해 결정되는 임의의 순서로 정렬할 수도 있습니다.

회로가 올바르게 작동하기 위한 조건은 다음과 같습니다. 한 기간 동안 시계 신호레지스터와 ROM이 작동할 시간이 있어야 합니다. 즉, 레지스터 지연과 ROM 주소 가져오기 지연의 합이 기간을 초과해서는 안 됩니다. 시계 신호. 또한 입력 신호가 마이크로 프로그램 기계 ROM 출력 신호가 기록되는 바로 그 순간에 ROM 데이터 출력에서 ​​비동기식(클록 신호와 관련하여) 변경으로 인해 일시적인 프로세스가 발생할 수 있기 때문에 레지스터 없이 ROM의 주소 입력에 직접 적용할 수 없습니다. 레지스터에. 결과적으로 레지스터에 잘못된 정보가 기록되어 전체 회로의 작동이 중단될 수 있습니다. 반면에 레지스터는 입력 신호의 변경 사항을 클럭 신호와 동기화하므로 ROM 주소 코드의 모든 비트가 동시에 양의 에지에서 변경됩니다. 시계 신호. 레지스터는 반드시 전면에서 작동해야 하며, 래치 사용은 과도 현상을 일으킬 수 있으므로 허용되지 않습니다.

이러한 간단한 계획의 가능성은 매우 큽니다. 예를 들어, 마이크로 프로그램 기계입력 신호의 특정 변화에 대한 응답으로 출력 신호 시퀀스를 생성할 수 있습니다. 또한 입력 신호가 도착하기 전에 출력 신호 생성을 일시적으로 중지할 수도 있습니다. 입력 신호의 지속 시간을 분석하고 이에 따라 특정 출력 신호를 생성할 수 있습니다. 그는 또한 많은 다른 일을 할 수 있습니다.

마이크로 프로그램 오토마톤의 알고리즘을 형성할 수 있는 몇 가지 기본 기능을 공식화해 보겠습니다(그림 11.16).


쌀. 11.16.
  1. 순차 열거 ROM 주소(예: 출력 신호 시퀀스 발행용).
  2. ROM 주소 시퀀스의 주기적 반복(예: 출력 신호 시퀀스 반복).
  3. 일부 ROM 주소에서 중지합니다(예: 입력 신호가 변경될 때까지 대기).
  4. 입력 신호에 대한 반응을 일시적으로 비활성화합니다(예: 입력 신호의 이전 변경에 대한 반응을 완료하기 위해). 이 기능은 그림에 표시되어 있지 않습니다.

예를 들어, 몇 가지 기본 기능의 실행을 고려하십시오. 펌웨어 자동화그림에 나와 있습니다. 11.17.


쌀. 11.17.

ROM에는 64x8 구성이 있으며(PE3 칩 2개 또는 RT18 칩 1개일 수 있음) 레지스터 비트 수는 10개(IR27 칩 2개일 수 있음)입니다. 회로에는 2개의 입력과 4개의 출력이 있습니다. 그러한 조직 마이크로 프로그램 기계좋은 점은 펌웨어(즉, ROM 펌웨어 맵)가 매우 시각적이고 구성 및 읽기가 쉽다는 것입니다.

표 11.7. ROM 펌웨어 카드 64x8용 마이크로 프로그램 기계
주소 0 1 2 3 4 5 6 7 8 9 이자형 에프
00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

ROM의 출력 데이터 비트는 4개 신호의 두 그룹으로 나뉩니다. 낮은 것은 다음 ROM 주소를 형성하기 위해 이동하고 이전 것은 4개의 출력 신호를 형성합니다. 입력 신호는 레지스터를 통해 ROM 주소의 최상위 2비트로 수신됩니다. ROM 펌웨어 맵을 4개의 행과 16개의 열로 구성된 테이블의 일반적인 형태로 묘사하면(표 11.7), 이 테이블에서 각 내부 신호의 상태와 입력 신호에 대한 회로의 반응은 다음과 같습니다. 뿐만 아니라 각 사이클의 모든 출력 신호를 나타냅니다.

우선, 테이블의 하나 또는 다른 행의 선택이 ROM 주소 코드의 상위 자릿수, 즉 입력 신호에 의해 이루어짐을 쉽게 알 수 있습니다. 마이크로 프로그램 기계. 따라서 입력 신호가 변경되면 펌웨어 맵이 다른 라인으로 전환됩니다. 예를 들어 라인 00은 0 입력과 일치합니다. 마이크로 프로그램 기계, 라인 30은 단일 입력용입니다.

표 11.8. 그림의 회로에 대한 예제 펌웨어. 11.17
주소 0 1 2 3 4 5 6 7 8 9 이자형 에프
00 11 22 33 44 55 66 77 88 99 AA 비비 참조 DD EE FF 00
10 11 22 33 44 55 66 77 88 99 55 비비 참조 DD EE FF 00
20 10 21 32 43 54 65 76 87 98 A9 학사 CB DC ED

프로그램 제작자- 영구 저장 장치(한 번 쓰기 가능, 플래시 메모리, ROM, 내장 메모리마이크로컨트롤러 및 PLC).

프로그램 제작자- 작동에 필요한 정보를 다음과 같은 프로그램 가능한 비휘발성 디지털 회로에 입력하는 장치 프롬 (ROM), 에프롬(EPROM), EEPROM(이프롬), 플래시, 단짝, 여자, FPGA그리고 마이크로컨트롤러. 녹음 프로세스는 종종 "", "", "", ""라고 합니다.

플래시 ROM, 플래시 ROM

"플래시 롬"- ROM에 정보를 씁니다.

1950년대 중반부터 1970년대 중반까지 컴퓨터가 거대하던 시절 컴퓨터는 자기 코어 메모리를 사용했습니다. 이러한 메모리는 RAM과 ROM으로 모두 사용되었습니다. ROM 제조에서 와이어는 링을 통과하거나 우회했습니다. 와이어는 특수 바늘을 사용하여 페라이트 링을 통과했습니다. 즉 "바느질"문자 그대로의 메모리 매트릭스. 따라서 이 프로세스는 매우 자연스럽게 정의가 할당됩니다. "플래시 롬". 제대로 하려면 "플래시", 기술 문서 작성 "펌웨어 맵"어떤 링을 통해 와이어를 통과하고 어떤 링을 통과하지 않는지 표시되었습니다. 페라이트 코어의 메모리는 과거의 일이지만, "플래시"그리고 "펌웨어" ROM에 쓰는 과정과 관련하여 여전히 사용됩니다. 그리고 "펌웨어"라는 단어 ROM에 정보를 입력하는 과정과 관련하여 동사로 사용되며 입력되는 정보 또는 파일 자체와 관련하여 명사로 사용됩니다.

자기코어는 반도체와 달리 방사선과 전자기파를 두려워하지 않아 한동안 군사 및 우주 시스템에서 계속 사용됐다. 1991년까지 Shuttle의 온보드 컴퓨터에 사용된 것으로 알려져 있습니다. 아마도 그러한 메모리는 일부 구형 시스템에서 여전히 사용됩니다. 현재 특수효과에 강한 반도체 메모리는 이미 개발이 되었고 마그네틱 코어의 시대는 지났지만 그 용어는 "펌웨어"남아 있었다.

롬 굽기

"롬 굽기"- 정보를 입력합니다.

페라이트 코어의 메모리는 반도체 RAM 메모리로 대체되었으며 내부에 금속 매트릭스, 더 자주 니크롬 점퍼가 있는 미세 회로가 ROM으로 사용되기 시작했습니다. 이러한 미세 회로에 정보를 입력하려면 추가 점퍼를 전류 펄스로 태워야 합니다. 그 후 점퍼는 금속뿐만 아니라 반도체로 만들어진 형태로 사용되기 시작했습니다. pn접합 또는 폴리실리콘, 그러나 점퍼의 물리적 파괴 또는 접합 파괴의 원리
전류 펄스의 영향이 보존되었습니다. 군사 및 항공 우주 시스템에서 이러한 ROM은 오늘날에도 여전히 사용됩니다. 특수 목적 칩을 위한 모든 ChipStar 프로그래머는 정밀하게 "불타다"그러한 ROM.

녹음, ROM 로드

환경 저항에 대한 요구 사항이 더 낮고 비용 및 메모리 공간에 대한 요구 사항이 더 높은 소비자 및 산업 애플리케이션에서 퓨즈 가능한 점퍼 칩은 전기적으로 프로그래밍 가능한 EPROM 칩과 전기적으로 재프로그래밍 가능한 EEPROM ROM 칩으로, 그리고 최근에는 마이크로회로로 대체되었습니다. FLASH를 기반으로 합니다. 기술의 변화와 함께 용어도 변경되었습니다. 더 자주 그들은 ROM "쓰기", 또는 "로딩", 그리고 이 용어는 마이크로컨트롤러의 내부 ROM과 관련하여 더 자주 사용되며 "기록"은 독립형 메모리 칩과 관련하여 더 자주 사용됩니다.

ROM 또는 마이크로컨트롤러 프로그래밍

"ROM 또는 마이크로컨트롤러 프로그래밍"- ROM 또는 마이크로컨트롤러에 정보 입력.

용어 "프로그램 작성" ROM에 쓰는 과정에도 매우 자주 적용됩니다. 그리고 ROM과 관련하여 항상 명확하게 인식되는 경우 마이크로 컨트롤러와 관련하여 모호성이 있습니다. "마이크로 컨트롤러 프로그래밍"하드웨어 장치(프로그래머, 다운로드 케이블)를 사용하여 마이크로컨트롤러의 ROM에 미리 만들어진 프로그램 코드(이미지)를 쓰는 것과 프로그램 자체를 개발하는 프로세스를 모두 의미할 수 있습니다.

추신 추신

당신은 이 모든 용어에서 혼동하기가 매우 쉽다고 말할 것이고, 당신이 절대적으로 옳을 것입니다. 그러나 영어권 환경에서는 모든 것이 더 나을 수 없습니다! 모두 똑같을 뿐만 아니라 "타다" ("타다"), "다운로드"("다운로드"), "기록"("쓰기"), 용어도 "프로그램 제작자"- 프로그램을 개발하는 사람과 "프로그램 제작자"-이 프로그램을 마이크로 회로에 쓰는 장치는 한 단어로 지정됩니다. "프로그램 제작자".

7 / 8 121

인쇄 버전

ZX-Spectrum에 대한 메모리 테스트, ROM에서 플래시 가능

RAM 관련 결함은 스펙트럼의 작동 불능에 대한 다양한 이유 중 "명예로운" 틈새 시장을 차지합니다. 메모리 칩은 상대적으로 신뢰할 수 없고 소진되기 쉽습니다(특히 전원 문제가 있는 경우). 특히 스펙트럼 변압기의 전원이 있는 경우. 변압기 전원 공급 장치가있는 Leningrad-1 컴퓨터에서 실수로 컴퓨터의 전원 공급 장치 (+ 5V 및 접지)를 단락시키고 하나 또는 두 개의 KR565RU5 초소형 회로가 이미 "벗어났습니다".

일반적으로 메모리 칩은 완전히 연소됩니다. 저것들. 한 비트가 작동하지 않는다는 것은 아니지만 일반적으로 전체 미세 회로가 작동을 멈춥니다. Spectrum의 메모리는 각 RAM 칩이 고유한 메모리 비트를 담당하는 방식으로 구성되어 있습니다(48K Spectrum의 경우 각각 1비트씩 8개의 미세 회로가 있어 총 64KB의 주소 지정 가능 메모리). 컴퓨터가 시작되면 ROM이 자체 메모리 테스트를 수행하고 RAM 셀에 "고장"이 발생하면 컴퓨터는 사용 가능한 메모리 제한을 결함이 있는 셀 이전의 주소로 설정합니다. 이 경우 사용 가능한 메모리 제한 값은 P_RAMT 시스템 변수에 설정됩니다(RAM의 주소 23732-23733에 있습니다. 정상적인 컴퓨터에서 이 시스템 변수의 값은 #FFFF(즉, , 숫자 255는 두 메모리 셀에 모두 기록됩니다.) 시스템 변수에 #FFFF와 같지 않은 숫자가 포함되어 있으면(예: #F000이 있는 경우) 이는 메모리 셀 #F001에 이미 결함이 있음을 의미합니다.

이 모든 것이 매우 좋지만 감지된 결함 메모리 셀이 사용 가능한 RAM의 시작 부분에 있지 않은 경우에만 가능합니다. 사실 BASIC-48은 사용 가능한 좋은 메모리도 필요로 합니다. 그리고 RAM 시작 부분에서 메모리 결함이 감지되면 BASIC이 시작되지 않고 아무 것도 찾을 수 없습니다. RAM 칩 중 하나가 완전히 소진된 경우 컴퓨터는 BASIC을 시작하지 않습니다.

그렇다면 실제로 불타버린 것을 찾기 위한 "탬버린과 함께 춤을 추기"만 있습니다. 메모리 칩에 적용할 수 있는 원시적이지만 때로는 유용한 진단을 시도할 수 있습니다. 사실 결함이 있는 메모리 칩(KR565RU5)은 작동하는 다른 마이크로 회로와 온도가 다를 수 있습니다. 작동 중에 KR565RU5 RAM이 가열됩니다. 램 칩에 손가락을 대면 칩이 눈에 띄게 따뜻해지는 것을 느낄 수 있다. 결함이 있는 마이크로 회로는 쇠처럼 뜨거워질 수도 있고 심지어 차가울 수도 있습니다. 반드시 그렇지는 않겠지만, 이 방법사례별로 기억하고 적용할 수 있습니다.

일반적으로 스펙트럼 생산에서 좋은 형태의 규칙은 패널에 ROM 칩과 프로세서를 설치하는 것입니다. 이것은 컴퓨터를 수리할 때 삶을 훨씬 쉽게 만듭니다. 이 경우 ROM 칩에 관심이 있습니다. 80년대 후반(90년대 초반)에 생산된 "고대" 스펙트럼에는 원칙적으로 두 개의 ROM 칩이 설치되었습니다. 이는 당시 16K(부르주아명 27128) 용량의 ROM칩을 구하기가 쉽지 않았기 때문에 각각 8K 용량의 미세회로 2개로 교체하는 것이 더 쉽고 저렴했기 때문으로 풀이된다. 그들은 국내 아날로그 KR573RF4, KR573RF6을 가지고 있기 때문에. 그리고 일반적으로 마이크로 회로 중 하나(보통 ROM-0)가 소켓에 배치되었습니다. 왜 ROM-0인가? 때문에 ROM은 두 개의 미세 회로에 조립되며 주소 공간은 두 부분으로 나뉩니다. ROM의 총량은 16K입니다. 따라서 첫 번째 8K는 ROM-0으로 간주되고 두 번째 8K는 ROM-1로 간주됩니다. 컴퓨터가 시작되면 프로세서는 주소 #0000에 있는 프로그램을 실행하기 시작하며 이것은 정확히 ROM-0이 지정하는 영역입니다.

예, 소켓에 적어도 하나의 ROM이 필요합니다. 일반적으로 컴퓨터 보드의 소켓에 하나의 ROM이 있는 경우에도 매우 좋습니다. 문제는 ROM을 제거하고 메모리 테스트가 "플래시"되는 자체 ROM으로 교체할 수 있다는 것입니다. 그런 다음 컴퓨터가 켜지면 필요한 메모리 테스트가 시작되어 컴퓨터의 메모리에 어떤 일이 일어나고 있는지 명확하게 보여줍니다.

아주 아주 오래 전, 아직 ROM 프로그래머가 없었을 때 나는 라디오 시장에 가야했고 그곳에서 적절한 뇌물을 요구하는 가혹한 사람들이 ROM에 무엇이든 플래시 할 것입니다. 그들은 또한 Spectrums에 대한 메모리 테스트를 받았습니다. 예, 좋은 시간이었습니다 ...

따라서 소중한 플래시 ROM 칩을 구입하면 컴퓨터를 테스트할 수 있습니다. 그러나 먼저 ROM을 소켓에 올바르게 삽입하는 방법에 대한 질문을 해결해야 했습니다. 사실은 ROM 테스트가 2K 칩으로 플래시된다는 것입니다. 24개의 핀이 있습니다. 스펙트럼은 28핀 ROM을 사용합니다. 이 경우 테스트를 통해 핀 21과 24를 미세 회로에서 올려 다음과 같이 결합했습니다.

이러한 미세 회로는 사진과 같이 소켓에 삽입됩니다.

사진에 선명하게 보이는 것 같아요. ROM(GND)의 12번 핀은 소켓의 14번 핀과 일치해야 합니다. 그리고 테스트 ROM의 튀어나온 출력은 소켓의 28번째 접점(전원 + 5V)에 있어야 합니다.

ROM을 손상시킬 수는 없지만 라이저를 만드십시오. 위에서부터 테스트 ROM을 위한 24핀용 소켓을 배치하고 아래에서 컴퓨터의 28핀 소켓에 보드를 설치하기 위한 핀을 배치합니다. 21 및 24 ROM 핀 연결에 필요한 모든 변경은 이러한 보드에서 직접 수행할 수 있습니다.

실습에서는 다음 테스트 펌웨어를 자주 사용합니다.

ZX-Spectrum 48K용 테스트 ROM

이름에서 알 수 있듯이 48K RAM을 테스트합니다. 매우 느리게 작동합니다(약 12분). 먼저 화면 속성을 지운 다음 화면을 차례로 칠하고 지운 다음 RAM 테스트 결과를 표시합니다. 그 후 ROM 테스트가 있지만 항상 오류로 끝나지만 우리에게는 이것이 어떤 역할도하지 않습니다. 가장 중요한 것은 RAM을 확인하는 것입니다.

주목!
이 테스트에는 하나의 "트릭"이 있습니다. 테스트 시작 시 공백을 잡고 있으면 속성이 채워진 그래픽 부분을 건너뛰고 RAM 테스트가 직접 시작됩니다. 테스트 시작 시 경계 색상의 열거가 끝나는 순간 눌린 공간에 대한 검사가 수행됩니다.

RAM 칩 중 하나에 결함이 있는 경우 테스트를 통과하면 Byte Tales #01의 첫 번째 문제에서 볼 수 있습니다.

BYTE Tales #01 - 컴퓨터 "바이트"를 수리합니다.

ZX-Spectrum 48K용 또 다른 테스트 ROM

나는 페이지의 이전 섹션에서 48K 메모리 테스트에 완전히 만족하지 않았기 때문에 자유 시간그리고 욕망, 나는이 테스트를 분해하고 그것을 기반으로 내 "위시리스트"를 구현하려고 시도한 내 버전을 "줄였습니다".

결과적으로 몇 가지 메모리 테스트 알고리즘을 추가하고 테스트에서 추가 코드를 버리고(충분히 있음) 합성기의 "재머"를 만드는 약간 더 발전된 메모리 테스트를 얻었습니다. 테스트가 "바이트" 컴퓨터에서 사용된 경우의 KR580VI53.

이 페이지 끝에서 모든 iS-DOS 소스(테스트는 iS-Assembler로 작성됨)와 함께 테스트 펌웨어를 다운로드할 수 있습니다.

ZX-Spectrum 48K에 대한 ROM 테스트(잡지 "라디오 아마추어" 1995 No. 9에서

1995년 "라디오 아마추어" 9번 저널에서 ZX-Spectrum 48에 대한 ROM 테스트 덤프가 G. Ulanovsky에 의해 게시되었습니다.

테스트의 특징은 화면에 텍스트를 표시하지 않는다는 것입니다. RAM 상태에 대한 모든 정보는 테두리에 선으로 표시됩니다. 이것은 화면에 텍스트를 표시할 때 아무 것도 보이지 않고 경계선의 선이 완벽하게 보일 때 RAM이 완전히 작동하지 않는 경우에 유용할 수 있습니다(경계에 정보를 출력하는 것은 일반적으로 RAM).

테스트가 끝나면 8비트 RAM을 상징하는 8개의 흰색 줄무늬가 테두리에 표시됩니다. 맨 위에서 첫 번째 막대는 D0 비트의 상태, 두 번째 - D1, 세 번째 - D2 등의 상태를 보여줍니다. RAM의 정상적인 해당 비트의 경우 대역이 좁아집니다.

불량 비트의 경우 막대 너비가 두 배입니다.

테스트의 단점은 RAM의 처음 16K(주소 #4000-#7FFF)만 확인하는 것입니다. 그러나 이것은 테스트 소스를 변경하면 쉽게 해결할 수 있습니다.

테스트는 4단계로 진행됩니다(바이트 #00, #FF, #55 및 #AA 채우기 및 확인). 원하는 경우 RAM을 확인하기 위한 소스 텍스트 및 기타 옵션을 추가할 수 있습니다.

예를 들어 48K RAM의 전체 용량을 확인하는 테스트를 마무리하고 바이트 컴퓨터에 대한 KR580VI53 재밍 절차도 소스 코드에 삽입했습니다. 테스트 및 소스 코드의 두 가지 변형 펌웨어는 이 기사의 끝에서 다운로드할 수 있습니다.

ZX-Spectrum 128K용 테스트 ROM

이 테스트를 통해 128번째 ZX-Spectrum의 메모리를 빠르게 확인할 수 있습니다.

테스트가 작동하는 컴퓨터에서 어떻게 통과하는지 다음 비디오에서 볼 수 있습니다.

여기에 비디오가 있어야 하지만 이 사이트에 대해 JavaScript를 활성화하지 않으면 작동하지 않습니다.

성공적인 ROM 테스트에 대한 메시지 후 루프가 발생하면 이를 무시할 수 있습니다.

작업할 때 일부연결된 드라이브 컨트롤러가 있는 컴퓨터는 테스트 중에 결함이 발생할 수 있습니다. 사실 드라이브 컨트롤러가 연결되면 컨트롤러 작동 중에 포트 선택을 금지하는 미세 조정이 이루어집니다. 예를 들어 컨트롤러를 연결할 때 권장하는 대로 C-48 ZX 스펙트럼으로:

프로세서의 /IORQ 출력에서 ​​컴퓨터 회로로 이어지는 전선이 끊어지고 /IORQ 신호를 전환하는 논리 요소가 틈에 포함됩니다.

이것은 드라이브 컨트롤러의 포트와 충돌하는 가능한 컴퓨터 포트를 비활성화하기 위해 수행됩니다. 먼저 Kempston 조이스틱의 포트입니다. 그러나 아무도 드라이브 컨트롤러와 충돌할 수 있는 특정 컴퓨터 모델을 찾지 않으므로 드라이브 컨트롤러가 작동할 때 포트에 대한 액세스를 모두 비활성화하는 것이 더 쉽습니다.

두 번째 포인트: 다시 일부이러한 방식으로 수정된 컴퓨터는 재설정 시 즉시 TR-DOS를 시작합니다. 이것은 BASIC에서 매번 TR-DOS를 시작하기 위해 RANDOMIZE USR 15616 명령을 입력할 필요가 없도록 하기 위한 것입니다.

세 번째 포인트: 다시 일부컴퓨터에서 BASIC ROM은 하나의 칩에서 TR-DOS ROM과 결합됩니다. 예를 들어 이 컴퓨터에서와 같이 레닌그라드-1 :

관련 출판물