gvaddr	equ	$bff0
kcode	equ	$bff2
 
	org	$bf00
 
	ld	b, 5
loop:
	ld	de, 0
	call	getimg
	call	putimg
	ld	de, 0
	call	getimg
	call	getimg
	call	putimg
	djnz	loop
 
	ld	de, 0
	call	getimg
	call	putimg
	ret
 
getimg:
	ld	hl, (kcode)
	ld	a, l
	out	($e8), a
	ld	a, h
	out	($e9), a
	out	($ea), a
	in	a, ($e8)
	or	e
	ld	e, a
	in	a, ($e9)
	or	d
	ld	d, a
	out	($eb), a
	inc	hl
	ld	(kcode), hl
	ret
 
putimg:
	ld	hl, (gvaddr)
	di
	out	($5e), a
	ld	(hl), d
	inc	hl
	ld	(hl), e
	out	($5f), a
	ei
	ld	de, 79
	add	hl, de
	ld	(gvaddr), hl
	ret
 

100 CLEAR ,&HBF00:DEFINT A-Z:SCREEN 0,0:CLS 3:COLOR=(4,6):TX=15:GY=180
110 P=&HBF00:DEF USR=P
120 READ D$:IF D$<>"*" THEN POKE P,VAL("&h"+D$):P=P+1:GOTO 120
130 *LOOP:READ D$:IF D$="*" THEN END
140 KC=VAL("&h"+D$):GOSUB *PUTK:TX=TX+2:GOTO *LOOP
150 *PUTK:GV=&HC000+GY*80+TX:IF KC>=&H3000 GOTO 170
160 KK!=(KC AND &H60)*&H80+(KC AND &H700)*2+(KC AND &H1F)*&H10:GOTO 180
170 KK!=(KC AND &H60)*&H200+(KC AND &H1F00)*2+(KC AND &H1F)*&H10
180 IF KK!>=32768! THEN KK!=KK!-65536!
190 KC=KK!
200 P=VARPTR(GV):POKE &HBFF0,PEEK(P):POKE &HBFF1,PEEK(P+1)
210 P=VARPTR(KC):POKE &HBFF2,PEEK(P):POKE &HBFF3,PEEK(P+1)
220 A=USR(0):RETURN
230 DATA 06,05,11,00,00,CD,23,BF,CD,3D,BF,11,00,00,CD,23
240 DATA BF,CD,23,BF,CD,3D,BF,10,E9,11,00,00,CD,23,BF,CD
250 DATA 3D,BF,C9,2A,F2,BF,7D,D3,E8,7C,D3,E9,D3,EA,DB,E8
260 DATA B3,5F,DB,E9,B2,57,D3,EB,23,22,F2,BF,C9,2A,F0,BF
270 DATA F3,D3,5E,72,23,73,D3,5F,FB,11,4F,00,19,22,F0,BF
280 DATA C9,*
290 DATA 3A23,3273,244E,255D,2524,2573,2548,213E,255E,2573,244F,2122
300 DATA 252A,256C,306C,3F4D,2447,2464,246B,2123,*
 
最終更新:2020年02月29日 10:51
添付ファイル