GEC 2050

GEC 2050

GEC 2050영국의 마코니 엘리엇 컴퓨터 시스템즈가 GEC 컴퓨터 유한회사로 개명하기 전인 1970년대에 생산한 8비트 미니컴퓨터였다. 첫 번째 모델은 GEC 2050으로 이름이 바뀌기 전에 MECS 2050으로 표기되었다.

GEC 2050은 펀치된 카드 리더, 라인 프린터, 시스템 콘솔, 원격 메인프레임 컴퓨터 시스템에 대한 데이터 링크를 지원하는 원격 작업 입력 스테이션으로 일반적으로 사용되었고, GEC 컴퓨터들은 시스템, 주변기기, RJE 소프트웨어 등을 포함한 완전한 RJE 패키지를 판매했다. 또 다른 턴키 애플리케이션은 티켓팅 시스템이었는데, 고객들은 아스널 풋볼 클럽을 포함했다. 이 시스템은 또한 도로 교통 통제와 산업 공정 자동화를 위해 일반적으로 사용되었다.

GEC 2050은 4KiB, 8KiB, 16KiB 모듈에서 자기 코어 메모리를 최대 64KiB까지 지원했다. 이 시스템에는 자율 I/O 수행을 위한 단일 채널 컨트롤러가 있었고, GEC 4000 시리즈 미니컴퍼터와 동일한 주변 I/O 컨트롤러를 사용했다.

명령 집합

CICSC명령어 집합 전체를 표로 만들 수 있을 정도로 간단하다.

0 1 2 3 4 5 6 7 8 9 A B C D E F
0 준비 G,v 준비 X1,v 준비 X2,v 준비 X3,v IN G,v 인 X1,v 인 X2,v 인 X3,v OUT G,v OUT X1,v OUT X2,v OUT X3,v
1 LD X1,G,v LD X1,X1,v LD X1,X2,v LD X1,X3,v ST X1,G,v ST X1,X1,v ST X1,X2,v ST X1,X3,v AD X1,G,v AD X1,X1,v AD X1,X2,v AD X1,X3,v CP X1,G,v CP X1,X1,v CP X1,X2,v CP X1,X3,v
2 LD X2,G,v LD X2,X1,v LD X2,X2,v LD X2,X3,v ST X2,G,v ST X2,X1,v ST X2,X2,v ST X2,X3,v AD X2,G,v AD X2,X1,v AD X2,X2,v AD X2,X3,v CP X2,G,v CP X2,X1,v CP X2,X2,v CP X2,X3,v
3 LD X3,G,v LD X3, X1,v LD X3, X2,v LD X3,X3,v ST X3,G,v ST X3,X1,v ST X3,X2,v ST X3,X3,v AD X3,G,v AD X3,X1,v AD X3, X2,V AD X3,X3,v CP X3,G,v CP X3,X1,v CP X3,X2,v CP X3,X3,v
4 LD A,G,v LD A, X1,v LD A, X2,V LD A, X3, v ST A,G,V ST A,X1,v ST A,X2,v ST A,X3,v AD A,G,v AD A,X1,v AD A,X2,v AD A,X3,v CP A,G,v CP A,X1,v CP A,X2,v CP A,X3,v
5 A,G,V A,X1,v A,X2,V A,X3,V XOR A, G,V XOR A,X1,v XOR A,X2,v XOR A,X3,v LCP A,G,V LCP A,X1,V LCP A,X2,V LCP A,X3,V SB A,G,v SB A,X1,v SB A,X2,v SB A,X3,v
6 지지,v JI X1,v JI X2,v JI X3,v JIL G,v JIL X1,v JIL X2,v JIL X3,v CLRS G,v CLRS X1,v CLRS X2,v CLRS X3,v DECS G,v DECS X1,v DECS X2,v DECS X3,v
7
8 SL SR SLB SRB 누프 용어 DIV 멀티 SETL 1 SETL 2 SETL 3 SETL 4 CLA 네가 혼수상태 티스타
9 J J JL JL JN JN JNN JNN JZ JZ JNZ JNZ JCA JCA JNCA JNCA
A SNCE SNPI SNSK SNPF SNXT SNTF
B STOP INH 퍼머 핀트 시간 CLSG STSG
C LD P,X1 LD P,X2 LD IP,X1 LD IP,X2 ST P,X1 ST P,X2 ST IP,X1 ST IP,X2 AD P,X1 AD P,X2 AD IP,X1 AD IP,X2 CP P,X1 CP P,X2 CP IP,X1 CP IP,X2
D AND P,X1 AND P,X2 AND IP,X1 AND IP,X2 XOR P,X1 XOR P,X2 XOR IP,X1 XOR IP,X2 LCP P,X1 LCP P,X2 LCP IP,X1 LCP IP,X2 SB P,X1 SB P,X2 SB IP,X1 SB IP,X2
E LDR X1,AL LDR AL,X1 LDR X2,AL LDR AL,X2 엘디르 암, 앨 엘디알엠 LDR X2,S LDR S,X2 LDR X2,X3 LDR X3, X2 LDR X2,C LDR C,X2 LDR X1,X2 LDR X2,X1 LDR X1,AM DDR AM,X1
F ADR S,X1 ADR X1,AL ADR X2,AL ADR AL,X1 SBR AM,X1 SBR X1,AL SBR X2,AL SBR AL,X1 ADR X1,L ADR X2,L SBR X1,L SBR X2,L 심폐소생술 AL,AM CPR AL,X1 CPR AL,X2 CPR X1,X2

