GCC для PDP-10
2025-03-19 22:10![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Собрал компилятор GCC для PDP-10 по инструкции: http://pdp10.nocrew.org/netbsd/build-gcc.txt
Исходник скачивается по ссылке: http://pdp10.nocrew.org/gcc/download/gcc-pdp10-20030606.tar.bz2
Пришлось маленько подрихтовать, чтобы собиралось на современном линуксе. Пропущен третий параметр (mode) в вызове open(). Есть пример автономной программы на Си: http://pdp10.nocrew.org/netbsd/boot.c
При её компиляции получается ассемблерный код:Не так интересна сама PDP-10, как факт наличия компилятора Си для словной архитектуры (без байтовой адресации) с размером слова 36 бит. Значит и для БЭСМ-6 можно переделать. Чем слово 48 бит хуже?
Исходник скачивается по ссылке: http://pdp10.nocrew.org/gcc/download/gcc-pdp10-20030606.tar.bz2
Пришлось маленько подрихтовать, чтобы собиралось на современном линуксе. Пропущен третий параметр (mode) в вызове open(). Есть пример автономной программы на Си: http://pdp10.nocrew.org/netbsd/boot.c
При её компиляции получается ассемблерный код:
TITLE boot .DIRECTIVE KL10 DEFINE OWGBP (PS,Y)<<ps>B5+<y>*%ONE> ; one-word global byte pointer DEFINE GIW (Y)<<y>*%ONE> ; global indirect word DEFINE %EXIND (I,X,Y)<<i>B1+<x>B5+<<y>*%ONE>> ; extended format indirect word .PSECT .text/ronly SEARCH MONSYM .ENDPS .PSECT .text/ronly dte.talk: xmovei 17,2(17) movem 16,-1(17) xmovei 16,-1(17) movem 1,1(16) move 6,1(16) movem 6,@[GIW 451] aos @[GIW 452] CONO DTE,20000 %2:! move 6,@[GIW 444] jumpe 6,%2 setzm @[GIW 444] move 6,@[GIW 450] move 1,6 move 16,-1(17) xmovei 17,-2(17) popj 17, dte.init: xmovei 17,1(17) movem 16,(17) xmovei 16,(17) setzm @[GIW 444] setzm @[GIW 445] setzm @[GIW 446] move 16,(17) xmovei 17,-1(17) popj 17, getchar: xmovei 17,2(17) movem 16,-1(17) xmovei 16,-1(17) jfcl ; nop %7:! movei 1,3400 pushj 17,dte.talk move 6,1 andi 6,177 movem 6,1(16) move 6,1(16) jumpe 6,%7 move 6,1(16) move 1,6 move 16,-1(17) xmovei 17,-2(17) popj 17, putchar: xmovei 17,2(17) movem 16,-1(17) xmovei 16,-1(17) movem 1,1(16) move 6,1(16) andi 6,177 move 1,6 pushj 17,dte.talk move 16,-1(17) xmovei 17,-2(17) popj 17, puts: xmovei 17,3(17) movem 16,-2(17) xmovei 16,-2(17) movem 1,1(16) ldb 6,1(16) movem 6,2(16) move 6,2(16) jumpn 6,%13 jrst %12 %13:! jfcl ; nop %14:! move 1,2(16) pushj 17,putchar ibp 1(16) ldb 6,1(16) movem 6,2(16) move 6,2(16) jumpn 6,%14 %12:! move 16,-2(17) xmovei 17,-3(17) popj 17, .ENDPS .PSECT .rodata/ronly %LC0:! BYTE (9)103,145,143,151 BYTE (9)040,156,047,145 BYTE (9)163,164,040,160 BYTE (9)141,163,040,165 BYTE (9)156,040,160,157 BYTE (9)162,164,040,144 BYTE (9)145,040,125,156 BYTE (9)151,170,056,015 BYTE (9)012,000 %LC1:! BYTE (9)015,012,131,157 BYTE (9)165,040,164,171 BYTE (9)160,145,144,072 BYTE (9)040,000 %LC2:! BYTE (9)015,012,000 .ENDPS .PSECT .text/ronly ENTRY main main: xmovei 17,4(17) movem 16,-3(17) xmovei 16,-3(17) movem 1,1(16) movem 2,2(16) pushj 17,..main pushj 17,dte.init skipa 1,.+1 OWGBP 70,%LC0 pushj 17,puts pushj 17,getchar move 6,1 movem 6,3(16) skipa 1,.+1 OWGBP 70,%LC1 pushj 17,puts move 1,3(16) pushj 17,putchar skipa 1,.+1 OWGBP 70,%LC2 pushj 17,puts movei 6,0 move 1,6 move 16,-3(17) xmovei 17,-4(17) popj 17, .ENDPS EXTERN %ONE EXTERN ..main ; expanded load unsigned 16 left: 0 ; output load unsigned 16 left: 0 ; expanded load unsigned 16 right: 0 ; output load unsigned 16 right: 0 ; expanded load unsigned 32: 0 ; output load unsigned 32: 0 ; output load signed 9: 0 ; expanded load signed 16 left: 0 ; output load signed 16 left: 0 ; expanded load signed 16 right: 0 ; output load signed 16 right: 0 ; expanded load signed 32: 0 ; output load signed 32: 0 ; expanded load signed: 0 ; output load signed: 0 ; expanded ffs: 0 END
no subject
Date: 2025-03-19 21:54 (UTC)no subject
Date: 2025-03-19 22:16 (UTC)no subject
Date: 2025-03-19 22:36 (UTC)no subject
Date: 2025-03-19 23:04 (UTC)no subject
Date: 2025-03-20 22:30 (UTC)no subject
Date: 2025-03-21 00:28 (UTC)PDP-10, кстати, есть в относительно современной версии в виде маленькой коробочки (1-u или 2-u rackmount). В когдатошнем музее Аллена, который нынче продан в Атланту, были и работающие старые PDP-10 и вот такие коробочки.
no subject
Date: 2025-03-20 06:30 (UTC)no subject
Date: 2025-03-20 08:15 (UTC)no subject
Date: 2025-03-20 23:58 (UTC)no subject
Date: 2025-03-21 10:27 (UTC)