extrn _textpic:byte
extrn _dis_partstart:far

code 	SEGMENT para public 'CODE'
	ASSUME cs:code
LOCALS
.386

include sin1024.inc ;_sin1024

PLANE	MACRO pl
	mov	dx,3c4h
	mov	ax,0002h+pl*100h
	out	dx,ax
	ENDM

resetmode13 PROC NEAR
	mov	ax,13
	int	10h
	mov	dx,3dah
	in	al,dx
	mov	dx,3c0h
	xor	al,al
	REPT 16
	out	dx,al
	out	dx,al
	inc	al
	ENDM
	mov	al,11h
	out	dx,al
	mov	al,255
	out	dx,al
	mov	al,32
	out	dx,al
	;clear pal
	mov	dx,3c8h
	xor	al,al
	out	dx,al
	inc	dx
	mov	cx,768
@@clp:	out	dx,al
	loop	@@clp
	ret
resetmode13 ENDP

outpal	PROC NEAR
	mov	dx,3c8h
	out	dx,al
	mov	ax,cs
	mov	ds,ax
	inc	dx
	rep	outsb
	ret
outpal	ENDP

waitb	PROC NEAR
	mov	bx,1
	int	0fch
	ret
waitb	ENDP

ALIGN 16
include stars.asm

start:	mov	bx,SEG endcode
	mov	ax,es
	sub	bx,ax
	add	bx,64
        mov     ah,4ah
 	int	21h
	
	call	_dis_partstart
	
	call	resetmode13

	call	init_stars
	
	call	do_stars
	call	deinit_stars
	
@@xit:	mov	ax,3
	int	10h
	mov	ax,4c00h
	int	21h
	
code	ENDS

.8086
stack	SEGMENT word stack 'STACK'
	db	1024 dup(0)
stack	ENDS

lastseg segment para public 'DATA' ;temporary stack when code starts
	ALIGN 16
public endcode
endcode	db	16 dup(0)
lastseg ends

	END start
	