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

Ответить
Аватара пользователя
shiny
Сообщения: 10823
Зарегистрирован: 22 дек 2016, 00:00
Откуда: в Шуе бал

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

Сообщение 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.
Аватара пользователя
krt17
Сообщения: 521
Зарегистрирован: 17 апр 2018, 23:45

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

Сообщение krt17 »

мнеб бригаду. какую проблему решаем то?
Аватара пользователя
Activator
Сообщения: 487
Зарегистрирован: 03 янв 2025, 02:07
Откуда: Харьков

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

Сообщение Activator »

Интересно, но ниче не понятно.
Аватара пользователя
shiny
Сообщения: 10823
Зарегистрирован: 22 дек 2016, 00:00
Откуда: в Шуе бал

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

Сообщение shiny »

Шарик, ты - балбес(: Я ж написал решение. В кряктрах, которые потрошили, попадалось нечто randomize usr 16384.(Far не кажет, что это за число).
Кажись, у MKHG или у Titus'a было в одной интре RANDOMIZE USR A.
Аватара пользователя
shiny
Сообщения: 10823
Зарегистрирован: 22 дек 2016, 00:00
Откуда: в Шуе бал

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

Сообщение shiny »

Activator писал(а): 17 май 2025, 16:00 Интересно, но ниче не понятно.
В отладчике ставишь бряк про адресу, после запуска BC=адрес.
Аватара пользователя
Activator
Сообщения: 487
Зарегистрирован: 03 янв 2025, 02:07
Откуда: Харьков

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

Сообщение 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 данные.
Аватара пользователя
shiny
Сообщения: 10823
Зарегистрирован: 22 дек 2016, 00:00
Откуда: в Шуе бал

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

Сообщение shiny »

Ну это и ежу понятно. Я говорил, что попадались не пойми, какие адреса.
Аватара пользователя
krt17
Сообщения: 521
Зарегистрирован: 17 апр 2018, 23:45

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

Сообщение krt17 »

ставишь бряк на всю озу и бинго
Аватара пользователя
krt17
Сообщения: 521
Зарегистрирован: 17 апр 2018, 23:45

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

Сообщение krt17 »

вабщемта всегда так делаю, нахера в бейсике каматозить
Аватара пользователя
krt17
Сообщения: 521
Зарегистрирован: 17 апр 2018, 23:45

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

Сообщение krt17 »

Я понял, норм тема, бряк в пзу ставишь в бс адрес запуска. Но я адрес забуду а где озу у спектрума помню
Аватара пользователя
shiny
Сообщения: 10823
Зарегистрирован: 22 дек 2016, 00:00
Откуда: в Шуе бал

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

Сообщение shiny »

Хорошо вам с унрылом.
Ответить