opcode 29를 그림으로 사용하여 조립자 코드(AD X2,X1,offset)는 메모리 위치의 '오프셋(X1)'의 내용을 X2에 등록하도록 한다. 따라서 레지스터 X1을 인덱스 레지스터로 사용하고 있으며 오프셋인 v는 지침의 두 번째 바이트에 지정되어 있다. G는 값이 항상 0인 더미 인덱스 레지스터로, 따라서 오프셋이 제로(글로벌) 세그먼트에서 절대 어드레스로 취급되게 한다.(인정적으로 X3은 표준 인덱스 레지스터이므로 조립 프로그램에서는 ',X3,address'를 ',address'로 줄여서 사용할 수 있다.)

조건부 점프 지침은 쌍으로 나열되며, 이전 opcode는 전진 점프를 위한 것이고, 후자는 후진 점프를 위한 것이다. 다시, 점프의 오프셋은 명령의 두 번째 바이트에서 얻는다. 따라서 0~7행과 9행의 모든 지시사항은 2바이트(opcode와 데이터 바이트)로 구성되며, 다른 모든 지시사항은 단 하나의 opcode 바이트로 구성된다.

축전지 레지스터 A는 SETL 지침을 사용하여 1, 2, 3, 4바이트로 설정할 수 있다. 이것은 메모리 액세스 명령에서 로드(또는 저장)되는 바이트 수를 제어한다. JIL 명령은 JI 명령과 같이 Jump Indirective를 수행하지만 프로그램 카운터 S의 값을 인덱스 레지스터 X2에 저장한다. 이것은 매우 간단한 비복귀 서브루틴 호출을 가능하게 한다. 더욱 복잡한 서브루틴 호출은 반환 정보를 현재 메모리 세그먼트의 첫 번째 바이트로 저장하는 PREF 명령의 사용을 포함한다. 그런 전화도 재귀적일 수 없다.

사용자 경험

이 절에서는 1975년의 일반적인 설치에서 이 컴퓨터의 작업 세션을 설명한다. 프로그래머는 이전 세션에서 이미 쓰기 시작한 Fortran-II 프로그램을 작업하기 위해 도착해서 새로운 변경사항과 함께 주석을 달았던 그 프로그램의 텔레프린터 종이 목록과 그 프로그램의 기계 판독 가능한 소스 코드가 들어 있는 펀치 테이프를 가지고 있을 것이다. 그는 먼저 벽에 있는 재래식 주전원 소켓의 스위치에서 컴퓨터를 켠 다음 전면 패널 켜기/끄기 스위치를 켜야 할 것이다. 비휘발성 메모리인 자기 코어 메모리는 일반적으로 이전 사용자의 프로그램을 포함하고 있기 때문에 프로그래머는 미니시스템(소형 메모리 모니터 프로그램의 객체 코드 포함)이라는 펀칭 테이프를 로드해야 할 수도 있다. 컴퓨터 근처의 선반 위에 있는 작은 판지 상자에 보관되어 있던 이 테이프는 테이프 리더 왼쪽에서 들여오곤 했다. 테이프 판독기는 컴퓨터 전면 패널의 필수적인 부분이었고, 읽었던 테이프를 오른쪽 바닥으로 흘리곤 했다. 일단 읽으면 전면 패널의 실행 스위치를 깜박여 미니 시스템을 시작할 수 있다.

명령 >L L 049A A 0522 D 063E 링크 0691 편집 1090 주 155E 28A2 3FF > 

