Определение работы в эмуляторе

Советский компьютер Радио-86РК (1986) и его клоны

Moderator: Shaos

begoon
Maniac
Posts: 256
Joined: 22 Aug 2012 17:06
Location: 188.220.42.216

Определение работы в эмуляторе

Post by begoon »

Мне неоднократно приходила мысль сделать некий интерфейс из юзерского кода РК в эмулятор.

Например, если эмулятор встречает вот такое, то есть он (эмулятор), он ставит С=0.

Code: Select all

; --- emulator detection sequence
stc        ; 37, C=1
stc        ; 37, C=1
stc        ; 37, C=1
stc        ; 37, C=1
; ---
jc without_emulator
; --- we are under an emulator
; A = 01 -- rk86
; A = 02 -- 86rk
; A = 03 -- emu80
; etc
...
Далее, каждый эмулятор уже волен делать что угодно.

У меня в регистре B - код цветовой палитры (ч/б, толкалин, акименко, апогей), а с С - флаг режима турбо.
Last edited by begoon on 16 May 2026 10:24, edited 1 time in total.
User avatar
vital72
Senior
Posts: 195
Joined: 17 Jun 2014 04:29
Location: 93.80.157.217

Re: Определение работы в эмуляторе

Post by vital72 »

мысль конечно интересная, а какой практический смысл?
https://radio-86rk.ru
кто я такой, чтобы спорить с самим собой
User avatar
vital72
Senior
Posts: 195
Joined: 17 Jun 2014 04:29
Location: 93.80.157.217

Re: Определение работы в эмуляторе

Post by vital72 »

и кстати, на каких-нибудь специфических программах это может поломаться, если вдруг они почему-то используют эти инструкции, а ты раз -- и флаг им подпортил.
https://radio-86rk.ru
кто я такой, чтобы спорить с самим собой
begoon
Maniac
Posts: 256
Joined: 22 Aug 2012 17:06
Location: 188.220.42.216

Re: Определение работы в эмуляторе

Post by begoon »

Сделал эксперимент - хук в виде "волшебной" проследовательние команд, чтобы эмулятор и программа могли знать друг о друге.

Исходник программы hwid.asm

Last edited by begoon on 17 May 2026 11:42, edited 1 time in total.
User avatar
Shaos
Admin
Posts: 25070
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Определение работы в эмуляторе

Post by Shaos »

Всё что касается чисто JS-эмулятора перенёс в основную тему: viewtopic.php?t=10058&start=180