В БК0010-01 таймер был недокументирован. В Армянских БК-шках он вообще не работал.
В БК0011М было прерывание по таймеру.
Генератор случайных чисел спрашивали. Вот, например. Простой, короткий, быстрый, с хорошим разбросом.
Использование таймера закомментировано (символами "точка с запятой"), но кому надо - может раскомментировать. Единственное, между запуском таймера и началом работы генератора вставьте какую-то пользовательскую активность типа нажатия клавиш в меню и т.п., чтобы при каждом запуске получалось действительно случайно.
Первая картинка - код, вторая результат вывода на экран 16536 случайных слов:
Ну и, понятное дело, если в вашей программе много свободных регистров, то надобность в ячейках памяти RND1 и RND2 отпадает, всё можно хранить в регистрах R1 и R2. Такая процедура будет работать раза в два быстрее. Или в три.Код:; Random generator for BK-0010 (c) Manwe/SandS 2019 ; Compile this source with PDPy11: https://github.com/imachug/PDPy11 ; TIMER=177712 ; timer port address ; MOV #123,@#TIMER-4 ; timer initial value ; MOV #1,@#TIMER ; stop and init timer ; MOV #20,@#TIMER ; start timer MOV #20000,R0 ; generate 20000 random numbers MOV #40000,R3 ; screen address 1: CALL RND MOV R1,(R3)+ ; put random number on the screen SOB R0,1 HALT RND: MOV RND1,R1 MOV RND2,R2 ROR R1 ROL R2 SWAB R2 ; ADD @#TIMER-2,R2 XOR R2,R1 MOV R1,RND1 MOV R2,RND2 RET RND1: .WORD 173451 RND2: .WORD 54102 .END
Последний раз редактировалось Manwe; 07.03.2019 в 13:15.
manwe.pdp-11.ru
Oleg N. Cher (04.12.2021)
Блог : http://collectingrd.kxk.ru/ . В ЛС прошу не писать, все сообщения [email protected]
у меня такая - но игрушки все работали нормально, фотка платы тут,
машинка кстати живая тока клавиатура дребезг ужасен
Как будет выглядеть самый красивый PUSHA;POPA...
Несколько я уже видел... не впечатлили...
Первое предложение, которое пришло в голову:
Занимает больше, чем 5 push’ей или 5 pop’ов подряд. Так что практического смысла не имеет.Код:PUSHA: MOV R0,-(SP) ADD #100,PUSHA DEC #5 BPL PUSHA POPA: MOV (SP)+,R5 DEC POPA DEC #5 BPL POPA
А также эти процедуры одноразовые. Так как самомодифицируются. Стало быть, надо их выправлять перед началом.
Последний раз редактировалось Manwe; 10.03.2019 в 00:21.
manwe.pdp-11.ru
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)