CARD 보드 계산에 대한 적용 보조 도구
CARDboard Illustrative Aid to ComputationCRAD(Cardboard Illustration Aid to Computing)는 벨 전화 연구소의 David Hagelbarger와 Saul Fingerman이 1968년 고등학생들에게 컴퓨터가 작동하는 방법을 가르치기 위해 개발한 학습 보조물이다.이 키트는 사용 설명서와 다이컷 판지 "컴퓨터"로 구성되어 있다.
컴퓨터는 연필과 미닫이 카드로 "작동"한다.어떤 산술도 컴퓨터를 조작하는 사람의 머리에서 이루어진다.컴퓨터는 베이스 10에서 작동하며 100개의 메모리 셀을 가지고 있는데, 이 셀은 0에서 ±999까지 서명된 번호를 저장할 수 있다.CASTIC이 추가, 빼기, 테스트, 시프트, 입력, 출력 및 점프를 할 수 있는 10가지 지침 세트를 가지고 있다.
하드웨어
컴퓨터의 'CPU'는 실제 CPU(사용자의 뇌)의 흐름이 올바른 방향으로 움직이도록 다양한 숫자와 화살표를 움직이는 4개의 슬라이드로 구성돼 있다.그들은 축전지의 결과에 영향을 받는 하나의 플래그(+/-)를 가지고 있다.
기억은 판지 컷아웃의 나머지 절반으로 이루어져 있다.100개의 세포가 있다.셀 0은 항상 숫자 "1"을 포함하는 "ROM"이고, 셀 1에서 98은 "RAM"이며, 명령과 데이터에 사용할 수 있으며, 셀 99는 "EEPROM"으로 가장 잘 설명할 수 있다.
메모리 셀은 0에서 ±999까지의 서명된 소수점 숫자를 가지고 있으며 연필로 쓴다.세포는 지우개로 지워진다.프로그램 카운터 역할을 하기 위해 "버그"가 제공되며, 현재의 메모리 셀 옆에 있는 구멍에 위치한다.
프로그래밍
CASTIC은 10개의 명령어 기계 언어를 가지고 있다.명령은 양식에서 소수점 3자리(기호는 무시됨)이다.OAA
. 첫 번째 자릿수는 op 코드 (O
); 두 번째와 세 번째 숫자는 주소(AA
어드레싱은 메모리 절대, 축전지에 절대 메모리, 절대 메모리에 대한 입력, 출력할 절대 메모리에 대한 입력 중 하나이다.
높은 수준의 언어는 CASTIC용으로 개발된 적이 없다. 이는 장치의 목적 중 하나인 조립 언어 프로그래밍의 개념을 도입하기 위한 것이다.
프로그램은 손으로 조립한 다음 적절한 메모리 셀에 연필로 만들어진다.
명령 집합
opcode | 니모닉 | 지시 | 설명 |
---|---|---|---|
0 | INP | 입력 | 입력 카드에서 번호를 가져와 지정된 메모리 셀에 넣으십시오. |
1 | CLA | 지우기 및 추가 | 축전지를 비우고 메모리 셀의 내용을 축전지에 추가한다. |
2 | 추가 | 추가하다 | 메모리 셀의 내용을 축전지에 추가한다. |
3 | TAC | 축전지 내용물 테스트 | 축전지의 내용물에 대해 부호 테스트를 실시한다. 마이너스일 경우 지정된 메모리 셀로 점프한다. |
4 | SFT | 시프트 | 축열조 x 위치를 왼쪽으로 이동시킨 다음 y 위치를 오른쪽으로 이동시킨다. 여기서 x는 상위 주소 자릿수, y는 하위 주소다. |
5 | 아웃 | 출력 | 지정된 메모리 셀에서 번호를 가져와 출력 카드에 기록하십시오. |
6 | STO | 저장하다 | 축전지의 내용을 지정된 메모리 셀에 복사한다. |
7 | 후보선수 | 빼다 | 축전지에서 지정된 메모리 셀의 내용을 빼다 |
8 | JMP | 점프 | 지정된 메모리 셀로 건너뛰다현재 셀 번호는 99번 셀에 기록되어 있다.이렇게 하면 리턴을 99번 셀(첫 번째 숫자로 하드 코딩한 '8'번)의 지침으로 함으로써 서브루틴의 한 레벨이 허용된다. |
9 | HRS | 중지 및 재설정 | 버그를 지정된 셀로 이동한 다음 프로그램 실행을 중지하십시오. |
작전
프로그램은 우선 세 슬라이드를 슬라이딩하여 명령 레지스터의 숫자가 버그가 앉아 있는 메모리 셀의 숫자와 같도록 실행된다.그것이 끝나면 버그는 다음 메모리 셀로 옮겨진다.그런 다음 사용자는 화살표에 따라 다음에 무엇을 해야 하는지 알려준다.이것은 모든 프로그램 실행에도 계속된다.
참고 항목
- 리틀맨 컴퓨터(다른 지침 모델)
- WDR 용지 시스템
외부 링크
- http://cs.drexel.edu/~bls96/snm/snm.dll - JavaScript의 예와 시뮬레이터를 이용한 CAST 토론
- https://github.com/jawhitti/Cardiac - 에 있는 인터렉티브 디버거 및 인터렉티브 디버거.NET 플랫폼
- http://www.sourceforge.net/projects/cinc/ - 명령줄 인터페이스와 GUI 인터페이스를 모두 갖춘 Java 플랫폼용 시뮬레이터는 jcinc라는 SourceForge 프로젝트다.
- http://www.kaleberg.com/software/cardiac/ - Macintosh, Windows(테스트되지 않음) 및 Linux(테스트되지 않음)에서 호스팅되는 시뮬레이터.시뮬레이터는 편집기, 간단한 조립기 및 예를 제공한다.페이지에 기술된 바와 같이 opcode 0과 9는 상호 교환된다.시뮬레이터 소스 코드는 독점적이고 무료 다운로드로 나타난다.
- https://www.youtube.com/watch?v=CW96m7R0u-s
- http://www.drdobbs.com/embedded-systems/cpu-design-on-paper/240153480 - Al Williams는 Dobb 박사의 사이트에 CHART의 스프레드시트 버전을 게시했다.
- http://www.drdobbs.com/embedded-systems/paper-to-fpga/240155922 - Al Williams의 FPGA CHART 구현 FPGA 게시판(Dobb 박사의 웹 사이트 시리즈 최종 기사)