ZXNet эхоконференция «code.zx»
тема: 128 -> 48
от: Станислав Ломакин
кому: All
дата: 03 Mar 2006
Hello, All
напомните, плз, как из 128 режима переключиться в 48 (полноценный, с закрытым
7ffd), так, чтобы безболезненно вернуться после этого в васик. от лысого
out(7ffdH),30H васик обижается :(
от: Владимир Кладов
кому: All
дата: 03 Mar 2006
Hello, boo_boo
randomize usr 0
?
от: Станислав Ломакин
кому: All
дата: 03 Mar 2006
Hello, Vladimir Kladov
Vla> randomize usr 0
Vla> ?
кхем.. :rolleyes: не, аналог команды васика-128 "spectrum", не прерывающий
выполнение программы. OUT(7ffd),#30 прекрасно все переключает, но стоит сделать
RET, как настают кранты -- тк на стеке адрес в ПЗУ-0 :(
от: Константин Жуков
кому: All
дата: 03 Mar 2006
Hello, boo_boo
В своём буте я делаю так для перехода в режим 48 с открытым портом:
LD SP,(23613)
LD HL,#1303
EX (SP),HL
LD HL,#1B7D
PUSH HL
Дальше тебе нужно добавить лишь out. В литературе также еще рекомендуется
переключать каналы на работу с ZX-принтером, но думаю тебе это не понадобится.
от: Wladimir Bulchukey
кому: All
дата: 03 Mar 2006
Hello, Jukov
Переключение из 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К не требуется.
от: Станислав Ломакин
кому: All
дата: 04 Mar 2006
Hello, Wlodek
оно самое, спасибо :)
|