128 -> 48

ZXNet echo conference «code.zx»

From Stanislav Lomakin To All 3 March 2006

Hello, All please remind me how to switch from 128 mode to 48 (full, with closed 7ffd), so that you can return to Vasik painlessly after this. from bald out(7ffdH),30H Vasik is offended :(

From Vladimir Kladov To All 3 March 2006

Hello, boo_boo randomize usr 0 ?

From Stanislav Lomakin To All 3 March 2006

Hello, Vladimir Kladov Vla> randomize usr 0 Vla> ? ahem.. :rolleyes: no, an analogue of the Vasik-128 "spectrum" command, which does not interrupt program execution. OUT(7ffd),#30 switches everything perfectly, but it’s worth doing RET, as things get worse - maybe on the stack the address is in ROM-0 :(

From Konstantin Zhukov To All 3 March 2006

Hello, boo_boo In my boot I do this to switch to mode 48 with an open port: LD SP,(23613) LD HL,#1303 EX (SP),HL LD HL,#1B7D PUSH HL Then you only need to add out. It is also recommended in the literature switch channels to work with the ZX printer, but I think you won’t need it.

From Wladimir Bulchukey To All 3 March 2006

Hello, Jukov Switching from 128K to 48K on the fly: CALL here->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); reset flag 128K 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 ; after returning from this routine there will be 48K mode with port #7FFD open. ; If you need to close a port, write the required byte to it upon return ; from the subroutine. Calling this subroutine is not dangerous, so special testing at 128K is not required.

From Stanislav Lomakin To All 4 March 2006

Hello, Wlodek that's it, thank you :)