org $60000
load $60000

o:	MOVEM.L	D0-D7/A0-A6,-(SP)
	BSR	install
	BSR	install2
	MOVE.L	#$00058000,txt
	CLR.W	check
	nop
        nop
	MOVE.L	#calc,A0
	MOVE.W	#$007F,D0
ret:	MOVE.L	#$00E1FFFE,(A0)
	MOVE.B	D0,(A0)
	ADDQ.L	#4,A0
	MOVE.L	#$00E20000,(A0)+
	MOVE.L	#$00E60000,(A0)+
	MOVE.L	#$00EA0000,(A0)+
	MOVE.L	#$00EE0000,(A0)+
	MOVE.L	#$01020000,(A0)+
	MOVE.L	#$01820000,(A0)+
	MOVE.L	#$01840000,(A0)+
	MOVE.L	#$01860000,(A0)+
	MOVE.L	#$01880000,(A0)+
	MOVE.L	#$018A0000,(A0)+
	MOVE.L	#$018C0000,(A0)+
	MOVE.L	#$018E0000,(A0)+
	MOVE.L	#$01900000,(A0)+
	MOVE.L	#$01920000,(A0)+
	MOVE.L	#$01940000,(A0)+
	MOVE.L	#$01960000,(A0)+
	MOVE.L	#$01980000,(A0)+
	MOVE.L	#$019A0000,(A0)+
	MOVE.L	#$019C0000,(A0)+
	MOVE.L	#$019E0000,(A0)+
	ADDQ.W	#1,D0
	CMP.W	#$0147,D0
	BNE	ret
	MOVE.L	4,A6
	MOVE.L	#gfxlib,A1
	CLR.L	D0
	JSR	-$0198(A6)
	MOVE.L	D0,A1
	MOVE.L	$0026(A1),g2a
	JSR	-$019E(A6)
	MOVE.W	$00DFF01C,g2E
	MOVE.W	$00DFF002,g30
	MOVE.W	#$7FFF,$00DFF09A
	MOVE.W	#$7FFF,$00DFF09C
	BSR	init2
	MOVE.W	#$7FFF,$00DFF096
	MOVE.L	#cop,$00DFF080
	MOVE.W	g36,D1
	OR.W	#$8200,D1
	MOVE.W	D1,$00DFF096
	MOVE.L	$0000006C,g32
	MOVE.L	#irq,$0000006C
	MOVE.W	#$C020,$00DFF09A
	MOVE.W	#0,$00DFF088
	MOVE.W	#$4200,$00DFF100
	MOVE.W	#0,$00DFF102
	MOVE.W	#0,$00DFF104
	MOVE.W	#$0078,$00DFF108
	MOVE.W	#$0078,$00DFF10A
	MOVE.W	#$2878,$00DFF08E
	MOVE.W	#$40C8,$00DFF090
	MOVE.W	#$0038,$00DFF092
	MOVE.W	#$00D0,$00DFF094
loop:	BTST	#6,$00BFE001
	BNE	loop
	MOVE.W	#$7FFF,$00DFF09A
	MOVE.W	#$7FFF,$00DFF09C
	MOVE.W	#15,$00DFF096
	BSR	init2
	MOVE.W	#$7FFF,$00DFF09C
	MOVE.L	g2A,$00DFF080
	MOVE.L	g32,$0000006C
	MOVE.W	g30,D0
	OR.W	#$8000,D0
	MOVE.W	D0,$00DFF096
	MOVE.W	g2E,D0
	OR.W	#$C000,D0
	MOVE.W	D0,$00DFF09A
	MOVE.W	#0,$00DFF088
	MOVEM.L	(SP)+,D0-D7/A0-A6
	RTS	
 
init2:	TST.B	$00DFF005
	BEQ.L	init2
init3:	TST.B	$00DFF005
	BNE.L	init3
	RTS	

gfxlib:	DC.B	'graphics.library'

	DC.W	0
g26:    DC.W    $0000,$0000
g2a:    DC.W    $0000,$0000
g2e:    DC.W    $0000
g30:    DC.W    $0000
g32:    DC.L    0
	
