Страница 1 из 1

адрес вызова USR

Добавлено: 17 май 2025, 08:37
shiny
в кректрах попадается запрятанный в BASIC адрес. Иногда помогает поймать вызов:
13491: THE 'USR' FUNCTION (offset 45)
The address of this routine is found in the table of addresses. It is called indirectly via fp_calc_2.
This subroutine ('USR number' as distinct from 'USR string') handles the function USR X, where X is a number. The value of X is obtained in BC, a return address is stacked and the machine code is executed from location X.
usr_no 13491 CALL FIND_INT2 Evaluate the 'last value', rounded to the nearest integer; test that it is in range and return it in BC.
13494 LD HL,11563 Make the return address be that of the subroutine STACK_BC.
13497 PUSH HL
13498 PUSH BC Make an indirect jump to the required location.

Re: адрес вызова USR

Добавлено: 17 май 2025, 11:49
krt17
мнеб бригаду. какую проблему решаем то?

Re: адрес вызова USR

Добавлено: 17 май 2025, 16:00
Activator
Интересно, но ниче не понятно.

Re: адрес вызова USR

Добавлено: 17 май 2025, 16:01
shiny
Шарик, ты - балбес(: Я ж написал решение. В кряктрах, которые потрошили, попадалось нечто randomize usr 16384.(Far не кажет, что это за число).
Кажись, у MKHG или у Titus'a было в одной интре RANDOMIZE USR A.

Re: адрес вызова USR

Добавлено: 17 май 2025, 16:02
shiny
Activator писал(а): 17 май 2025, 16:00 Интересно, но ниче не понятно.
В отладчике ставишь бряк про адресу, после запуска BC=адрес.

Re: адрес вызова USR

Добавлено: 17 май 2025, 16:08
Activator
shiny писал(а): 17 май 2025, 16:02
Activator писал(а): 17 май 2025, 16:00 Интересно, но ниче не понятно.
В отладчике ставишь бряк про адресу, после запуска BC=адрес.
10 LET A = USR 50000
Выполнит машинный код по адресу 50000 и запишет в A значение регистра A после RET.
Вот такой вариант я встречал в gfx и music disk forever 23, когда делал диск версию.
там они так-же делали в BC данные.

Re: адрес вызова USR

Добавлено: 17 май 2025, 16:15
shiny
Ну это и ежу понятно. Я говорил, что попадались не пойми, какие адреса.

Re: адрес вызова USR

Добавлено: 17 май 2025, 18:15
krt17
ставишь бряк на всю озу и бинго

Re: адрес вызова USR

Добавлено: 17 май 2025, 18:16
krt17
вабщемта всегда так делаю, нахера в бейсике каматозить

Re: адрес вызова USR

Добавлено: 17 май 2025, 18:24
krt17
Я понял, норм тема, бряк в пзу ставишь в бс адрес запуска. Но я адрес забуду а где озу у спектрума помню

Re: адрес вызова USR

Добавлено: 17 май 2025, 19:46
shiny
Хорошо вам с унрылом.