вообще и местный "родной" DIR в частности - обычно я заменяю на патченый, но там система с которой скрин не тронутая от @AFZ
Вид для печати
вообще и местный "родной" DIR в частности - обычно я заменяю на патченый, но там система с которой скрин не тронутая от @AFZ
Во-первых, QUASIC (ты U пропустил. Квэйсик. В народе его звали Квасик и сочинить на нем программу называли термином "заквасить". :)
Quasic - это, так сказать, комплексный продукт, включающий редактор текста, компилятор и исполнитель (Run-Time System) для программ на языке Квэйсик. Язык бэйсикоподобный, но работает только с целыми числами. Он действительно компилирующий, програииа исполняется со скоростью процессора, а не 100 команд в секунду, как на интерпретаторе Бэйсика. С другой стороны весь этот комплексный продукт все время занимает память, исходник сочиняемой программы также занимает память, поэтому сильно большую программу не сделаешь. Допустим, моя любимая Анчурия туда не влезла. Зато быстро попробовать какую-либо мелочь - милое дело.
Исходно это была перфолента, загружаемая абсолютным загрузчиком и работающая со стандартной периферией ПЛОС через, опять же, стандартный ПЛОСовский супервизор ввода-вывода (IOX). Та копия дискеты - это моё творение. Я перенес QUASIC под RT-11, заменил перфоленты файлами на дисках, еще что-то там сделал, но сейчас ничего не помню. При этом я особенно не вникал в его потроха. Я, по-простому, перехватил вектор команды IOT, распознав обращение к фотосчитывателю перенаправил запрос ко входному файлу, при обращении к перфоратору перенаправил к выходному, еще что-то сделал...
Руководство по этому QUASIC'у лежит в файле QDOC.DOC (в формате докуматора DOC.SAV), руководства по своим программам, посредством которых этот QUASIC перенесен пол RT-11 я, увы, сочинить не удосужился.
- - - Добавлено - - -
Да, копию оригинальной перфоленты QUASIC'а я тоже где-то публиковал...
В текущей версии "эмулятора ДВК": DVK_Emulator_12.08.20_13-08 - добавлен образ перфоленты с примером программы для БЭЙСИК ДВК НЦ.
Теперь, поле запуска конфига Бэйсик НЦ.cfg - можно загрузить программу с перфоленты командой OLD:
Код:БЭЙСИК ДВК НЦ
@0
ЖДУ
OLD
ЖДУ
RUN
7 4 1 0
8 5 2 9
6 3 7 4
ОСТ СТРОКЕ 150
ЖДУ
Для сохранения собственной программы в образ перфоленты - нужно выполнить команду SAVE.
Образ будет создан в каталоге Paper Tapes\ с именем файла вроде: 2020.08.12 13-50-26.bin
Оно не рассказывает про работу с перфолентой (OLD/SAVE) и настройку на старте (нужны вам расширенные функции / высокоскоростные устройства / установка внешней функции / озу)
Но поскольку это клон DEC PDP-11 BASIC, то об этом можно прочесть в pdf/dec/pdp11/lang/basic/DEC-11-AJPB-D_PDP-11_BASIC_Programming_Manual_Dec70.pdf
Если что, нормальное описание ПЛОСовского Бейсика (а в ПЗУхе ДВК-1 именно он, с небольшим загрузчиком из ПЗУ на положенное место) есть в документе 0.005.027 ПО2, который шёл в комплекте с Электроникой-60 и 60М.
Скрытый текст
Есть в сети, в частности, на retropc.org, но там скан документа из поздних поставок Э-60, оригинал которого был отпечатан на каком-то принтере без маленьких букв, или даже на АЦПУ. Собственно, почти все понятно, просто странно смотрится, например, такой текст: "ЭЛЕМЕНТЫ, НАПЕЧАТАННЫЕ СТРОЧНЫМИ БУКВАМИ, НАПРИМЕР СПИСОК...", где имеемое в виду слово "список" на самом деле отпечатано заглавными буквами. Ранние и средние по времени поставки Э-60 комплектовались копией книжки, оригинал которой был отпечатан на обычной русской пишущей машинке, а буквы английских слов, не имеющие похожих по начертанию русских букв, были вписаны от руки. У меня, кстати, где-то должна быть такая книжка, но сканить ее сильно не хочется...[свернуть]
Неа, это был танко-подобный Роботрон, весом 60+ кг, цельнолитой из алюминия поддон. И прекрасная медная трубочка на вершине механизьма.
Широченный, лента до 2 цветов. Имел ж. корзинку с платами. ИРПР родной, и к БКшке мог подключаться. Шрифтовое колесико было 2 видов - Рус загл/стр и Рус/Лат заглавные .
Такие принтера ставили в эпоху компьютеризации в ОКБ Э. ( 1988-1990 г. ) , вместе с ДВК-2М и даже ЛС 1-проволочной на базе полной платы КНГМД ( МХ ).
Нечто подобное я и подозревал. Но, по-любому, документация на поздние выпуски Э-60М и вся документация Э-60.1 (то, что цельноутянуто с 11/23) отпечатана безобразно. Да и значительная часть ДВК-шной ранней и средней по времени документации тоже. Ранняя документация Э-60 тоже не сахар, но, ИМХО, все-таки лучше. Но, увы, я не нашел в Сети приличных сканов этого варианта документации.
Подробный разбор кода данного Бейсика:
https://www.learningpdp11.com/pdp-11-basic-analysis
Если что, я на днях нашел у СуперМакса листинг этого самого Бейсика. Да, скан отвратительного качества, тем не менее это скан оригинального листинга от Digital. Естественно, его кто-то скачал или на битсейверсе или где-то на похожем ресурсе. Зная наименование оригинального файла, наверное, нетрудно будет и найти его там. Но проще скачать у СуперМакса. Вот здесь.
Я имел ввиду ПЗУ-шный Бейсик из первого поста.
По вашей ссылке совсем другая программа.
Вообще-то я с этим Бейсиком ни разу не работал. Я в своё время (первая половина 80-х) довольно много работал с ПЛОСовским Бейсиком на Электронике-60М (ЦП М2). Когда же мне, уже в 90-е, в руки попал ДВК-1 с ПЗУхой 013, я запустил этот Бейсик и понял, что он ну очень похож на тот самый ПЛОСовский Бейсик от Э-60, в котором двоичным редактором перетерли часть сообщений, заменив их на русские в коде КОИ-7 Н2.
Я сравнивал эту программу с тем перфоленточным Бейсиком, который был в комплекте Э-60. Ну очень похоже. Сравнивал, правда, по памяти, оригинала у меня нет. Хотя в Сети где-то должна быть и копия этой перфоленты...
Код:.BOO/FOR HX1:
HX 2.2 XXDP Cold boot..
BOOTING UP XXDP-XM EXTENDED MONITOR
XXDP-XM EXTENDED MONITOR - XXDP V2.5
REVISION: F0
BOOTED FROM HX1
124KW OF MEMORY
UNIBUS SYSTEM
RESTART ADDRESS: 152000
TYPE "H" FOR HELP !
.R BASIC
BASIC .BIN
PDP-11 BASIC, VERSION 007A
*O
READY
PRINT 10
10
R0=004106 R1=013545 R2=177560 R3=013540 R4=016142 R5=016106
SP=157472 PC=000702 PS=000004
>>>B HX1
HX 2.2 XXDP Cold boot..
BOOTING UP XXDP-XM EXTENDED MONITOR
XXDP-XM EXTENDED MONITOR - XXDP V2.5
REVISION: F0
BOOTED FROM HX1
124KW OF MEMORY
UNIBUS SYSTEM
RESTART ADDRESS: 152000
TYPE "H" FOR HELP !
.R RBASIC
RBASIC.BIN
100/16i b|iCiK, BAPiAHT 001A
*O
gOTOB
PRINT 10
10
Я в этом не сомневаюсь, но листинг от СуперМакса с ними ничуть не сходится.
Пример - обработка команды FOR из листинга СуперМакса:
Для сравнения соответствующий код из ПЗУ 013:Код:1391 MOV R1,-(SP)
1392 DEC (SP) ;(LOC OF THE 'FOR')
1393 MOVB (R1)+,R2
1394 BMI ERRSX6
1395 SWAB R2
1396 BISB (R1)+,R2 ;ADDRESS RUNNING VARIABLE IN SYMBOL TABLE
1397 ADD (R5),R2
1398 CMPB (R1)+,#.EQ ;CHECK "="
1399 BNE ERRSX6
1400 MOV R2,VARSAV(R5) ;(VAR OF THE FOR)
1401 JSR PC,EVAL ;EVALUATE START VARIABLE
Обратите внимание на широкое использование TRAP-ов для вызова подпрограмм.Код:007306: TRAP 126 ;parse the variable name
007310: CMP R2, #75 ;equals sign
007314: BNE 7552
007316: CLR R0
007314: MOV R4, -(SP)
007322: TRAP 134 ;beginning of the running state storage
007324: TRAP 114 ;search the running state storage
007326: BNE 7336 ;skip if variable found
007330: MOV R4, R0
007332: TRAP 146 ;allocate space for the variable
007334: BR 7342
вот что ко мне пришло вчера
брать тутЦитата:
Basic-11 V2 - Source File Assembling and Linking
Lou Ernst 5/8/2007
References: (available from Bitsavers.org)
DEC-11-LIBTA Basic-RT V2 Installation Manual
DEC-11-LIBUA Basic-11 Users Guide
Files: DISK1.DSK (RT-11 logical disk image of the first floppy - Basic-11)
DISK2.DSK (RT-11 logical disk image of the second floppy - Basic-11)
DISK3.DSK (RT-11 logical disk image of the third floppy - MU Basic)
BASIC.DSK (a single RT-11 logical disk image of files from the first and second disk that has been cleaned up - extraneous/redundant files removed. Use this disk image for best results for generating Basic-11)
Background:
Basic-11 V2 is a basic language package for RT-11. It can be customized to run in as little as 8kw of core (by way of overlays) and make use of EIS, FIS, or an FPU if available.
The collection of files here was extracted from three RX02s that Tom Ponsford had in his collection. He purchased some binders with Basic-11 documentation in them with three RX02 floppies at a University of Arizona auction in 2005. Tom never read the disks, but correctly assumed that they would eventually be readable by someone with an RX02 or compatible drive.
I read the disks on my 11/23+ and found what you now see. Two of the disks had the complete source code for Basic-11 V2 as .MAC files, the SUCNFG.BAS and related configuration files, and a series of .BAT files for patching assembled code with various fixes. The .MAC files are fully commented and can be amusing to simply read by themselves. The comments can give insights into the personalities of the programmers in the early/mid seventies when this code was written.
The third disk contained assembled and linked .SAV files for Multi-User Basic (mubas.sav) and the version of MU Basic optimized to take advantage of the XM monitor (mubasx.sav). MU Basic ran on RT-11 systems sysgened for multi-terminal support. Each terminal would appear to the operator to be connected to its own dedicated machine running basic. Only some of the MU Basic source files are present, there is not enough here to run mucnfg.bas and assemble and link custom versions of MU Basic. Perhaps the rest will turn up eventually. The present author has not gone to the trouble to install the hardware and sysgen his system for multi-user support to verify that the MU Basic .sav files work. However, there is no reason not to believe that they do.
The author extracted these files from his 11/23+ with Will Kranz' TU58.exe IBM-PC TU58 emulator. The PC running the emulator when connected properly looks like DD: to the pdp-11. The .dsk images can be manipulated on a PC with Will's rtxtra and rtdir utilities. There are various other ways to transport the files that work just as well.
Most, if not all of the manuals required to get started with Basic-11 (and MU Basic) are on Bitsavers and should be reviewed.
However, the dec manuals all appear to assume that the user who is building his own custom version of Basic already has assembled .OBJ files. In this archive there are the original source .MAC files, which need to be assembled before they can be linked as illustrated in the manual.
In the paragraphs that follow, the instuctions to assemble and link custom versions of Basic-11 are detailed.
Procedure:
It is assumed that the user has a sizeable mass storage device, like an RK05 or RL01 or RDxx. If that is not the case (a system with no fixed disks and limited removable storage) the user is not out of luck. They will instead however, need to be more careful, planning to put only the needed files on the working disks.
Transfer the logical disk image with the source files (basic.dsk is suggested) to your machine and mount the logical disk. Assign the logical disk to DK:. There is already a basic.sav on the logical disk. This is needed to run the sucnfg.bas configuration file. This basic, as stated in the installation guide has type 3 overlay and no math hardware support. The manual also mentions bas8k and basicd. A user can make his own basicd from selecting the right options in sucnfg. Bas8k is only needed if the user's machine only has 8k (overlay 5). The sucnfg basic program generates an indirect file that when run will link the necessary pre-assembled .OBJ files. Again though, the necessary .OBJ may not be present here, they need to be assembled from the .MAC files. Sucnfg.bas will chain to other small sucnfg#.bas files as it runs. Assumedly this was done for users with only 8kw. Sucnfg1.bas does most of the work populating the indirect file with most of the appropriate routines to be linked based on the question responses. One of the sucnfg2 through 6 files adds the remaining entries depending on the overlay structure requested. Sucnfg7 cleans up and finishes off the job.
To determine what source files need to be assembled, run the sucnfg.bas as detailed in the Basic-11 Instalaltion Guide. The user will be prompted to answer questions about the his custom basic should be built, reminescent of a simplified rt-11 sysgen. Next, examine the indirect file that was generated - it contains the list of .OBJ files that need to be assembled.
For each .OBJ to be assembled, there are three .MAC files required. These are BSMAC.MAC, BSASM.MAC, and the .MAC that has/almost has the name of the finished .OBJ required. The BSMAC.MAC contains some common routines used by every .OBJ the user will be creating. BSASM.MAC contains definitions that will be looked for by assembler directives in the third .MAC file mentioned above. The user should examine the BSASM.MAC and edit it so that it agrees with the choices made when sucnfg.bas was run (for example, double or single precision, subroutine support, resequencing, etc.) Various versions of BSASM.MAC that were present on the source floppies have been left here. They have filenames like BSASM*.mac, where * is some other letter.
There is often not a .MAC file with exactly the name of the .OBJ file referenced in the indirect file generated by sucnfg.bas. Often the difference is a missing last letter. For example, the indirest file shows BSR0D while only BSRO.MAC is found. The present author has found that depending on the definition found in the BSASM.MAC, the BSR0 can complile with double or single precision support, hence the D or S at the end of the compiled BSR0D or BSR0S that came from BSR0.MAC.
So, to create BSROD.OBJ, the user edits BSASM.MAC to enable the definition for double precision support then does:
.R MACRO
*BSR0D=BSMAC,BSASM,BSR0
and gets BSROD.OBJ as output. Other files this is true for are BSSUB (BSSUB and BSSUBN for subroutine and no subroutine support) and slightly more complicated BSERML (long err msg) or BSERMS (short err msg), which are generated from BSERMD (double precision) and BSERMS.MAC (single precision).
BSCLI is also tricky. If the user is not linking other outside routines that will need call support, then assemble this file to BSCLIN.OBJ. If they will, follow the instructions in the users guide in the chapter entitled "Using Assembly Language Routines with Basic."
Some files are straightforward, as with SUDTCM. It assembles to SUDTCM.OBJ. In all cases, always assemble all three files. Again for example:
.R MACRO
*SUDTCM=BSMAC,BSASM,SUDTCM
Some files do not have to be assembled, they already have been. These are BSOT0 and 1, D and S .EAE, .EIS, .FIS, .FPU. These routines contain the transindental function support using optional math hardware, if so selected for incorporation by sucnfg. The unassembled source files are not here.
Once all the files have been assembled, then the indirect file generated by SUCNFG.BAS can be executed as illustrated in the installation guide.
Notes about linking Basic-11 with assembly routines provided with hardware (drivers):
If the user has assembly routines to link with Basic (as described in the installation manual and users guide) they may also need to link a library called BSCLLB if requested by the instructions that came with the hardware. The author has a National Instruments GPIB11V-2 interface card for which that is the case. BSCLLB.MAC or .OBJ was not found with this distribution, however a series of other files that appear to contain the routines that would otherwise have been in BSCLLB were found. The user should assemble BSMAC and BSASM with each of the following: BSCLAE, BSCLAL, BSCLBM, BSCLCH, BSCLCK, BSCLMS, BSCLPL, and BSCLRT. Then when answering the question in SUCNFG concerning user provided files to be linked, instead of entering BSCLLB, instead enter each of the individual files assembled above.
Good Luck. If the reader gets stuck, he is welcome to send the present author an e-mail for help.
https://mirrors.pdp-11.ru/search.php...1%20dec&page=1
http://mirrors.pdp-11.ru/_pdp-11/_soft/Basic-11/
любопытно, что происходит на этом видео
https://www.youtube.com/watch?v=DDCWZsV-e-Y
если учесть, что mame не умеет в двк....
Взялся за книгу Бейсик за 30 часов примеры даны на Бейсик для ДВК.
Книгу разобрал по "тетрадкам", отсканировал, нарезал на страницы и почистил от явных ляпов монтажа.
Также собрал все страницы в PDF.
Потихоньку распознаю.
Все материалы доступны здесь.
Если у кого-то есть сведения по истории Бейсик для ДВК - буду рад.
похоже, MAME там для запуска того, что не умеет b2m
Пока готово:
- Предисловие
- 1. Линейные программы
- 2. Цикл с оператором перехода
- 3. Организация цикла с помощью операторов GO TO и IF
Смотреть тут.
Закончена работа над книгой Бейсик за 30 часов.
https://sysadminmosaic.ru/b30h
Если кому интересно, зашил ДВК-шный Бэйсик в РЕмулятор
https://zx-pk.ru/threads/21519-re-mu...=1#post1218207
Подскажите пожалуйста, какими способами можно передавать исходники на интерпретатор Бейсика ДВК в эмуляторах?
В любом эмуляторе можно запустить BASIC.SAV и после приглашения "READY" выполнить команды "OLD" и "RUN". В следующем примере использован "Эмулятор ДВК", в конфиге которого к приводу "HD1" подключена папка Windows "WorkDir", в которой находится файл "KOI8.BAS" из комплекта "Эмулятора RT-11":
Кроме этого универсального способа, который работает в любом эмуляторе, когда на диске с логическим именем "DK" расположен нужный для запуска файл с расширением ".BAS" - есть ещё более простой способ, котрый работает только в "Эмуляторе ДВК" и "Эмуляторе RT-11".Код:.AS HD1 DK
.BASIC
BASIC-11/RT-11 V02-03Y
OPTIONAL FUNCTIONS (ALL, NONE, OR INDIVIDUAL)?
READY
OLD KOI8
READY
RUN
KOI8 08-DEC-25 14:17:54
Привет !!!
READY
Если при запуске любого из этих эмуляторов передать в качестве аргумента запуска строку с относительным или абсолютным путём к файлу - файл будет автоматически загружен и запущен, а после завершения работы программы эмулятор автоматически закроется:
Код:C:\RT-11 Emulator\Demo>rt11 "koi8.bas"
BASIC-11/RT-11 V02-03Y
OPTIONAL FUNCTIONS (ALL, NONE, OR INDIVIDUAL)?
Привет !!!
C:\RT-11 Emulator\Demo>
Код:C:\>rt11 "C:\RT-11 Emulator\Demo\koi8.bas"
BASIC-11/RT-11 V02-03Y
OPTIONAL FUNCTIONS (ALL, NONE, OR INDIVIDUAL)?
Привет !!!
C:\>
Помимо этого настройка в Windows ассоциации расширений SAV и BAS с "Эмулятором ДВК" или "Эмулятором RT-11" позволяет запускать такие файлы на выполнение из каталогов Windows двойным кликом.
По какой причине не работает программа вывода таблицы символов?
Вложение 83299Код:10 FOR I = 1 TO 255
20 PRINT CHR¤(I); " ";
30 NEXT I
https://emulator.pdp-11.org.ru/misc/DVK-1.pdf
страница 143
Вложение 83307
Ошибка 123, скорее всего, связана с отсутствием оператора LET определения переменной I, см. пример на стр.35
Хотя оператор LET не требуется для определения переменной цикла FOR. Следующее подозрение - что в бейсике ДВК отсутствует встроенная функция CHR$.
Не, я думаю, что CHR$ принимает только целочисленные значения, а ей тут подсовывают число с плавающей запятой, вот и ругается на несуществующую переменную.
Аргументом CHR$ может быть только число из диапазона 0..32767.
В описании функции вообще написано вот такое
Код:CHR¤(ЕХР) - Возвращает строку из одного символа. Значение ЕХР может иметь вид (N+128),
где N - десятичное значение кода КОИ-7 в пределах от 0 до 127.
Однако символы вида CHR¤(N) и CHR¤ (N+128), не эквивалентны,
хотя и являются одним и тем же символом в таблице КОИ-7.
Попробуйте I не от 1, а от 32
Страница 25 книги https://emulator.pdp-11.org.ru/misc/DVK-1.pdf:
"К сожалению, в интерпретаторе ДВК-1 (но не в языке программирования Бейсик) не предусмотрена работа с символьными константами и переменными. Интерпретатор ДВК-1 позволяет использовать символы лишь в примечаниях и для выдачи их на экран".