g36:    DC.W    $81F0,$EF00

install:
        MOVE.L	#'NO T',$00058000
	MOVE.L	#'EXT ',$00058004
	MOVE.L	#'FOUN',$00058008
	MOVE.L	#$44202000,$0005800C
	MOVE.L	4,A6
	LEA	doslib,A1
	CLR.L	D0
	JSR	-$0198(A6)
	MOVE.L	D0,g26
	MOVE.L	g26,A6
	MOVE.L	#gE8,D1
	MOVE.L	#$000003ED,D2
	JSR	-$001E(A6)
	MOVE.L	D0,gD8
	BEQ.S	ret2
	MOVE.L	g26,A6
	MOVE.L	gD8,D1
	MOVE.L	#$00058000,D2
	MOVE.L	#$00008000,D3
	JSR	-$002A(A6)
	MOVE.L	D0,D6
	MOVE.L	g26,A6
	MOVE.L	gD8,D1
	JSR	-$0024(A6)
ret2:	MOVE.L	4,A6
	MOVE.L	g26,A1
	JSR	-$019E(A6)
	RTS	
	
gd8:	DC.W	$0000,$0000
doslib: DC.W    $646F,$732E,$6C69,$6272,$6172,$7900
ge8:	DC.W	$4B45,$4654,$4558,$5400

install2:
	MOVE.L	#tom,A0
	MOVE.L	#ras,A1
	CLR.W	D0
ret3:	MOVE.W	D0,D1
	LSL.W	#1,D1
	ADD.W	#$002B,D1
	MOVE.B	D1,(A0)
	MOVE.B	D1,D2
	ROR.B	#3,D2
	EOR.B	D0,D2
	ROR.B	#3,D2
	EOR.B	D0,D2
	ROR.B	#3,D2
	EOR.B	D0,D2
	MOVE.B	D2,1(A0)
	BTST	#8,D1
	BEQ	ro1
	BSET	#2,3(A0)
ro1:	ADDQ.W	#1,D1
	MOVE.B	D1,2(A0)
	BTST	#8,D1
	BEQ	ro2
	BSET	#1,3(A0)
ro2:	CLR.W	D2
	MOVE.B	(A1)+,D2
	MOVE.B	D2,D4
	MOVE.W	D2,D3
	AND.W	#1,D3
	LSR.W	#1,D2
	AND.W	#1,D2
	MOVE.W	D3,4(A0)
	MOVE.W	D2,6(A0)
	ADDQ.L	#8,A0
	ADDQ.W	#1,D0
	CMP.W	#$008C,D0
	BNE	ret3
	RTS	
	
install3:
	MOVE.L	#tom,$00DFF120
	MOVE.L	#ras,A0
	MOVE.L	#tom,A1
	ADDQ.L	#1,A1
	MOVE.W	#$0086,D0
plus:	MOVE.B	(A0)+,D1
	ADD.B	D1,(A1)
	ADDQ.L	#8,A1
	DBRA	D0,plus
	RTS	
	
tom:    blk.b   638
tom2:   blk.b   482

ras:	DC.W	$0102,$0302,$0302,$0102,$0302,$0102,$0201,$0203
	DC.W	$0302,$0102,$0102,$0302,$0302,$0102,$0103,$0201
	DC.W	$0201,$0302,$0301,$0102,$0302,$0302,$0103,$0103
	DC.W	$0201,$0203,$0203,$0101,$0203,$0201,$0102,$0203
	DC.W	$0201,$0203,$0302,$0102,$0102,$0301,$0102,$0302
	DC.W	$0302,$0102,$0302,$0102,$0201,$0203,$0302,$0102
	DC.W	$0102,$0302,$0302,$0102,$0103,$0201,$0201,$0302
	DC.W	$0301,$0102,$0302,$0302,$0103,$0103,$0201,$0203
	DC.W	$0203,$0101,$0203,$0201,$0102,$0203,$0201,$0203
	DC.W	$0302,$0102,$0102,$0301,$0102,$0302,$0302,$0102
	DC.W	$0302,$0102,$0201,$0203,$0302,$0102,$0102,$0302
	DC.W	$0302,$0102,$0103,$0201,$0201,$0302,$0301

