nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 08:37



Reply to topic  [ 6 posts ] 
Sprinter BIOS 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Исходники биоса выкладываю сюда коммитами от версии к версии:

https://gitlab.com/sprinter-computer/bios

Версии BIOS:
Code:
;---------------------------------------------------------------
;Rev   Date      Name   Description
;---------------------------------------------------------------
;Версия 3.04
;R0046  16.06.2003 IM   Исправления для совместимости video с Sp2000
;R0046  13.06.2003 IM   Исправления глюков в режиме ZX
;R0046  02.06.2003 IM   Исправления для видео-ОЗУ AS7C1024A-JC12
;Версия 3.03
;R0045  05.02.2003 IM   Исправления для видео-ОЗУ AS7C1024-JC12
;Версия 3.02
;R0044  01.10.2002 IM   Добавления в прошивке
;Версия 3.00.253 (10.04.2002) UPDATE01
;R0043  01.04.2002 IM   Перекомпилена прошивка для ПЛМ для SIMM
;R0042  10.03.2002 DNS  Setup 253
;Версия 2.17.252 (03.03.2002) UPDATE-beta-version
;R0041  03-03-2002 IM   Подправлены цвета в функции CGA палитры
;R0040  02-03-2002 IM   Исправлен глюк функции выдачи портов
;R0039  02-03-2002 IM   Добавлены чтение палитры и текстовая CGA палитра
;Версия 2.16.252 (27.02.2002) WORK
;R0038  27-02-2002 IM   Сообщение об отсутствии Spectrum-ROM
;R0037  26-02-2002 IM   Жестко закреплены страницы 41h..47h за Spectrum.ROM
;R0036  25-02-2002 IM   Добавлен внутренний порт для возврата в ZX/FN
;R0035  22-02-2002 IM   В BIOS добавлена функция установки Original-INT
;R0034  21-02-2002 IM   Добавлена функция BIOS, переключающая 720/1.44
;Версия 2.15.252 (18.02.2002) WORK
;R0033  18-02-2002 IM   Исправление для ISA
;R0032  12-02-2002 IM   Добавлена функция чтения ROM-Disk-а
;R0031  12-02-2002 IM   Исправлена функция BIOS чтения/записи RAM-Disk-ов
;R0030  12-02-2002 IM   Исправлена схема COVOX-Blaster-а
;R0029  08-02-2002 IM   Полностью измененa схема доступа к ПЗУ/Fast-RAM/ISA
;Версия 2.14.252 (01.02.2002) WORK
;R0028  01-02-2002 DNS  Добавлен сдвиг экрана в setup
;Версия 2.13.251 (10.11.2002) WORK
;R0027  23-01-2002 IM   COVOX-Blaster 16bit, 110khz, stereo
;R0026  17-01-2002 IM   Исправлена ошибка в функции FN_PIC1
;Версия 2.12.251 (10.11.2002) RELEASE
;R0025  10-01-2002 IM   Смещен экран на 1 знакоместо влево
;Версия 2.11.251 (08.01.2002) WORK
;R0024  10-01-2002 IM   Исправление предыдущего исправления
;R0023  08-01-2002 IM   Исправления в BIOS-е (перезагрузка ПЛМ)
;R0022  08-01-2002 IM   разборки с FDD
;Версия 2.10.251 (25.12.2001) RELEASE
;R0020  23-12-2001 IM   коррекция синхронизации в ПЛМ
;R0019  20-12-2001 IM   убрано R0018 - NMI
;Версия 2.09.251 (18.12.2001) WORK (for Denis only!)
;R0018  18-12-2001 IM   изменена прошивка ПЛМ (добавлен NMI)
;R0017  17-12-2001 IM   изменена прошивка ПЛМ (исправления для SIMM)
;R0016  15-12-2001 IM   изменена прошивка ПЛМ (исправления SINC)
;R0015  14-12-2001 IM   добавлен пункт "L" в Post
;R0014  19-11-2001 IM   обезглюченая прошивка для Winbond
;R0013  18-11-2001 IM   возвращен старый copyright в Basic128
;Версия 2.08.251 (17.11.2001) WORK
;R0012  17-11-2001 IM   изменена прошивка ПЛМ от 17-ноя-2001
;Версия 2.07.251 (11.11.2001) WORK
;R0011  11-11-2001 IM   изменена прошивка ПЛМ от 11-ноя-2001
;Версия 2.06.251 (07.11.2001) WORK
;R0010  07-11-2001 IM   изменена прошивка ПЛМ от 07-ноя-2001
;Версия 2.06.251 (05.11.2001) WORK
;R0009  05-11-2001 IM   изменена прошивка ПЛМ от 05-ноя-2001
;Версия 2.05.251 (xx.xx.2001) WORK
;R0008   xx-xx-2001 IM   -- описание изменений --
;Версия 2.04.251 (27.10.2001) RELEASE
;R0007   27-10-2001 IM   изменена прошивка ПЛМ от 27-окт-2001
;R0006   12-10-2001 IM   перекопана прошивка ПЛМ от 12-окт-2001
;Версия 2.04.250 (04.10.2001) WORK
;R0005   04-10-2001 DNS   вставлен новый ROM.BIN от 4-окт-2001
;Версия 2.04.249 (22.09.2001) WORK
;R0004   22-09-2001 DNS   вставлен новый ROM.BIN от ...хм.. не помню..
;R0003   22-09-2001 IM   исправление названий в меню "Hardware"
;R0002   22-09-2001 IM   вставлен номер ПЗУ и функция биоса для него 0EDh
;R0001   22-09-2001 IM   добавлена функция GOTO Spectrum 0FBh
;Версия 2.03.248 (08.06.2001) WORK
;---------------------------------------------------------------
;Revisions:
;R0044 - Введены биты порта управления управления:
;       бит выключения RESET
;       бит включения NMI по <alt>+<F12>
;       бит отключения ZX-screen (совмещен с битом Sprinter/Spectrum)
;R0036 - Спец-функция для sprinter.exe Установка внутреннего порта EE
;       в не 0 приводит к переходу в установленную страницу и продолжению
;       работы программы, установившей перехват
;R0033 - В режиме Sprinter введен старый доступ к ISA через порт 1FFD и
;       PAGE3=D0..DF
;R0031 - В функции чтения/записи RAM-Disk-ов был жестокий глюк...
;       она вообще не работала
;R0030 - Убраны сбои при проигрывании в режиме с прерываниями, когда
;       в CBL записываются лишние или недозаписываются байты...
;       по прерыванию CBL внутренний счетчик устанавливается на 00h или 80h
;R0029 - Введено разделение Sprinter и Spectrum режимов.
;       В режиме Spectrum и Sprinter-ZX все ПЗУ находятся в ОЗУ
;       Изменен доступ к ПЗУ и Fast-RAM доступ стал быстрее. Изменилась
;       адресация страниц Fast-RAM и ROM. Адресуются через порт 5F в режиме
;       SYSTEM-on. Введен полный запрет доступа к RAM во время работы с ПЗУ
;       ОЗУ в этот момент свободно для других функций (потребуется для DMA)
;       Скорость работы в Fast-RAM выведена на максимум (без вайтов).
;       Выкинуты ПЗУ Spectrum-а из BIOS.
;R0026 - Исправлена ошибка в функции FN_PIC1. Были неверная отработка
;       номера окна и несохранение порта RGADR.
;R0024 - последствия R0023, в Турбо возникло занижение скорости из-за
;       переключения управляющего регистра на boundary вместо wait
;R0023 - обнаружена и устранена ошибка в программе перезагрузки ПЛМ извне
;       (через КЭШ) был неверно инициализирован boundary-регистр Z84C15
;R0022 - убран глюк работы с FDD, возникший после корректировки работы с
;       SIMM-ами (подаваемые на FDD данные обрывались раньше времени)
;R0020 - убран глюк несовместимости прошивки "старой" и "новой" партий плат
;R0018 - "дикий" NMI - по alt+F12 просто подается NMI, ничего более не
;       отслеживается
;R0017 - введены задержки (input delay in MAX+) для ввода данных с SIMM-а,
;       изменена времянка сигнала /WE на SIMM
;R0016 - Добавлена схема подавления джиттера строчной синхронизации
;       давится джиттер +/- 0.25мкс
;R0015 - Перед загрузкой ПЛМ зажигается "L" на индикаторе Post-Tester-a
;R0014 - убран глюк под меню help на Winbond-ах (проверить!)
;R0012 - закреплено исправление для ISA, видео-ОЗУ улучшение для UMC
;R0011 - закреплено исправление для ISA, по видео-ОЗУ откат до 2.04 версии
;R0010 - дополнительное удаление глюков с видео-ОЗУ
;R0009 - частичное удаление глюков с видео-ОЗУ
;R0007 - исправление множественных глюков при работе с SIMM методом
;       перекомпиляции с новыми опциями MAX-Plus.
;R0006 - дополнительное исправление глюков при работе с SIMM.
;


