Код:
INITCOPYFRAME
LD BC,COPYFRAME_GENERATED
LD DE,SP_STORAGE
LD A,#ED ;LD (NN),
LD (BC),A
INC BC
LD A,#73 ;SP
LD (BC),A
INC BC
LD A,E ;N
LD (BC),A
INC BC
LD A,D ;N
LD (BC),A
INC BC
LD HL,#C000+SCREEN_WIDTH/2
LD (COPYFRAME_HL),HL
LD DE,FRAMEBUFFER+(FRAMEBUFFERLINE-SCREEN_WIDTH)/2
LD (COPYFRAME_DE),DE
LD A,SCREEN_HEIGHT
COPYROW
PUSH AF
LD A,2
COPYHALFROW
LD HL,(COPYFRAME_HL)
LD DE,(COPYFRAME_DE)
PUSH AF
LD A,#31 ;LD SP,
LD (BC),A
INC BC
LD A,E ;N
LD (BC),A
INC BC
LD A,D ;N
LD (BC),A
INC BC
LD A,#E1 ;POP HL
LD (BC),A
INC BC
LD A,#C1 ;POP BC
LD (BC),A
INC BC
LD A,#D1 ;POP DE
LD (BC),A
INC BC
LD A,#F1 ;POP AF
LD (BC),A
INC BC
LD A,#D9 ;EXX
LD (BC),A
INC BC
LD A,#08 ;EX AF,AF'
LD (BC),A
INC BC
LD A,#E1 ;POP HL
LD (BC),A
INC BC
LD A,#C1 ;POP BC
LD (BC),A
INC BC
LD A,#D1 ;POP DE
LD (BC),A
INC BC
LD A,#F1 ;POP AF
LD (BC),A
INC BC
LD A,#31 ;LD SP,
LD (BC),A
INC BC
LD A,L ;N
LD (BC),A
INC BC
LD A,H ;N
LD (BC),A
INC BC
LD A,#F5 ;PUSH AF
LD (BC),A
INC BC
LD A,#D5 ;PUSH DE
LD (BC),A
INC BC
LD A,#C5 ;PUSH BC
LD (BC),A
INC BC
LD A,#E5 ;PUSH HL
LD (BC),A
INC BC
LD A,#D9 ;EXX
LD (BC),A
INC BC
LD A,#08 ;EX AF,AF'
LD (BC),A
INC BC
LD A,#F5 ;PUSH AF
LD (BC),A
INC BC
LD A,#D5 ;PUSH DE
LD (BC),A
INC BC
LD A,#C5 ;PUSH BC
LD (BC),A
INC BC
LD A,#E5 ;PUSH HL
LD (BC),A
INC BC
LD HL,(COPYFRAME_HL)
LD DE,SCREEN_WIDTH/2
ADD HL,DE
LD (COPYFRAME_HL),HL
LD DE,(COPYFRAME_DE)
LD HL,SCREEN_WIDTH/2
ADD HL,DE
LD (COPYFRAME_DE),HL
POP AF
DEC A
JP NZ,COPYHALFROW
LD HL,(COPYFRAME_HL)
LD DE,SCREEN_WIDTH
AND A
SBC HL,DE
CALL DOWNHL
LD (COPYFRAME_HL),HL
LD HL,(COPYFRAME_DE)
LD DE,SCREEN_WIDTH
AND A
SBC HL,DE
LD DE,FRAMEBUFFERLINE
ADD HL,DE
LD (COPYFRAME_DE),HL
POP AF
DEC A
JP NZ,COPYROW
LD DE,SP_STORAGE
LD A,#ED ;LD SP,
LD (BC),A
INC BC
LD A,#7B ;(NN)
LD (BC),A
INC BC
LD A,E ;N
LD (BC),A
INC BC
LD A,D ;N
LD (BC),A
INC BC
LD A,#C9
LD (BC),A
INC BC
RET