Генератор случайных чисел спрашивали. Вот, например. Простой, короткий, быстрый, с хорошим разбросом.
Использование таймера закомментировано (символами "точка с запятой"), но кому надо - может раскомментировать. Единственное, между запуском таймера и началом работы генератора вставьте какую-то пользовательскую активность типа нажатия клавиш в меню и т.п., чтобы при каждом запуске получалось действительно случайно.
Первая картинка - код, вторая результат вывода на экран 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




Ответить с цитированием