ZXNet эхоконференция «code.zx»


тема: патч пзу, попытка номер 2



от: Kirill Frolov
кому: All
дата: 04 Apr 2002
Hемедленно нажми на RESET, All!

В первом варианте был страшный глюк.

=== Cut ===
; (L) Copyleft Kirill Frolov 04-04-2002
;
; Патч к Basic-128.
; Патч накладывается посредством ALASM
; ассемблера. Патч совершает следующие
; изменения в прошивке бейсика:
;
; 1. Исключается из меню
; пункт "Tape Loader".
; 2. Пункт "TR-Dos" ставится первым
; в меню (вместо "Tape Loader").
; 3. Последний пункт "TR-DOS" замещен
; пунктом "Reset" для выполнения
; программы "холодного сброса".
; 4. Если в момент сброса удерживается
; клавиша Caps Shift то происходит
; выход в меню без осуществления
; "холодного сброса".
; 5. При удержании клавиши Symbol Shift
; происходит запуск Basic-128
; (программа в теневом банке ПЗУ
; не будет запущена).
; 6. Если вышеозначенные клавиши не
; удерживаются, то проверяется
; содержимое ОЗУ по адресам
; #5c00..#5c0f. Если проверяемые
; ячейки заполнены одним значением
; то предполагается, что произошло
; включение компьютера и происходит
; выполнение программы "холодного
; сброса", иначе происходит выход
; в меню.
;
; Примечания:
; Для вызова теста изображения из
; Basic-128 необходимо при сбросе
; удерживать одновременно 3 клавиши:
; Caps Shift, Symbol Shift и Space
; (или Symbol Shift и Break).
; При одновременном удержании
; Caps Shift и Symbol Shift
; (или одной клавиши Ext Mode)
; произойдет выход в меню Basic-128.
; Под выходом в меню подразумевается
; запуск программы из банка "теневого
; пзу" на компьютерах типа Scorpion и
; Kay или выход в меню Basic-128
; на компьютере типа Pentagon (при
; необходимости программа может быть
; модернизирована для запуска программ
; из дополнительного банка ПЗУ на
; компьютере Pentagon). В дополнительном
; банке ПЗУ могут находится коммандеры
; (boot) TR-DOS (например
; Quick Commander) или прошивки типа
; MadROM.
; Под "холодным сбросом"
; подразумевается запуск программы
; из банка ПЗУ TR-DOS для загрузки
; boot файла (при необходимости возможна
; модернизация программы для запуска
; iS-DOS с винчестера).
;
; Для правильной работы патча
; необходимо установить тип компьютера
; Pentagon или Scorpion/Kay.
;
; "Патчить" следует прошивку пзу
; Basic-128 от компьютера Pentagon.
;
; ВИМАИЕ! Программа не предназначена
; для исправления ПЗУ компьютера
; Scorpion работающего с теневым
; монитором. Изменять содержимое ПЗУ
; Basic-128 в компьютере Scorpion
; ЕЛЬЗЯ при наличии теневого монитора.
; Если вам хочется использовать этот
; патч то придется отказаться от
; использования теневого монирора и
; заменить содержимое Basic-48,
; Basic-128 и TR-DOS стандартными
; прошивками (например от компьютеров
; Pentagon или Kay).
;
; а различных версиях компьютера Kay
; программа не была протестирована и
; возможно работать не будет.
;

; Установка типа машины
; PENTAGON = 0
MACHINE EQU 1 ; SCORPION & KAY = 1

;-----------------------------------------------------

LOAD EQU #C000

JMP128 EQU #0009
TEST128 EQU #00C7

TTSBEG EQU #3C20 ; TAPE-TESTER #43 BYTES
TTSEND EQU #3C63
RSRBEG EQU #06E8 ; RS232 RECEIVER #E2 BYTES
RSREND EQU #07CA
RSSBEG EQU #11A3 ; RS232 TRANSMITTER #48 BYTES
RSSEND EQU #11EB

TEMPSTK EQU #5C08
TEMPPRG EQU #5D3B

ORG LOAD
DISP 0

; загрузка стандартной ПЕТАГООВСКОЙ прошивки Basic-128
INCBIN "rom128"


;---------------------------------------------------
ORG LOAD+JMP128
DISP JMP128
JP TEST

;---------------------------------------------------
ORG LOAD+RSRBEG
DISP RSRBEG
XOR A
RET ; NO RS232


TEST
LD SP,TEMPSTK

LD HL,#5C00
LD BC,#10
LD A,(HL)
CPL1 CPI
JP NZ,BRESET
JP PE,CPL1

LD A,#FE
IN A,(#FE) ; CAPS SHIFT
RRA
JP NC,BRESET
JP POWERUP

PRESET DI
LD SP,TEMPSTK
POWERUP LD HL,R_PUP
JR RJP

BRESET LD A,#7F
IN A,(#FE) ; SYMBOL SHIFT
AND #02
JP Z,TEST128

LD HL,R_RES

RJP
LD DE,TEMPPRG
LD BC,#0080 ; FIXME size
LDIR
LD BC,#7FFD
JP TEMPPRG

; DISP TEMPPRG

R_PUP LD HL,0
PUSH HL
LD A,#10
OUT (C),A
JP #3D2F


R_RES IFN MACHINE
LD HL,#0A00
OUT (C),L
LD B,#1F
OUT (C),H
RST #00
ELSE
JP TEST128
ENDIF

; ENT
; DISP $-LOAD

;---------------------------------------------------
ORG LOAD+RSSBEG
DISP RSSBEG
RET


;-----------------------------------------------------
ORG LOAD+#275E
DB "TR-Dos "
DW #2020,#A020
ORG LOAD+#2784
DB "Reset"
DW #2020,#2020
DW #A020
ORG LOAD+#2744+2
DW #2816
ORG LOAD+#2744+14
DW PRESET


;-----------------------------------------------------
ORG LOAD+TTSBEG
DISP TTSBEG


;-----------------------------------------------------

ENT

=== Cut ===




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Обзор - Клятва Ночи, STS, Code Cruncher, Battle Command.
Железо - схема Advansed Flash Modem pазpаботанная Flash Inc.
События - новости: виртауально пати Antique Toy, в Беларуси спектрум умер, готовится новый выпуск IzhNews.
Part 5 - The spectrum database.
Железо - Устройства ввода-вывода: Клавиатура.

В этот день...   25 апреля