128 -> 48

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

От Станислав Ломакин Кому All 03.03.2006

Hello, All напомните, плз, как из 128 режима переключиться в 48 (полноценный, с закрытым 7ffd), так, чтобы безболезненно вернуться после этого в васик. от лысого out(7ffdH),30H васик обижается :(

От Владимир Кладов Кому All 03.03.2006

Hello, boo_boo randomize usr 0 ?

От Станислав Ломакин Кому All 03.03.2006

Hello, Vladimir Kladov Vla> randomize usr 0 Vla> ? кхем.. :rolleyes: не, аналог команды васика-128 "spectrum", не прерывающий выполнение программы. OUT(7ffd),#30 прекрасно все переключает, но стоит сделать RET, как настают кранты -- тк на стеке адрес в ПЗУ-0 :(

От Константин Жуков Кому All 03.03.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.03.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.03.2006

Hello, Wlodek оно самое, спасибо :)