;
;			'Mags.rex'	for FM-TOWNS
;
;		- MAKIchan Graphic loader is not 鮪だ！ -
;
;				programmed by MALOR
;

	.386p

HeaderSize	equ	32/4
Plane2	equ	0104h
Plane1	equ	010ch

CODE	segment dword public use32 'CODE'
	assume cs:CODE,ds:DATA

;void	start(void)

	public start
start	proc near

	call	save

	ret

start	endp

;int	inpb(int addr)

	public inpb
	db	'inpb',4
inpb	proc near
	xor	eax,eax
	mov	dx,[esp+4]
	in	al,dx
	ret
inpb	endp

;void	outpb(int addr,int dat)

	public outpb
	db	'outpb',5
outpb	proc near
	mov	dx,[esp+4]
	mov	al,[esp+8]
	out	dx,al
	ret
outpb	endp

;int	getpix(int seg,int ofs)

	public getpix
	db	'getpix',6
getpix	proc near

	mov	ax,ss:[esp+4]
	mov	fs,ax
	mov	edx,ss:[esp+8]
	movzx	eax,word ptr fs:[edx]

	ret

getpix	endp

CODE	ends

DATA	segment dword
	assume ds:DATA

	align	4
	;前方参照オフセットアドレステーブル
Mofs	dd	-(512*0+0),-(512*0+2),-(512*0+4),-(512*0+8)
	dd	-(512*1+0),-(512*1+2)
	dd	-(512*2+0),-(512*2+2),-(512*2+4)
	dd	-(512*4+0),-(512*4+2),-(512*4+4)
	dd	-(512*8+0),-(512*8+2),-(512*8+4)
	dd	-(512*16+0)

	;1ライン分のオフセット
Lineofs	dd	512

DATA	ends

	extrn	save:near
	public	Lineofs
	public	Mofs

	end	start