irq:	MOVEM.L	D0-D7/A0-A6,-(SP)
	MOVE.L	#$00DFF124,A0
	MOVE.L	#gAE6,(A0)+
	MOVE.L	#gAE6,(A0)+
	MOVE.L	#gAE6,(A0)+
	MOVE.L	#gAE6,(A0)+
	MOVE.L	#gAE6,(A0)+
	MOVE.L	#gAE6,(A0)+
	MOVE.L	#gAE6,(A0)+
	BSR	install3
	MOVE.L	#0,A4
	MOVE.L	#plane,A0
	MOVE.L	#$00070000,D0  
	SWAP	D0
	MOVE.W	D0,(A0)
	ADDQ.L	#4,A0
	MOVE.W	D0,(A0)
	ADDQ.L	#4,A0
	MOVE.W	D0,(A0)
	ADDQ.L	#4,A0
	MOVE.W	D0,(A0)
	MOVE.W	#0,A5
	MOVE.L	#$09F00000,$00DFF040
	MOVE.L	#$FFFFFFFF,$00DFF044
	MOVE.L	#calc+$18,$00DFF054 
	MOVE.L	#calc+$C0,$00DFF050 
	MOVE.W	#$0018,$00DFF064
	MOVE.W	#$0018,$00DFF066
	MOVE.W	#$319E,$00DFF058
	MOVE.L	#$00074B00,A1    
	MOVE.L	#cop,A0
	ADD.L	#$0000009E,A0
	MOVE.W	#$00C7,D0
	MOVE.W	#$07FE,D1
	MOVE.W	gAEE,D2
	MOVE.W	gAF0,D3
	MOVE.W	gAF2,D4
	MOVE.W	gAF4,D5
	AND.W	D1,D2
	AND.W	D1,D3
	AND.W	D1,D4
	AND.W	D1,D5
	MOVE.W	gAF6,D6
	ADD.W	D6,gAEE
	MOVE.W	gAF8,D6
	ADD.W	D6,gAF0
	MOVE.W	gAFA,D6
	ADD.W	D6,gAF2
	MOVE.W	gAFC,D6
	ADD.W	D6,gAF4
	CLR.L	D7
	MOVE.L	#$00000042,A6
ret4:	MOVE.W	0(A1,D4.W),D6
	ADD.W	0(A1,D5.W),D6
	LSR.W	#5,D6
	MULU	#$A0,D6
	MOVE.W	D6,A4
	ADD.W	A5,A4
	MOVE.W	0(A1,D2.W),D6
	ADD.W	0(A1,D3.W),D6
	LSR.W	#6,D6
	MOVE.B	D6,D7
	NOT.B	D7
	LSR.W	#3,D6
	ADD.W	A4,D6
	MOVE.W	D6,(A0)
	ADDQ.L	#4,A0
	ADD.W	#$0028,D6
	MOVE.W	D6,(A0)
	ADDQ.L	#4,A0
	ADD.W	#$0028,D6
	MOVE.W	D6,(A0)
	ADDQ.L	#4,A0
	ADD.W	#$0028,D6
	MOVE.W	D6,(A0)
	ADDQ.L	#5,A0
	AND.B	#15,D7
	MOVE.B	D7,D6
	LSL.B	#4,D6
	OR.B	D6,D7
	MOVE.B	D7,(A0)+
	ADD.L	A6,A0
	ADD.W	#9,D2
	ADD.W	#$FFF3,D3
	ADD.W	#$FFF9,D4
	ADD.W	#6,D5
	AND.W	D1,D2
	AND.W	D1,D3
	AND.W	D1,D4
	AND.W	D1,D5
	DBRA	D0,ret4
;	BSR	$00C113A6
	MOVE.L	#calc2,A0 
	MOVE.L	#gB58,A2
ret5:	CLR.L	D0
	MOVE.L	txt,A1
	MOVE.B	(A1)+,D0
	TST.B	D0
	BNE.S	ro3
	MOVE.L	#$00058000,txt
	BRA.S	ret5
 
