-
- ? Manwe
- 12.12.2023 11:22
Чистые диски нужны – их плюс в том, что они забиты нулями и хорошо упаковываются. Я часто делаю образы дискет, на которых мало данных (например, записана одна демка), и мне хочется чтобы размер архива отражал реальный размер программы.
А если просто инициализировать каталог старого образа дискеты, она останется забита мусором и не упакуется.
- ? Manwe
- 23.01.2023 19:42
Не понял что происходит, может баг в конфигурации БК 0010 + СМК? Во время блокового чтения процедурой по адресу 160004.
Записал видео: manwe.ru/bug.mp4
Там ближе к концу при выполнении обыкновенной команды MOV R2,26(R3) по адресу 160336 вдруг происходит загрузка файла в память и halt (но куда направлен 4-ый вектор, там уже перетёрто загрузкой).
Непонятно как такое может быть, не выполняется же код чтения с диска.
- ? Manwe
- 18.09.2021 10:17
В меню Вид / Панели инструментов и закрепляемые окна есть все окна кроме главного – самого экрана БК. Дело в том, что можно случайно его закрыть. А как от крыть – непонятно. То есть эмулятор ломается раз и навсегда: как бы всё работает, но ничего не отображается, потому что окна нет.
- ? Manwe
- 17.07.2020 15:28
Ого, хитро.
А изначально игра «Green» была с какой-то защитой? Смутно помню, что она не копировалась обычными средствами. Может быть просто начиналась с 400-го адреса?
- ? Manwe
- 01.06.2020 14:40
Интересное поведение HDD у эмулятора: в паспорте HDD есть регистр, указывающий сколько блоков можно загрузить за раз в буфер HDD. Программа HDD Img Maker создаёт образы, в которых отмечено, что буфер только на 1 блок. Но с такого образа получается считать 8 блоков без возникновения ошибки. Даже больше восьми (кажется, на 11-ом повисает - перестаёт выдавать бит готовности).
- ? manwe
- 31.05.2020 19:27
Всё же подозреваю проблему в эмуляции. В режиме БК0011м+СМК у меня даже такое бывает иногда (а иногда не бывает) сразу после запуска эмулятора:
https://imageup.ru/img151/3613651/emulator-bug.png
- ? Manwe
- 30.05.2020 00:57
А поддерживает ли эмулятор обращение к HDD в формате LBA? Я так понимаю, программно нужно устанавливать один бит в том регистре, где задаётся головка, и тогда данные остальных регистров интерпретируется винчестером как единый 28-битный номер блока. http://www.cpcwiki.eu/index.php/SYMBiFACE_II:IDE_registers
- ? Manwe
- 29.05.2020 10:00
Что-то странное происходит: MOV #40000,@#177662 не отключает таймер по 100-му вектору. Трассировал программу и обнаружил: несмотря на попытку отключить таймер, первый же MTPS #0 приводит к прерыванию по вектору 100.
- ? Manwe
- 26.05.2020 21:52
Sandro, спасибо за ответ!
Было бы круто через командную строку задавать опцию цвет/монохром. А ещё грузить bin-файл в БК 0011м тоже через командную строку (сейчас только для БК 0010 это работает.
Стерео-Covox тоже полезная фича. Эмуляция джойстика на клавиатуре как-нибудь.
- ? Manwe
- 26.05.2020 09:35
Странный глюк в последней версии эмулятора: постоянный свист при включении Covox.
Причём, проявляется так: если переключиться в любую конфигурацию (например, БК 0011 с МСТД), в которой по умолчанию Covox выключен, то свиста нет. Затем нажимаем кнопку включения Ковокса. Свиста по-прежнему нет! А теперь нажимаем кнопку перезапуска процессора. Свист появляется. И это уже навсегда – при смене конфигурации и повторном возвращении в неё будет пищать с первого раза (если Ковокс включен). Выглядит так, будто конфигурация «портится» после включения Ковокса и перезапуска процессора.
- ? Manwe
- 13.05.2020 08:24
Почему-то неактивны опции multicolor и monochrome в меню настроек. Запускаю на MacOS.
¤
Ещё жаль, что не инициализируется Монитор при запуске бинарника из командной строки. Пришлось сграбить первые 1000 байт памяти и в начале программы вставить такое:
¤
INIT: MOV #MEMORY0,R1
CLR R2
MOV #400,R0
1: MOV (R1)+,(R2)+
SOB R0,1
MOV #770,SP
JMP BEGIN
¤
MEMORY0: insert_file "memory0.raw"
¤
BEGIN:
- ? Manwe
- 17.04.2020 15:25
Ещё может быть полезным прозвонить контакты разъёма МПИ на предмет замыканий (в выключенном состоянии). Описание выводов МПИ здесь: http://vak.ru/doku.php/proj/bk/bk-mpi
- ? Manwe
- 15.04.2020 17:28
Конечно, надо оцифровывать! Сперва в компьютер любым аудио-редактором на частоте 44 КГц, 16 бит, стерео (да-да, несмотря на то, что запись моно, лучше считать именно стерео). Затем можно выложить на файлообменник и написать ссылку сюда. У меня есть программа на Питоне, которая декомпилирует WAV-данные в биты 1/0, ориентируясь на пилотный тон в начале WAVа.
Если на кассетах есть игры со специальной кассетной защитой – это очень ценно.
Если обычные данные, то тоже может попасться что-то интересное. Переведу в .bin тогда их. Можно будет запускать в эмуляторе.
- ? Manwe
- 15.04.2020 17:23
Можете выложить фото экрана в высоком разрешении? По нему можно определить проблему с ОЗУ (если она есть).
- ? Manwe
- 07.04.2020 08:59
Почему-то скриншоты грабятся размытыми
- ? Manwe
- 02.04.2020 00:01
Супер!
- ? Manwe
- 14.03.2020 23:24
Maxvel, это просто офигительно! Сейчас буду пробовать, благодарю.
- ? Manwe
- 13.03.2020 23:01
Друзья, давайте соберём в одном месте все игры с защитами и хитрыми загрузками!
Return of Jedi, Перевал, Xenon, Ferrari, Hobbit, Expert, Astrodrom, Circler что там ещё было?
Цифруйте с кассет, выкладывайте.
- ? Manwe
- 04.03.2020 00:27
Мыло да, всё портит. Главное, видео грабится мыльное, даже если вывод на экран удалось настроить не мыльный.
¤
gid, на счёт грабежа видео вопрос: почему бы не привязывать его к кадровому импульсу?
- ? Manwe
- 23.02.2020 21:26
У меня на Windows 10 даже консольное окно не появляется. А что может быть не так с параметрами ffmpeg? Я ничего не менял в ini-файле.
- ? Manwe
- 23.02.2020 20:37
Ещё при записи видео внизу появляется надпись «Начать захват видео с помощью внешней утилиты FFMPEG» и программа виснет.
- ? Manwe
- 23.02.2020 20:33
Почему-то экран замыленный в 1024x768. Спасает только Screen Render Mode = DrawDib.
- ? Manwe
- 23.02.2020 10:21
А нельзя выставить фреймрейт 48.828125 ?
- ? Manwe
- 21.02.2020 09:23
Sandro, там, наверное, просто места не хватило под запрет прерываний. 512 байт же ограничение.
- ? Manwe
- 20.02.2020 19:35
на Avito можно найти
- ? Manwe
- 20.02.2020 11:05
Макс, мой email: manwe@demoscene.ru
- ? Manwe
- 17.02.2020 15:51
Можно и без потрошения видеоконтроллера посчитать экспериментально.
Таймер процессора насчитывает 640 тиков за кадр на БК 0011м. Это 640*128 тактов процессора.
Я проводил эксперимент: 320 тиков таймера показывал одну страницу памяти, 320 другую (обе страницы раскрашены в разные цвета). В таком эксперименте экран «разрезан» на две части. Эта линия разреза стабильно держится на месте и никуда не уплывает. Если бы между кадрами проходило не ровно 640 тиков таймера, граница постепенно уплывала.
Теперь считаем кадровую частоту: 4 МГц / (640*128) = 48.828125
- ? Manwe
- 15.02.2020 19:29
Sandro, исходники там должны быть в zip-архиве с демкой
- ? Manwe
- 14.02.2020 22:46
Sandro, действительно – не подумал я про палитры. Стало быть, RGB после применения палитры конвертировать в серый (в тех же пропорциях, как сделано в БК 0010). Смысл в том, что тот самый шнур RGB-в-Монохром физически можно подключать и к 11-ой БК.
¤
P.S. Спасибо за релиз! Пойду тестировать.
- ? Manwe
- 14.02.2020 22:41
Может кто-нибудь подсказать по режимам работы СМК?
На БК 0011м в Мониторе не работает EMT 12 (подключение страниц памяти) при подключенном контроллере СМК-512 (эмулятор gid показывает режим "140"). А именно, в системные ячейки прописывается что нужно и запрос EMT 10 (узнать какие страницы памяти подключены по адресам 40000 и 100000) показывает то, что заказали ранее с помощью EMT 12. Но по факту по указанным адресам всегда подключены страницы 0 и 7. Нет никакой возможности с помощью EMT 12 подключить два экранных буфера (страницы 5 и 6) в области памяти 40000-140000.
А если отключить контроллер СМК-512, EMT 12 работает как надо.
- ? Manwe
- 03.08.2018 18:46
Молодец, конечно! Респект
- ? Manwe
- 09.04.2018 17:49
Все табуляции убились :(
- ? Manwe
- 09.04.2018 17:43
Не знаю, нужно кому или нет, но вот моя программка загрузки нескольких файлов.
Имена файлов перечисляете после метки NAMES.
Число файлов указываете там где FILES.
После загрузки всех файлов по адресу метки MAP получается таблица: адрес1, длина1, адрес2, длина2... и так для каждого файла.
Не забудьте задать размер таблицы MAP, он должен равняться числу файлов, умноженному на 2 и ещё плюс 2.
Программа располагается с адреса 1000, а блок данных для EMT 36 - с адреса 1004. Это прописано жёстко в тексте программы, потому что не знаю можно ли в ассемблере Turbo 8 вычислять переменные, зависящие от метки.
Ошибки загрузки не обрабатываются.
¤
¤
DATA36=1004
ADDR=DATA36+2
NAME=DATA36+6
SIZE=DATA36+30
¤
JMP START
¤
.BLKW 25 ; EMT 36 data for read files
FILES: .WORD 4 ; number of files to load
MAP: .BLKW 12 ; number of files * 2 + 2
NAMES: .ASCIZ 'file1'
.ASCIZ 'name2.ovl'
.ASCIZ 'filenam3'
.ASCIZ 'another1.ovl'
.EVEN
¤
START:
¤
; load files
¤
MOV #FREE,R0 ; pointer to free memory
MOV #MAP,R5 ; pointer to table of loaded files
MOV #NAMES,R4 ; pointer to array of names
MOV #3,DATA36 ; 3 means read, 2 means write
¤
1: MOV R0,(R5) ; save addres in map table
MOV R0,ADDR ; set addres toload file
MOV #NAME,R1 ; pointer to name in EMT 36 data
MOV #20,R2
2: DEC R2 ; copy name of file
MOVB (R4)+,(R1)+
BNE 2
3: CLRB (R1)+
SOB R2,3
¤
MOV #DATA36,R1 ; pointer to EMT 36 data
EMT 36
¤
MOV SIZE,R0
INC R0
BIC #1,R0
MOV (R5)+,R1
MOV R0,(R5)+ ; store size of loaded file
ADD R1,R0
MOV R0,(R5) ; where to load next file
¤
DEC FILES ; number of files to load
BNE 1
¤
¤
HALT
¤
FREE: .END
- ? Manwe
- 05.12.2017 20:34
Трекер официально лежит здесь:
http://www.pouet.net/prod.php?which=15892
?