напомните, плз, как из 128 режима переключиться в 48 (полноценный, с закрытым 7ffd), так, чтобы безболезненно вернуться после этого в васик. от лысого out(7ffdH),30H васик обижается![]()
напомните, плз, как из 128 режима переключиться в 48 (полноценный, с закрытым 7ffd), так, чтобы безболезненно вернуться после этого в васик. от лысого out(7ffdH),30H васик обижается![]()
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
кхем..Сообщение от Vladimir Kladov
не, аналог команды васика-128 "spectrum", не прерывающий выполнение программы. OUT(7ffd),#30 прекрасно все переключает, но стоит сделать RET, как настают кранты -- тк на стеке адрес в ПЗУ-0
![]()
В своём буте я делаю так для перехода в режим 48 с открытым портом:
RES 4,(IY+1)
LD SP,(23613)
LD HL,#1303
EX (SP),HL
LD HL,#1B7D
PUSH HL
Дальше тебе нужно добавить лишь out. В литературе также еще рекомендуется переключать каналы на работу с ZX-принтером, но думаю тебе это не понадобится.
Последний раз редактировалось Jukov; 03.03.2006 в 22:17.
Переключение из 128К в 48К "на ходу":
CALL сюда-> DI
LD SP,(23613)
POP HL
LD HL,4867 ; ERR_SP FOR 48-BASIC
PUSH HL
LD HL,7030 ; CONTINUE INTERPRETATOR 48-BASIC
PUSH HL
RES 4,(IY+1); сброс флага 128К
LD DE,5566 ; INFORMATION FOR STREAMS
LD HL,(23631) ; CHANS
LD BC,15
ADD HL,BC
EX DE,HL ; DE=ADDR.FOR STREAMS/CHANNELS, HL=5556
LD C,4 ; BC=4 FOR LDIR
LDIR
EI
RET
; после возврата из этой подпрограммы будет 48К режим с открытым портом #7FFD.
; Если нужно закрыть порт, запишите в него нужный байт по возвращении
; из подпрограммы.
Вызов этой подпрограммы
не опасен, поэтому специальной проверки на 128К не требуется.
Последний раз редактировалось Wlodek; 03.03.2006 в 20:35.
оно самое, спасибо![]()
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)