ro3:	CMP.B	#10,D0
	BNE.S	ro4
	MOVE.W	#$0033,D0
	BRA.S	ro5
 
ro4:	SUB.W	#$0020,D0
	MOVE.L	#gB0C,A1
	MOVE.B	0(A1,D0.L),D0
ro5:	MULU	#$60,D0
	ADD.L	#$00075300,D0
	ADD.L	gB06,D0
	MOVE.L	D0,A1
	MOVE.W	(A1)+,D0
	MOVE.W	(A1)+,D1
	MOVE.W	(A1),D2
	MOVE.W	#14,D3
ret6:	CLR.W	D4
	LSL.W	#1,D2
	ROXL.W	#1,D4
	LSL.W	#1,D1
	ROXL.W	#1,D4
	LSL.W	#1,D0
	ROXL.W	#1,D4
	LSL.W	#1,D4
	MOVE.W	0(A2,D4.W),(A0)
	MOVE.W	0(A2,D4.W),-$0054(A0)
	ADDQ.L	#4,A0
	DBRA	D3,ret6
	ADDQ.W	#1,check
	MOVE.W	check,D0
	AND.W	#1,D0
	BNE.S	ro7
	ADDQ.L	#6,gB06
	CMP.L	#$00000060,gB06
	BNE.S	ro7
	CLR.L	gB06
	ADDQ.L	#1,txt
        nop
	nop
ro7:	MOVEM.L	(SP)+,D0-D7/A0-A6
	MOVE.W	#$4020,$00DFF09C
	RTE	
	
gae6:	DC.W	$0000,$0000,$0000,$0000
gaee:   DC.W    $0000
gaf0:   DC.W    $0000
gaf2:   DC.W    $0000
gaf4:   DC.W    $0000
gaf6:	DC.W	$000C
gaf8:   DC.W    $FFF7
gafa:   DC.W    $000D
gafc:   DC.W    $FFF6,$0006,$0B68
txt:    DC.W    $0005,$8000
gb06:	DC.W	$0000,$0000
check:  DC.W    $0000
gb0c:   DC.W    $3324,$2A31,$2F30,$332D,$2B2C
	DC.W	$3333,$2726,$282E,$231A,$1B1C,$1D1E,$1F20,$2122
	DC.W	$2829,$3E3E,$3E25,$2D00,$0102,$0304,$0506,$0708
	DC.W	$090A,$0B0C,$0D0E,$0F10,$1112,$1314,$1516,$1718
	DC.W	$1933,$3333,$3333,$3233,$3435,$3637,$3839,$3A3B
	DC.W	$3D33
gb58:   DC.W    $0000,$0FFF,$0DDD,$0BBB,$0999,$0777,$0555
	DC.W	$02B7

cop:	DC.W	$0102,$0000,$0100,$4200,$0182,$0FCF,$0184,$0F9D
	DC.W	$0186,$0E6B,$0188,$0E37,$018A,$0C00,$018C,$0036
	DC.W	$018E,$0257,$0190,$0479,$0192,$06AA,$0194,$0ABB
	DC.W	$0196,$0FF0,$0198,$0EB0,$019A,$0D80,$019C,$0B60
	DC.W	$019E,$0A30,$01A2,$0888,$01A4,$0CCC,$01A6,$0FFF
	DC.W	$0104,$0000,$00E0,$0005,$00E2,$0000,$00E4,$0005
	DC.W	$00E6,$0028,$00E8,$0005,$00EA,$0050,$00EC,$0005
	DC.W	$00EE,$0078,$7F07,$FFFE,$0180,$0FF0,$0104,$0010
	DC.W	$7FD1,$FFFE,$00E0
plane:  DC.W    $0000,$00E4,$0000,$00E8,$0000
	DC.W	$00EC,$0000,$0180,$0000

calc:   blk.b 16742

calc2:  blk.b 58

dc.w $ffff,$fffe

data: = $70000

>extern "asmdisk2:binary/strict",data