텍스트 편집기 프로그램인 EDIT는 미니시스템 '>' 프롬프트에서 텔레프린터 키보드에서 호출될 수 있다. 그리고 나서 프로그래머는 소스 테이프를 판독기에 실었고, 이것 역시 읽혀지고 있었고, 바닥 전체에 쏟아져 나오는 동안 프로그래머는 손으로 만든 윈치를 사용하여 다시 깔끔하게 정리된 릴로 미니스템 테이프를 감아 넣느라 바쁠 수 있었다.

결국, 원본 테이프의 읽기가 끝나면 텍스트 편집기 프로그램은 프로그램을 편집하기 위한 초대장이었던 새로운 명령을 요구하게 된다. 수십 년 동안 거의 효과가 없었지만, 편집은 한 번에 프로그램의 한 줄만 '표시'되었고(종이에 실제로 인쇄), 삽입된 텍스트는 삽입되는 선의 지점 아래로 인쇄되었으며, 루브아웃 키는 삭제해야 할 텍스트를 교차했을 뿐이라는 느낌에서 엄청나게 달라졌다.d; 현악기 발견 및 현악기 제작 시설은 매우 초보적이었고, 텔레프린터는 110바우드(그것처럼 엄청나게 쿵쾅거리고 윙윙거리는 라켓을 만들었다).

편집 세션이 끝나면 새 버전의 소스 프로그램이 출력된다. 즉, 입력된 목록과 펀치된 새 테이프로 모두 출력된다. 종이 테이프의 펀치가 이렇게 하는 동안, 프로그래머는 전면 패널 마운팅에서 다시 제품(독자만큼 빠르지 않고 기계 왼쪽으로 떨어져 있음)의 이전 버전을 정리하여 백업 버전으로 보관할 수 있었다. 여전히 펀칭되고 있던 새 테이프의 자유 끝은 프로그램 이름, 버전 번호, 펀칭 날짜와 함께 연필로 라벨을 붙일 수 있었다.

불행히도 16 KiBytes의 코어 스토어만 있으면 미니시스템과 포트란 컴파일러는 둘 다 메모리에 맞지 않을 것이기 때문에 다음 단계는 포트란 컴파일러 테이프(컴퓨터실 선반 위의 다른 마분지 상자에 저장되어 있었다)를 로딩하는 것이 될 것이다. 이것을 읽고 다른 면을 흘리는 동안, 새로 펀치된 소스 테이프는 펀치 밖으로 튀어나온 자유 끝에서 떼어낼 수 있었고, 손 윈치를 사용하여 마무리할 수 있었다. 컴파일러를 다 읽고 나면 그것은 테이프 리더에 실리고, 컴파일러 테이프는 다시 정갈한 릴에 감겨들곤 했다.

테이프 리더를 통한 원본 테이프의 첫 패스는 일반적으로 프로그램의 구문 오류를 확인하는 데만 사용되었기 때문에 테이프 펀치에서 객체 테이프의 생성이 억제된다. 오류나 경고가 감지되면 미니시스템 테이프를 다시 로드하고 편집기 프로그램을 실행하여 수정하고 원본 테이프의 새 버전을 생성해야 한다. 그렇지 않으면 원본 테이프를 다시 감아 두 번째 패스를 위해 테이프 판독기에 다시 장착할 수 있었다. 이번에는 종이 테이프 펀치가 평평하게 작용하여 해당하는 물체 테이프(보통 포트란 원본 테이프보다 두세 배 더 길다)를 생산하는 동안, 이 종이 테이프 펀치가 반듯하게 읽히곤 했다.

결국 바닥에 테이프가 두 개 널려 있는 상태에서 물체와 소스 테이프가 감겨져 있는 동안 미니스템은 다시 한 번 읽혀야 할 것이었다. 링크 로더 프로그램인 LINK은 미니시스템 프롬프트에 따라 키보드에서 호출될 수 있고, 판독기를 통해 공급되는 객체 테이프가 제공될 수 있다. 링크 로더는 또한 포트란 라이브러리 기능이 포함된 라이브러리 테이프를 판독기에 로드할 것을 요구하였다. 두 테이프 모두 결국 정리해야 할 필요가 있겠지만, 결국 프로그램을 실행할 수 있는 위치에 서게 된 프로그래머의 열망 때문에, 이것은 즉시 처리되지 않는 경향이 있었다. 사용자의 프로그램(Main이라 불림)은 미니시스템(Minisystem)의 안내에 따라 호출할 수 있었다.

프로그램을 실행하는 동안 무슨 일이 일어났는지에 따라, 프로그래머는 편집자 프로그램에 최신 소스 테이프를 다시 읽어보아야 할지도 모른다. 하지만, 다시 한번, 소프트웨어 개발 주기를 다시 한 번 돌아볼 준비가 되어 있다.

참고 항목

외부 링크