Версии SETUP:
Code:
;---------------------------------------------------------------
;Rev   Date      Name   Description
;---------------------------------------------------------------
;Изменения в build'e 2.53
;R06   16-02-2002 DNS   Add CMOS install routine. Disabled TRDOS install routine.
;Изменения в build'e 2.52
;R05   28-01-2002 DNS   Add new items to SETUP Utility for screen position.
;Изменения в build'e 2.51
;R04   14-09-2001 DNS   Added procedure GET_BOARD_NUMBER and
         Removed 2 IDE (if with_2ide)
;Изменения в build'e 2.50
;R03a   02-08-2001 DNS   ADD BUILD-IN CD DRIVER (Not release)
;R03   30-07-2001 DNS  Developed a new IDE DETECT routine and fixied any bugs
;R02    25-07-2001 DNS  Add Secondary IDE
;Изменения в build'e 2.48
;R01   23-04-2001 DNS   Removed procedure GET_ID and make new which
;                       will be take Model Name.
;R00   xx-xx-2000 DNS   New BIOS for Sp2000 build 2.48
;---------------------------------------------------------------
;Revisions:
;R01 - Функция GET_ID на платах Sprinter97, получала даты создания и
;      прошивки ПЗУ, на платах Sp2000 было введино понятие модели.
;R02 - Автодетект 4х устройств
;R03 - Добавлена работа всех функций со вторым IDE каналам, работает
;      нестабильно, возможно железо, начата работа над чтением с CD,
;      исправлена ошибка (при определении CDROMа не указывался признак
;      MASTER/SLAVE в параметрах IDE(#FE:#C1C0-#C1CF).
;R04 - Добавлен вывод номера платы (функция #ED) при старте компьютера,
;      работа со вторым IDE перенесена в условную компиляцию (if with_2ide)
;----------------------------------------------------------------


Последние исходники, что есть в архиве Ивана:
Версия 2.17.252 (03.03.2002) UPDATE-beta-version
Получается отсутсвуют исходники 3.04, 3.03, 3.02 и 3.00.253
Есть бинарники 304 (глючный?), 303 и 300 (тот что у меня стоит сейчас)...

P.S. Вот как собирается прошивка (взято из _MAKE_SP.BAT):
Code:
@REM clear all ROM
del _sprin.bin
disk3.com _sprin.bin exp.bin 00000H,800H,1400H
disk3.com _sprin.bin _sprin.bin 800H,800H,0
disk3.com _sprin.bin _sprin.bin 1000H,1000H,0
disk3.com _sprin.bin _sprin.bin 2000H,2000H,0
disk3.com _sprin.bin _sprin.bin 4000H,4000H,0
disk3.com _sprin.bin _sprin.bin 8000H,8000H,0
disk3.com _sprin.bin _sprin.bin 10000H,10000H,0
disk3.com _sprin.bin _sprin.bin 20000H,20000H,0

@REM write first 64k ROM
disk3.com _sprin.bin exp.bin 20000H,4000H,0
disk3.com _sprin.bin DCP.LZ 21400H,1400H,0

@REM Denis part
disk3.com _sprin.bin den_bios\setup.253 00000H,4000H,0

disk3.com _sprin.bin sp2000st.bin 30000h,100h,0
disk3.com _sprin.bin ..\ALTERA\sp2000_t.bin 30100h,59215

call version.bat
disk3.com _sprin.bin vers.bin 3FFD0H,30H,0

make_num _sprin.bin 18

disk3.com это небольшая утилитка, которая создаёт образ прошивки и размещает туда бинари
Code:
DISK3.COM OUTPUT_FILE INPUT_FILE OUTPUT_OFFSET,LENGHT,INPUT_OFFSET

version.bat пишет дату и время сборки в vers.bin:
Code:
date >list<enter
time >>list<enter
dir _sprin.bin>>list
disk3 vers.bin list 0,0AH,10CH
disk3 vers.bin list 0AH,0DH,11BH
disk3 vers.bin list 17H,0EH,050H
disk3 vers.bin list 24H,0CH,12H

sp2000st.bin это загрузчик - собирается отдельно

_________________
:dj: https://mastodon.social/@Shaos


22 Dec 2020 19:40
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Вытащил прошивки Альтеры и код Ивана из каждого образа ПЗУ что есть у меня на руках - вот MD5 хеши альтеровских прошивок:
Code:
85d6d4efccbc10203cd467022c922840  BIOS212alt.BIN
4d41c7fac240765adde96ad58a8c8b23  BIOS215alt.BIN
8d5add2970916dd0abc9f5cdbaa649c2  BIOS216alt.BIN
8d5add2970916dd0abc9f5cdbaa649c2  BIOS217alt.BIN
8418408d9e581466294bdd886ddace13  BIOS300alt.BIN
a5ce09b1ae4a0cabe6a2fb7f6134858a  BIOS303alt.BIN
c3d9f5432e676a8d66fe601f8fc61942  BIOS304alt.BIN

а вот MD5 хеши Иванмаковской части биоса (между 303 и 304 разница только в выводимом номере версии):
Code:
03a306b6581296c5ab10c3bf8806645f  BIOS212exp.BIN
3d729e8cce85b00af94aa9068dc52d35  BIOS215exp.BIN
523c99a6006c7da6a289705f669dcd7e  BIOS216exp.BIN
6c36bb521dd1704a921bf64f2936ad06  BIOS217exp.BIN
f986b9cc961e3588a9eb6f920bb39ad2  BIOS300exp.BIN
faa1d249df631b0f6ae876285cbcf6c3  BIOS303exp.BIN
a5723b905837f44dea40d59eaf11740f  BIOS304exp.BIN

и на последок MD5 хеши Париновской части биоса (aka "SETUP"):
Code:
0b592ac71357424f5ce5ce460ee1fc4b  BIOS212set.BIN -> 251
45580266c716b0f01bbd4a86f2aecb63  BIOS215set.BIN -> 252
45580266c716b0f01bbd4a86f2aecb63  BIOS216set.BIN -> 252
45580266c716b0f01bbd4a86f2aecb63  BIOS217set.BIN -> 252
f4275988a826eb1ff1ab6465d398ce23  BIOS300set.BIN -> 253
f4275988a826eb1ff1ab6465d398ce23  BIOS303set.BIN -> 253
f4275988a826eb1ff1ab6465d398ce23  BIOS304set.BIN -> 253

_________________
:dj: https://mastodon.social/@Shaos


29 Dec 2020 02:42
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Вот чего меняется в образе ПЗУ если make_num IMAGE.BIN 7 сделать:
Code:
1c1
< 00000000  f3 76 ff ff 58 7e 83 d4  ff ff ff ff ff ff ff ff  |.v..X~..........|
---
> 00000000  f3 76 ff ff 3b 0d 05 80  ff ff ff ff ff ff ff ff  |.v..;...........|

786c786
< 00020000  c3 00 01 00 00 24 00 00  f5 3e 00 d3 3c f1 18 0b  |.....$...>..<...|
---
> 00020000  c3 00 01 00 00 07 00 00  f5 3e 00 d3 3c f1 18 0b  |.........>..<...|

20000 - это EXP (иванмаковская часть) - там только 1 байт поменялся - как раз тот самый 7
а вот в 00000 - это который SETUP & EXTENDED (париновская часть) - поменялось побольше (4 байта контрольная сумма говорят)

P.S. Вчера экспериментально подтверждено, что иванмаковские исходники, собираемые в эмуляторе CP/M-80, запущенном в эмуляторе DOS, создают результат бинарно идентичный версии биос 2.17, как и предполагалось ранее:
Shaos wrote:
Последние исходники, что есть в архиве Ивана:
Версия 2.17.252 (03.03.2002) UPDATE-beta-version
Получается отсутсвуют исходники 3.04, 3.03, 3.02 и 3.00.253
Есть бинарники 304 (глючный?), 303 и 300 (тот что у меня стоит сейчас)...
Исходники 300, 303 и 304 придётся восстанавливать дизассемблируя различия с 217 (аналогично тому, как я восстановил исходники OrgAsm)

_________________
:dj: https://mastodon.social/@Shaos


29 Dec 2020 19:42
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
В данный момент я застрял на сборке париновской части - там есть пара файликов, которые собираются неким z80asm (которого нет в архиве):
Code:
   ORG   #8000
   DB   "SETUP"
   JR   JUMP
   DB   "(C) 2001 PETERS Plus Ltd "
JUMP   DI
   POP   HL
   LD   SP,#7FFF
   PUSH   HL
   PUSH   AF
   LD   HL,#8000
   PUSH   HL
   LD   DE,#D000
   PUSH   DE
   LD   HL,DEPAKER
   LD   BC,LENBLOK
   LDIR
   LD   HL,PAKCODE
   LD   DE,#8000
   RET

DEPAKER
   INCLUDEBIN DEPACK.BIN
;LCODE   EQU $-DEHRUST

PAKCODE
   INCLUDEBIN CSETUP.BIN
LENBLOK   EQU   $-DEPAKER

   DB   $/256+1*256-$ DUP (#FF)


я попробовал некоторые z80asm-ы (включая виндовый Анисковца, который советовался петерсами для кросс-сборки в 2002) - никто это не берёт (затыкаются на последней строчке) - видимо надо исходник переделать подо что-то другое...

P.S. суть этого куска - взять запакованный сетап, разархивировать его дехрустом и запустить, при этом за упакованным кодом должно идти некоторое количество FF-ов - этот кусок, как и другой, собирающий вместе все бины, не меняется от версии к версии - так что я пожалуй его просто перепишу и положу во все версии...

_________________
:dj: https://mastodon.social/@Shaos


29 Dec 2020 20:18
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Начал выкладывать исходники биоса:

https://gitlab.com/sprinter-computer/bios

_________________
:dj: https://mastodon.social/@Shaos


30 Dec 2020 18:01
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
RomanRom2 любезно поделился фоткой ПЗУх, нормально работающих в Спринтере:

Attachment:
ROMs.jpg
ROMs.jpg [ 478.69 KiB | Viewed 4405 times ]


RomanRom2 wrote:
оттестированные мной ПЗУ на чтение. т.е. запись в них из доса спринтера не проверялась.
в целом они были закуплены по принципу "256к размерчик", это любые хххх020 микросхемы, какие нашел
28SF040 (512кб) взял до кучи. тоже работают если записать прошивку в нужную половину. я записывал в обе сразу что бы не думалось ))


Но прошиваться на самом Спринтере могут только вот такие (взято из исходников прошивалки):

Code:
        CALL READ_ID_ROM
        EX DE,HL
        LD HL,0B6BFh
        AND A
        SBC HL,DE
        JP Z,SST39SF020

        LD HL,076BFh
        AND A
        SBC HL,DE
        JP Z,SST39SF020

        LD HL,010BFh
        AND A
        SBC HL,DE
        JP Z,SST29EE020

        LD HL,024BFh
        AND A
        SBC HL,DE
        JP Z,SST29EE020

        LD HL,045DAh
        AND A
        SBC HL,DE
        JP Z,W29C020

_________________
:dj: https://mastodon.social/@Shaos


15 Jan 2021 18:53
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 6 posts ] 

Who is online

Users browsing this forum: No registered users and 6 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.