	.286p
	ifndef	??version
?debug	macro
	endm
publicdll macro	name
	public	name
	endm
	endif
	?debug	V 300h
	?debug	S "SIOCOPY.CPP"
	?debug	C E9834EFF1C0B53494F434F50592E435050
	?debug	C E900186B171B433A5C424F524C414E44435C494E434C5544455C53+
	?debug	C 5444494F2E48
	?debug	C E900186B171B433A5C424F524C414E44435C494E434C5544455C5F+
	?debug	C 444546532E48
	?debug	C E900186B171B433A5C424F524C414E44435C494E434C5544455C5F+
	?debug	C 4E554C4C2E48
	?debug	C E900186B1719433A5C424F524C414E44435C494E434C5544455C44+
	?debug	C 4F532E48
	?debug	C E900186B1724433A5C424F524C414E44435C434C4153534C49425C+
	?debug	C 494E434C5544455C54494D45522E48
	?debug	C E900186B171B433A5C424F524C414E44435C494E434C5544455C43+
	?debug	C 4F4E494F2E48
	?debug	C E900186B171C433A5C424F524C414E44435C494E434C5544455C53+
	?debug	C 54444C49422E48
_TEXT	segment byte public 'CODE'
_TEXT	ends
DGROUP	group	_DATA,_BSS
	assume	cs:_TEXT,ds:DGROUP
_DATA	segment word public 'DATA'
d@	label	byte
d@w	label	word
_DATA	ends
_BSS	segment word public 'BSS'
b@	label	byte
b@w	label	word
_BSS	ends
_DATA	segment word public 'DATA'
_d810	label	byte
	db	40
	db	0
	db	0
	db	18
	db	0
	db	0
	db	0
	db	80
	db	1
	db	65
	db	0
	db	0
	db	252
_d1050	label	byte
	db	40
	db	0
	db	0
	db	26
	db	0
	db	4
	db	0
	db	80
	db	1
	db	65
	db	0
	db	0
	db	9
_xf551	label	byte
	db	40
	db	0
	db	0
	db	18
	db	0
	db	4
	db	1
	db	0
	db	1
	db	65
	db	0
	db	0
	db	130
_data	label	byte
	db	512 dup (0)
_data_valid	label	word
	db	2 dup (0)
_data_xmit	label	word
	db	2 dup (0)
_DATA	ends
_TEXT	segment byte public 'CODE'
	?debug	C E8010B53494F434F50592E435050834EFF1C
	?debug	L 93
	assume	cs:_TEXT
@calibrate$qd	proc	near
	?debug	B
	push	bp
	mov	bp,sp
	sub	sp,40
	push	si
	?debug	C E604667265710F0A040000
	?debug	B
	?debug	L 95
	fld	dword ptr DGROUP:s@
	fdiv	qword ptr [bp+4]
	fstp	qword ptr [bp-16]
	?debug	L 96
	fld	qword ptr DGROUP:s@+4
	fstp	qword ptr [bp-24]
	?debug	L 97
	fwait	
	mov	word ptr [bp-28],128
	?debug	L 98
	mov	word ptr DGROUP:_data_valid,128
	?debug	L 100
	mov	dx,97
	mov	al,1
	out	dx,al
	?debug	L 102
	mov	word ptr [bp-34],0
	jmp	@1@450
@1@58:
	?debug	L 104
	mov	word ptr [bp-30],0
	mov	word ptr [bp-32],0
	?debug	B
	?debug	L 105
	mov	word ptr [bp-40],0
	jmp	short @1@310
@1@114:
	?debug	L 107
	mov	dx,67
	mov	al,180
	out	dx,al
	?debug	L 108
	mov	 si,DGROUP:_data_valid
	?debug	L 109
	mov	dx,66
	mov	al,0
	out	dx,al
	?debug	L 110
	mov	dx,66
	mov	al,0
	out	dx,al
@1@198:
	?debug	L 114
 	dec	 si
	jne	short @1@198
	?debug	L 116
	mov	dx,67
	mov	al,128
	out	dx,al
	?debug	L 117
	mov	dx,66
	in	al,dx
	mov	ah,0
	mov	word ptr [bp-26],ax
	?debug	L 118
	mov	dx,66
	in	al,dx
	mov	ah,0
	shl	ax,8
	add	word ptr [bp-26],ax
	?debug	L 119
	mov	ax,word ptr [bp-26]
	neg	ax
	add	word ptr [bp-32],ax
	adc	word ptr [bp-30],0
	?debug	L 105
	inc	word ptr [bp-40]
@1@310:
	cmp	word ptr [bp-40],1000
	jl	short @1@114
	?debug	L 121
	mov	ax,word ptr [bp-30]
	mov	dx,word ptr [bp-32]
	mov	word ptr [bp-38],dx
	mov	word ptr [bp-36],ax
	fild	dword ptr [bp-38]
	fmul	qword ptr [bp-24]
	fdiv	dword ptr DGROUP:s@+12
	fstp	qword ptr [bp-8]
	?debug	L 122
	fld	qword ptr [bp-8]
	fcomp	qword ptr [bp-16]
	fstsw	ax
	sahf	
	jbe	short @1@394
	mov	ax,word ptr [bp-28]
	sub	word ptr DGROUP:_data_valid,ax
@1@394:
	?debug	L 123
	mov	ax,word ptr [bp-28]
	shr	ax,1
	mov	word ptr [bp-28],ax
	?debug	L 124
	mov	ax,word ptr [bp-28]
	or	word ptr DGROUP:_data_valid,ax
	?debug	C E601690402D8FF00
	?debug	E
	?debug	L 102
	inc	word ptr [bp-34]
@1@450:
	cmp	word ptr [bp-34],8
	jge	@@0
	jmp	@1@58
@@0:
	?debug	L 131
	mov	ax,word ptr DGROUP:_data_valid
	mov	word ptr [bp-38],ax
	mov	word ptr [bp-36],0
	fild	dword ptr [bp-38]
	fmul	qword ptr DGROUP:s@+16
	call	near ptr N_FTOL@
	mov	word ptr DGROUP:_data_valid,ax
	?debug	L 134
	push	word ptr DGROUP:_data_valid
	fld	qword ptr [bp-8]
	fsub	qword ptr [bp-16]
	fmul	dword ptr DGROUP:s@+64
	sub	sp,8
	fstp	qword ptr [bp-52]
	push	offset DGROUP:s@+24
	fwait	
	call	near ptr _printf
	add	sp,12
	?debug	L 135
	cmp	word ptr DGROUP:_data_valid,25
	jae	short @1@534
	?debug	L 137
	push	offset DGROUP:s@+68
	call	near ptr _puts
	add	sp,2
@1@534:
	?debug	L 138
	pop	si
	leave	
	ret	
	?debug	C E60273610402DEFF0001740602E0FF0003696E63+
	?debug	C 0A02E4FF000474656D700A02E6FF000C636C6F63+
	?debug	C 6B5F706572696F640F02E8FF0004726174650F02+
	?debug	C F0FF000374696D0F02F8FF0004667265710F0A04+
	?debug	C 0000
	?debug	E
	?debug	E
@calibrate$qd	endp
	?debug	L 174
	assume	cs:_TEXT
@get_bytes$qpucii	proc	near
	?debug	B
	push	bp
	mov	bp,sp
	push	si
	push	di
	?debug	C E318000200150804
	?debug	C E60774696D656F7574040A080000036C656E040A+
	?debug	C 0600000464617461180A040000
	?debug	B
	?debug	L 180
	cli				
	?debug	L 181
	mov		dx,37ah		
	?debug	L 182
	mov		di,[bp+4]		
	?debug	L 183
	mov		bx,[bp+6]		
	?debug	L 184
	mov		si,0		
	?debug	L 185
	mov		cx,[bp+8]      
@2@198:
	?debug	L 189
	dec		si		
	?debug	L 190
	jne	short @2@310
	?debug	L 191
	dec		cx		
	?debug	L 192
	je	short @2@450
@2@310:
	?debug	L 196
	in		al,dx		
	?debug	L 197
	test		al,8		
	?debug	L 198
	je	short @2@198
	?debug	L 199
	mov		cl,0		
	?debug	L 200
	mov		ch,9d		
@2@450:
	?debug	L 203
			mov		ax,DGROUP:_data_valid	
@2@478:
	?debug	L 206
	dec		ax		
	?debug	L 207
	jne	short @2@478
	?debug	L 208
	shr		cl,1		
	?debug	L 209
	in		al,dx		
	?debug	L 210
	shl		al,4		
	?debug	L 211
	and		al,80h		
	?debug	L 212
	or		cl,al		
	?debug	L 213
	mov		ax,DGROUP:_data_valid   
@2@702:
	?debug	L 217
	dec		ax		
	?debug	L 218
	jne	short @2@702
	?debug	L 219
	dec		ch		
	?debug	L 220
	jne	short @2@450
	?debug	L 221
	not		cl		
	?debug	L 222
	mov		ds:[di],cl	
	?debug	L 223
	inc		di		
	?debug	L 224
	mov		ax,DGROUP:_data_valid   
@2@926:
	?debug	L 228
	dec	 	ax		
	?debug	L 229
	jne	short @2@926
	?debug	L 230
	dec		bx		
	?debug	L 231
	mov		si,0		
	?debug	L 232
	mov		cx,[bp+8]	
	?debug	L 233
	jne	short @2@198
	?debug	L 234
	sti				
	?debug	L 237
	pop	di
	pop	si
	pop	bp
	ret	
	?debug	C E60464617461180A040000036C656E040A060000+
	?debug	C 0774696D656F7574040A080000
	?debug	E
	?debug	E
@get_bytes$qpucii	endp
	?debug	L 269
	assume	cs:_TEXT
@send_data$qpuci	proc	near
	?debug	B
	push	bp
	mov	bp,sp
	push	si
	push	di
	?debug	C E6036C656E040A0600000464617461180A040000
	?debug	B
	?debug	L 272
	cli				
	?debug	L 273
	mov		dx,37ah		
	?debug	L 274
	mov		di,[bp+4]		
	?debug	L 275
	mov		si,[bp+6]		
	?debug	L 276
	xor		bh,bh		
@3@170:
	?debug	L 280
	mov		bl,[di]		
	?debug	L 281
	not		bl		
	?debug	L 282
	stc				
	?debug	L 283
	rcl		bx,2		
	?debug	L 284
	mov		cx,10d		
@3@310:
	?debug	L 288
	mov		ax,DGROUP:_data_valid	
@3@338:
	?debug	L 292
	dec		ax		
	?debug	L 293
	jne	short @3@338
	?debug	L 294
	mov		al,bl		
	?debug	L 295
	and		al,2		
	?debug	L 296
	or		al,4		
	?debug	L 297
	out		dx,al		
	?debug	L 298
	shr		bx,1		
	?debug	L 299
	mov		ax,DGROUP:_data_xmit	
@3@562:
	?debug	L 303
	dec		ax		
	?debug	L 304
	jne	short @3@562
	?debug	L 305
	dec		cx		
	?debug	L 306
	jne	short @3@310
	?debug	L 307
	mov		ax,DGROUP:_data_valid	
@3@702:
	?debug	L 311
	dec		ax		
	?debug	L 312
	jne	short @3@702
	?debug	L 313
	inc		di		
	?debug	L 314
	dec		si		
	?debug	L 315
	jne	short @3@170
	?debug	L 316
	sti				
	?debug	L 319
	push	5
	push	2
	push	word ptr [bp+4]
	call	near ptr @get_bytes$qpucii
	add	sp,6
	?debug	L 321
	pop	di
	pop	si
	pop	bp
	ret	
	?debug	C E60464617461180A040000036C656E040A060000
	?debug	E
	?debug	E
@send_data$qpuci	endp
	?debug	L 351
	assume	cs:_TEXT
@send_frame$qpuc	proc	near
	?debug	B
	push	bp
	mov	bp,sp
	push	si
	push	di
	?debug	C E60464617461180A040000
	?debug	B
	?debug	L 354
	cli				
	?debug	L 355
	mov		dx,37ah		
	?debug	L 356
	mov		di,[bp+4]		
	?debug	L 357
	mov		si,5		
	?debug	L 358
	xor		bh,bh		
@4@170:
	?debug	L 362
	mov		bl,[di]		
	?debug	L 363
	not		bl		
	?debug	L 364
	stc				
	?debug	L 365
	rcl		bx,2		
	?debug	L 366
	mov		cx,10d		
@4@310:
	?debug	L 370
	mov		ax,DGROUP:_data_valid	
@4@338:
	?debug	L 374
	dec		ax		
	?debug	L 375
	jne	short @4@338
	?debug	L 376
	mov		al,bl		
	?debug	L 377
	and		al,2		
	?debug	L 378
	or		al,5		
	?debug	L 379
	out		dx,al		
	?debug	L 380
	shr		bx,1		
	?debug	L 381
	mov		ax,DGROUP:_data_xmit	
@4@562:
	?debug	L 385
	dec		ax		
	?debug	L 386
	jne	short @4@562
	?debug	L 387
	dec		cx		
	?debug	L 388
	jne	short @4@310
	?debug	L 389
	mov		ax,DGROUP:_data_valid	
@4@702:
	?debug	L 393
	dec		ax		
	?debug	L 394
	jne	short @4@702
	?debug	L 395
	inc		di		
	?debug	L 396
	dec		si		
	?debug	L 397
	jne	short @4@170
	?debug	L 398
	sti				
	?debug	L 401
	pop	di
	pop	si
	pop	bp
	ret	
	?debug	C E60464617461180A040000
	?debug	E
	?debug	E
@send_frame$qpuc	endp
	?debug	L 438
	assume	cs:_TEXT
@frame_getdata$qucucucucipuci	proc	near
	?debug	B
	push	bp
	mov	bp,sp
	sub	sp,4
	?debug	C E6036C656E040A1000000464617461180A0E0000+
	?debug	C 0774696D656F7574040A0C00000461757832080A+
	?debug	C 0A00000461757831080A08000007636F6D6D616E+
	?debug	C 64080A060000056472697665080A040000
	?debug	B
	?debug	L 441
	mov	word ptr [bp-2],0
	?debug	L 442
	mov	dx,890
	mov	al,4
	out	dx,al
	?debug	L 443
	mov	al,byte ptr [bp+4]
	add	al,48
	mov	bx,word ptr [bp+14]
	mov	byte ptr [bx],al
	?debug	L 444
	mov	bx,word ptr [bp+14]
	mov	al,byte ptr [bp+6]
	mov	byte ptr [bx+1],al
	?debug	L 445
	mov	bx,word ptr [bp+14]
	mov	al,byte ptr [bp+8]
	mov	byte ptr [bx+2],al
	?debug	L 446
	mov	bx,word ptr [bp+14]
	mov	al,byte ptr [bp+10]
	mov	byte ptr [bx+3],al
	?debug	L 447
	mov	word ptr [bp-4],0
	jmp	short @5@142
@5@58:
	?debug	L 449
	mov	bx,word ptr [bp+14]
	add	bx,word ptr [bp-4]
	mov	al,byte ptr [bx]
	mov	ah,0
	add	word ptr [bp-2],ax
	?debug	L 450
	cmp	word ptr [bp-2],255
	jle	short @5@114
	sub	word ptr [bp-2],255
@5@114:
	?debug	L 447
	inc	word ptr [bp-4]
@5@142:
	cmp	word ptr [bp-4],4
	jl	short @5@58
	?debug	L 452
	mov	bx,word ptr [bp+14]
	mov	al,byte ptr [bp-2]
	mov	byte ptr [bx+4],al
	?debug	L 455
	mov	dx,890
	mov	al,5
	out	dx,al
	?debug	L 456
	mov		ax,200
@5@226:
	?debug	L 458
	dec	 ax
	jne	short @5@226
	?debug	L 460
	push	word ptr [bp+14]
	call	near ptr @send_frame$qpuc
	add	sp,2
	?debug	L 461
	mov	 ax,100
@5@338:
	?debug	L 463
	dec	 ax
	jne	short @5@338
	?debug	L 465
	mov	dx,890
	mov	al,4
	out	dx,al
	?debug	L 466
	push	word ptr [bp+12]
	mov	ax,word ptr [bp+16]
	add	ax,2
	push	ax
	push	word ptr [bp+14]
	call	near ptr @get_bytes$qpucii
	add	sp,6
	?debug	L 470
	mov	bx,word ptr [bp+14]
	cmp	byte ptr [bx],65
	jne	short @5@450
	mov	ax,1
	jmp	short @5@478
@5@450:
	xor	ax,ax
@5@478:
	leave	
	ret	
	?debug	L 471
	leave	
	ret	
	?debug	C E601690402FCFF0005636865636B0402FEFF0005+
	?debug	C 6472697665080A04000007636F6D6D616E64080A+
	?debug	C 0600000461757831080A0800000461757832080A+
	?debug	C 0A00000774696D656F7574040A0C000004646174+
	?debug	C 61180A0E0000036C656E040A100000
	?debug	E
	?debug	E
@frame_getdata$qucucucucipuci	endp
	?debug	L 510
	assume	cs:_TEXT
@frame_senddata$qucucucucucpuct6i	proc	near
	?debug	B
	push	bp
	mov	bp,sp
	sub	sp,4
	?debug	C E6066C656E627566040A12000003627566180A10+
	?debug	C 00000464617461180A0E00000774696D656F7574+
	?debug	C 080A0C00000461757832080A0A00000461757831+
	?debug	C 080A08000007636F6D6D616E64080A0600000564+
	?debug	C 72697665080A040000
	?debug	B
	?debug	L 513
	mov	word ptr [bp-2],0
	?debug	L 514
	mov	dx,890
	mov	al,4
	out	dx,al
	?debug	L 515
	mov	al,byte ptr [bp+4]
	add	al,48
	mov	bx,word ptr [bp+14]
	mov	byte ptr [bx],al
	?debug	L 516
	mov	bx,word ptr [bp+14]
	mov	al,byte ptr [bp+6]
	mov	byte ptr [bx+1],al
	?debug	L 517
	mov	bx,word ptr [bp+14]
	mov	al,byte ptr [bp+8]
	mov	byte ptr [bx+2],al
	?debug	L 518
	mov	bx,word ptr [bp+14]
	mov	al,byte ptr [bp+10]
	mov	byte ptr [bx+3],al
	?debug	L 519
	mov	word ptr [bp-4],0
	jmp	short @6@142
@6@58:
	?debug	L 521
	mov	bx,word ptr [bp+14]
	add	bx,word ptr [bp-4]
	mov	al,byte ptr [bx]
	mov	ah,0
	add	word ptr [bp-2],ax
	?debug	L 522
	cmp	word ptr [bp-2],255
	jle	short @6@114
	sub	word ptr [bp-2],255
@6@114:
	?debug	L 519
	inc	word ptr [bp-4]
@6@142:
	cmp	word ptr [bp-4],4
	jl	short @6@58
	?debug	L 524
	mov	bx,word ptr [bp+14]
	mov	al,byte ptr [bp-2]
	mov	byte ptr [bx+4],al
	?debug	L 526
	mov	dx,890
	mov	al,5
	out	dx,al
	?debug	L 527
	mov		ax,200
@6@226:
	?debug	L 529
	dec	 ax
	jne	short @6@226
	?debug	L 531
	push	word ptr [bp+14]
	call	near ptr @send_frame$qpuc
	add	sp,2
	?debug	L 532
	mov	 ax,100
@6@338:
	?debug	L 534
	dec	 ax
	jne	short @6@338
	?debug	L 536
	mov	dx,890
	mov	al,4
	out	dx,al
	?debug	L 537
	mov	al,byte ptr [bp+12]
	mov	ah,0
	push	ax
	push	1
	push	word ptr [bp+14]
	call	near ptr @get_bytes$qpucii
	add	sp,6
	?debug	L 539
	push	word ptr [bp+18]
	push	word ptr [bp+16]
	call	near ptr @send_data$qpuci
	add	sp,4
	?debug	L 542
	mov	bx,word ptr [bp+14]
	cmp	byte ptr [bx],65
	jne	short @6@450
	mov	ax,1
	jmp	short @6@478
@6@450:
	xor	ax,ax
@6@478:
	leave	
	ret	
	?debug	L 543
	leave	
	ret	
	?debug	C E601690402FCFF0005636865636B0402FEFF0005+
	?debug	C 6472697665080A04000007636F6D6D616E64080A+
	?debug	C 0600000461757831080A0800000461757832080A+
	?debug	C 0A00000774696D656F7574080A0C000004646174+
	?debug	C 61180A0E000003627566180A100000066C656E62+
	?debug	C 7566040A120000
	?debug	E
	?debug	E
@frame_senddata$qucucucucucpuct6i	endp
	?debug	L 552
	assume	cs:_TEXT
_main	proc	near
	?debug	B
	push	bp
	mov	bp,sp
	sub	sp,28
	?debug	C E319000200151804
	?debug	C E60461726776190A0600000461726763040A0400+
	?debug	C 00
	?debug	B
	?debug	L 556
	cmp	word ptr [bp+4],2
	jge	short @7@86
	?debug	L 557
	push	offset DGROUP:s@+138
	call	near ptr _puts
	add	sp,2
	?debug	L 558
	push	offset DGROUP:s@+204
	call	near ptr _puts
	add	sp,2
	?debug	L 559
	push	offset DGROUP:s@+262
	call	near ptr _puts
	add	sp,2
	?debug	L 560
	push	offset DGROUP:s@+293
	call	near ptr _puts
	add	sp,2
	?debug	L 561
	push	offset DGROUP:s@+326
	call	near ptr _puts
	add	sp,2
	?debug	L 562
	push	offset DGROUP:s@+357
	call	near ptr _puts
	add	sp,2
	?debug	L 563
	push	0
	call	near ptr _exit
	add	sp,2
@7@86:
	?debug	L 575
	cmp	word ptr [bp+4],3
	jle	short @7@142
	mov	bx,word ptr [bp+6]
	push	word ptr [bx+6]
	call	near ptr __atold
	add	sp,2
	fstp	qword ptr [bp-10]
	fwait	
	jmp	short @7@170
@7@142:
	?debug	L 576
	fld	dword ptr DGROUP:s@+410
	fstp	qword ptr [bp-10]
	fwait	
@7@170:
	?debug	L 580
	fld	qword ptr [bp-10]
	sub	sp,8
	fstp	qword ptr [bp-36]
	push	offset DGROUP:s@+414
	fwait	
	call	near ptr _printf
	add	sp,10
	?debug	L 581
	fld	qword ptr [bp-10]
	sub	sp,8
	fstp	qword ptr [bp-36]
	fwait	
	call	near ptr @calibrate$qd
	add	sp,8
	?debug	L 583
	mov	ax,word ptr DGROUP:_data_valid
	mov	word ptr DGROUP:_data_xmit,ax
	?debug	L 584
	mov	dx,890
	mov	al,4
	out	dx,al
	?debug	L 586
	mov	word ptr [bp-12],0
	?debug	L 587
	mov	word ptr [bp-14],0
	?debug	L 588
	mov	ax,word ptr DGROUP:_data_valid
	mov	word ptr [bp-16],ax
	jmp	short @7@450
@7@198:
	?debug	L 592
	cmp	word ptr [bp-14],0
	jne	short @7@254
	mov	ax,word ptr [bp-16]
	sub	ax,word ptr [bp-12]
	mov	word ptr DGROUP:_data_valid,ax
	jmp	short @7@282
@7@254:
	?debug	L 593
	mov	ax,word ptr [bp-16]
	add	ax,word ptr [bp-12]
	mov	word ptr DGROUP:_data_valid,ax
@7@282:
	?debug	L 595
	mov	ax,word ptr DGROUP:_data_valid
	mov	word ptr DGROUP:_data_xmit,ax
	?debug	L 597
	inc	word ptr [bp-12]
	?debug	L 598
	push	word ptr DGROUP:_data_valid
	push	offset DGROUP:s@+458
	call	near ptr _printf
	add	sp,4
	?debug	L 599
	cmp	word ptr [bp-12],10
	jle	short @7@366
	cmp	word ptr [bp-14],0
	jne	short @7@366
	?debug	L 601
	mov	word ptr [bp-14],1
	?debug	L 602
	mov	word ptr [bp-12],0
@7@366:
	?debug	L 604
	cmp	word ptr [bp-12],10
	jle	short @7@450
	cmp	word ptr [bp-14],1
	jne	short @7@450
	?debug	L 606
	push	offset DGROUP:s@+475
	call	near ptr _puts
	add	sp,2
	?debug	L 607
	push	0
	call	near ptr _exit
	add	sp,2
@7@450:
	?debug	L 590
	push	5
	push	offset DGROUP:_data
	push	1
	push	0
	push	0
	push	83
	push	1
	call	near ptr @frame_getdata$qucucucucipuci
	add	sp,14
	or	ax,ax
	jne	@@1
	jmp	@7@198
@@1:
	?debug	L 612
	push	offset DGROUP:s@+549
	mov	bx,word ptr [bp+6]
	push	word ptr [bx+2]
	call	near ptr _fopen
	add	sp,4
	mov	word ptr [bp-18],ax
	?debug	L 615
	mov	word ptr [bp-20],720
	mov	word ptr [bp-22],128
	mov	word ptr [bp-24],82
	?debug	L 616
	push	offset DGROUP:s@+552
	call	near ptr _puts
	add	sp,2
	?debug	L 619
	cmp	word ptr [bp+4],2
	jg	@@2
	jmp	@7@1374
@@2:
	?debug	L 621
	mov	bx,word ptr [bp+6]
	inc	word ptr [bx+4]
	?debug	L 622
	mov	bx,word ptr [bp+6]
	mov	bx,word ptr [bx+4]
	mov	al,byte ptr [bx]
	mov	ah,0
	cmp	ax,100
	jne	@@3
	jmp	@7@982
@@3:
	jg	short @7@730
	cmp	ax,68
	jne	@@4
	jmp	@7@982
@@4:
	cmp	ax,69
	je	short @7@814
	cmp	ax,83
	jne	@@5
	jmp	@7@1318
@@5:
	jmp	@7@1346
@7@730:
	cmp	ax,101
	je	short @7@814
	cmp	ax,115
	jne	@@6
	jmp	@7@1318
@@6:
	jmp	@7@1346
@7@814:
	?debug	L 629
	push	13
	push	offset DGROUP:_d1050
	push	offset DGROUP:_data
	push	40
	push	0
	push	0
	push	79
	push	1
	call	near ptr @frame_senddata$qucucucucucpuct6i
	add	sp,16
	or	ax,ax
	jne	short @7@870
	?debug	L 633
	mov	word ptr [bp-24],36
	?debug	L 634
	mov	word ptr [bp-20],1040
	?debug	L 635
	jmp	@7@1374
@7@870:
	?debug	L 639
	push	129
	push	offset DGROUP:_data
	push	40
	push	0
	push	1
	push	82
	push	1
	call	near ptr @frame_getdata$qucucucucipuci
	add	sp,14
	?debug	L 640
	push	500
	call	near ptr _delay
	add	sp,2
	?debug	L 643
	push	13
	push	offset DGROUP:_data
	push	40
	push	0
	push	0
	push	78
	push	1
	call	near ptr @frame_getdata$qucucucucipuci
	add	sp,14
	?debug	L 645
	cmp	byte ptr DGROUP:_data+7,4
	je	short @7@926
	?debug	L 647
	push	offset DGROUP:s@+580
	call	near ptr _puts
	add	sp,2
	?debug	L 648
	mov	word ptr [bp-20],720
	?debug	L 649
	jmp	short @7@954
@7@926:
	?debug	L 650
	mov	word ptr [bp-20],1040
@7@954:
	?debug	L 651
	jmp	@7@1374
@7@982:
	?debug	L 659
	push	13
	push	offset DGROUP:_xf551
	push	offset DGROUP:_data
	push	40
	push	0
	push	0
	push	79
	push	1
	call	near ptr @frame_senddata$qucucucucucpuct6i
	add	sp,16
	or	ax,ax
	jne	short @7@1038
	?debug	L 660
	push	offset DGROUP:s@+610
	call	near ptr _puts
	add	sp,2
	push	0
	call	near ptr _exit
	add	sp,2
@7@1038:
	?debug	L 663
	push	129
	push	offset DGROUP:_data
	push	40
	push	0
	push	1
	push	82
	push	1
	call	near ptr @frame_getdata$qucucucucipuci
	add	sp,14
	?debug	L 664
	push	500
	call	near ptr _delay
	add	sp,2
	?debug	L 667
	push	13
	push	offset DGROUP:_data
	push	40
	push	0
	push	0
	push	78
	push	1
	call	near ptr @frame_getdata$qucucucucipuci
	add	sp,14
	?debug	L 672
	cmp	byte ptr DGROUP:_data+8,1
	jne	short @7@1094
	?debug	L 673
	mov	word ptr [bp-22],256
	jmp	short @7@1122
@7@1094:
	?debug	L 676
	push	offset DGROUP:s@+647
	call	near ptr _puts
	add	sp,2
	?debug	L 677
	mov	word ptr [bp-22],128
@7@1122:
	?debug	L 680
	cmp	byte ptr DGROUP:_data+6,1
	jne	short @7@1178
	?debug	L 681
	mov	word ptr [bp-20],1040
	jmp	short @7@1290
@7@1178:
	?debug	L 684
	push	offset DGROUP:s@+666
	call	near ptr _puts
	add	sp,2
	?debug	L 685
	cmp	byte ptr DGROUP:_data+7,0
	jne	short @7@1234
	mov	ax,720
	jmp	short @7@1262
@7@1234:
	mov	ax,1040
@7@1262:
	mov	word ptr [bp-20],ax
@7@1290:
	?debug	L 687
	jmp	short @7@1374
@7@1318:
	?debug	L 691
	mov	word ptr [bp-20],720
	?debug	L 692
	push	13
	push	offset DGROUP:_d810
	push	offset DGROUP:_data
	push	10
	push	0
	push	0
	push	79
	push	1
	call	near ptr @frame_senddata$qucucucucucpuct6i
	add	sp,16
	?debug	L 693
	jmp	short @7@1374
@7@1346:
	?debug	L 695
	push	offset DGROUP:s@+683
	call	near ptr _puts
	add	sp,2
	?debug	L 696
	push	0
	call	near ptr _exit
	add	sp,2
@7@1374:
	?debug	L 702
	mov	word ptr [bp-26],1
	jmp	@7@1738
@7@1402:
	?debug	L 704
	push	word ptr [bp-26]
	push	offset DGROUP:s@+740
	call	near ptr _printf
	add	sp,4
	?debug	L 705
	mov	ax,word ptr [bp-22]
	inc	ax
	push	ax
	push	offset DGROUP:_data
	push	2
	mov	ax,word ptr [bp-26]
	sar	ax,8
	push	ax
	mov	al,byte ptr [bp-26]
	and	al,255
	push	ax
	mov	al,byte ptr [bp-24]
	push	ax
	push	1
	call	near ptr @frame_getdata$qucucucucipuci
	add	sp,14
	or	ax,ax
	jne	short @7@1458
	?debug	L 706
	push	offset DGROUP:s@+761
	call	near ptr _puts
	add	sp,2
@7@1458:
	?debug	L 709
	mov	word ptr [bp-2],0
	?debug	B
	?debug	L 710
	mov	word ptr [bp-28],0
	jmp	short @7@1598
@7@1514:
	?debug	L 712
	mov	bx,word ptr [bp-28]
	mov	al,byte ptr DGROUP:_data[bx+2]
	mov	ah,0
	add	word ptr [bp-2],ax
	?debug	L 713
	cmp	word ptr [bp-2],255
	jbe	short @7@1570
	sub	word ptr [bp-2],255
@7@1570:
	?debug	L 710
	inc	word ptr [bp-28]
@7@1598:
	mov	ax,word ptr [bp-28]
	cmp	ax,word ptr [bp-22]
	jl	short @7@1514
	?debug	L 715
	mov	bx,word ptr [bp-22]
	mov	al,byte ptr DGROUP:_data[bx+2]
	mov	ah,0
	cmp	ax,word ptr [bp-2]
	je	short @7@1682
	?debug	L 716
	push	word ptr [bp-26]
	push	offset DGROUP:s@+777
	call	near ptr _printf
	add	sp,4
	?debug	L 717
	push	offset DGROUP:s@+807
	call	near ptr _puts
	add	sp,2
	?debug	L 718
	push	0
	call	near ptr _exit
	add	sp,2
@7@1682:
	?debug	L 721
	push	word ptr [bp-18]
	push	1
	push	word ptr [bp-22]
	push	offset DGROUP:_data+2
	call	near ptr _fwrite
	add	sp,8
	?debug	C E6016B0402E4FF00
	?debug	E
	?debug	L 702
	inc	word ptr [bp-26]
@7@1738:
	mov	ax,word ptr [bp-26]
	cmp	ax,word ptr [bp-20]
	jg	@@7
	jmp	@7@1402
@@7:
	?debug	L 723
	push	word ptr [bp-18]
	call	near ptr _fclose
	add	sp,2
	?debug	L 724
	leave	
	ret	
	?debug	C E31B0446494C4510001E01
	?debug	C E31A000200151B04
	?debug	C E604736563740402E6FF0004726561640402E8FF+
	?debug	C 00096E756D5F62797465730402EAFF00086E756D+
	?debug	C 5F736563740402ECFF0004666F75741A02EEFF00+
	?debug	C 0A646174615F64656C61790A02F0FF0004666C61+
	?debug	C 670402F2FF0006646964646C650402F4FF000773+
	?debug	C 696F726174650F02F6FF0005636865636B0A02FE+
	?debug	C FF000461726763040A0400000461726776190A06+
	?debug	C 0000
	?debug	E
	?debug	E
_main	endp
	?debug	C E9
	?debug	C FA00000000
_TEXT	ends
_DATA	segment word public 'DATA'
s@	label	byte
	db	0
	db	0
	db	0
	db	'?'
	db	139
	db	0
	db	'1'
	db	186
	db	'1'
	db	31
	db	172
	db	'>'
	db	0
	db	0
	db	'zD\'
	db	143
	db	194
	db	245
	db	'(\'
	db	239
	db	'?'
	db	10
	db	'count error = %lg nS  loop count = %d'
	db	10
	db	0
	db	'(knNThe cpu clock is probably too slow for this program to wo'
	db	'rk properly.'
	db	0
	db	'**This program copy and entire atari disk to an ibm image fil'
	db	'e.**'
	db	0
	db	'usage:siocopy out_filename < -s, -e -d, or -2> <sio rate>'
	db	0
	db	'-s'
	db	9
	db	'single sided single density'
	db	0
	db	'-e'
	db	9
	db	'single sided enhanced density'
	db	0
	db	'-d'
	db	9
	db	'double sided double density'
	db	0
	db	'If sio rate not given, 19200 bits per second is used'
	db	0
	db	0
	db	0
	db	150
	db	'F--- calibrating SIO data rate to %lg hz---'
	db	10
	db	0
	db	13
	db	'loop count = %d'
	db	0
	db	10
	db	'Disk drive not responding: be sure the drive is connected and'
	db	' turned on.'
	db	0
	db	'wb'
	db	0
	db	'reading atari disk drive #1'
	db	0
	db	'Not an enhanced density disk.'
	db	0
	db	'This disk drive is not configurable.'
	db	0
	db	'not double density'
	db	0
	db	'not double sided'
	db	0
	db	'Drive type must be one of the following: <-s, -e, or -d>'
	db	0
	db	'reading   sector %d'
	db	13
	db	0
	db	'sector not read'
	db	0
	db	'checksum error at sector %d.'
	db	10
	db	0
	db	'Bad disk, copy protected disk or wrong disk type'
	db	0
_DATA	ends
_TEXT	segment byte public 'CODE'
_TEXT	ends
	extrn	__setargv__:far
	public	_main
	public	@frame_senddata$qucucucucucpuct6i
	public	@frame_getdata$qucucucucipuci
	public	@send_frame$qpuc
	public	@send_data$qpuci
	public	@get_bytes$qpucii
	extrn	N_FTOL@:far
	public	@calibrate$qd
	public	_data_xmit
	public	_data_valid
	public	_data
	public	_xf551
	public	_d1050
	public	_d810
	extrn	__atold:near
	extrn	_exit:near
_atoi	equ	atoi
_abs	equ	abs
	extrn	@Timer@adjust:word
_pokeb	equ	pokeb
_poke	equ	poke
_peekb	equ	peekb
_peek	equ	peek
	extrn	_delay:near
	extrn	_puts:near
	extrn	_printf:near
	extrn	_fwrite:near
	extrn	_fopen:near
	extrn	_fclose:near
_s@	equ	s@
	?debug	C EA0509
	?debug	C E31C00000023040500
	?debug	C EB0B5F5F736574617267765F5F1C00
	?debug	C E31D00000023010000
	?debug	C EC055F6D61696E1D1800
	?debug	C E31E00000023040000
	?debug	C EC21406672616D655F73656E6464617461247175+
	?debug	C 6375637563756375637075637436691E1800
	?debug	C E31F00000023040000
	?debug	C EC1D406672616D655F6765746461746124717563+
	?debug	C 75637563756369707563691F1800
	?debug	C E32000000023010000
	?debug	C EC104073656E645F6672616D6524717075632018+
	?debug	C 00
	?debug	C E32100000023010000
	?debug	C EC104073656E645F646174612471707563692118+
	?debug	C 00
	?debug	C E32200000023010000
	?debug	C EC11406765745F62797465732471707563696922+
	?debug	C 1800
	?debug	C EB074E5F46544F4C401C00
	?debug	C E32300000023010000
	?debug	C EC0D4063616C696272617465247164231800
	?debug	C EC0A5F646174615F786D69740A0000
	?debug	C EC0B5F646174615F76616C69640A0000
	?debug	C E3240000021A08
	?debug	C EC055F64617461240000
	?debug	C E325000D001A08
	?debug	C EC065F7866353531250000
	?debug	C E326000D001A08
	?debug	C EC065F6431303530260000
	?debug	C E327000D001A08
	?debug	C EC055F64383130270000
	?debug	C E32809445256434F4E4649470D001E0B
	?debug	C E32900000023100000
	?debug	C EB075F5F61746F6C642900
	?debug	C E32A00000023010000
	?debug	C E32B00000023040000
	?debug	C E32C00000023010000
	?debug	C EB055F657869742C00
	?debug	C E32D00000023040000
	?debug	C E32E00000023040000
	?debug	C E32F09746578745F696E666F0B001E16
	?debug	C E3300554696D657210002E01
	?debug	C ED00010000220000
	?debug	C E331000200153004
	?debug	C E3320000002D31000130000F4054696D65724024+
	?debug	C 62637472247176
	?debug	C E3340000002D01000130000F4054696D65724073+
	?debug	C 74617274247176
	?debug	C E3360000002D01000130000E4054696D65724073+
	?debug	C 746F70247176
	?debug	C E3380000002D01000130000F4054696D65724072+
	?debug	C 65736574247176
	?debug	C E33A0000002D0400093000
	?debug	C E33C0000002D0F00093000
	?debug	C E33E0000002D0F00093000
	?debug	C E3400000002D0A00013000134054696D65724063+
	?debug	C 616C696272617465247176
	?debug	C E3420B4054696D65724054494D4506002E02
	?debug	C ED00020000300100
	?debug	C E34300000023010000
	?debug	C E34400000023010000
	?debug	C E34500000023080000
	?debug	C E34600000023040000
	?debug	C E34700000023010000
	?debug	C EB065F64656C61794700
	?debug	C E3480666696E645F742B001E33
	?debug	C E3490015001A08
	?debug	C E34A000D001A08
	?debug	C E34B056666626C6B2B001E3A
	?debug	C E34C0015001A08
	?debug	C E34D000D001A08
	?debug	C E34E075245475041434B14001E41
	?debug	C E34F05535245475308001E4C
	?debug	C E350045245475310001F51
	?debug	C E35108574F52445245475310001E54
	?debug	C E35208425954455245475308001E5D
	?debug	C E35309646F73646174655F7405001E66
	?debug	C E354046461746504001E6B
	?debug	C E35509646F7374696D655F7404001E6F
	?debug	C E3560474696D6504001E74
	?debug	C E3570664657668647212001E79
	?debug	C E3580008001A08
	?debug	C E35907666174696E666F06001E7F
	?debug	C E35A0A6469736B667265655F7408001E8084
	?debug	C E35B05646672656508001E8089
	?debug	C E35C08444F534552524F5205001E808E
	?debug	C E35D07434F554E54525922001E8093
	?debug	C E35E0005001A08
	?debug	C E35F0002001A08
	?debug	C E3600002001A08
	?debug	C E3610002001A08
	?debug	C E3620002001A08
	?debug	C E3630002001A08
	?debug	C E364000A001A08
	?debug	C E36504786663622C001E80A0
	?debug	C E3660005001A08
	?debug	C E3670366636225001E80A5
	?debug	C E3680008001A08
	?debug	C E3690003001A08
	?debug	C E36A000A001A08
	?debug	C E36B00000023040000
	?debug	C EB055F707574736B00
	?debug	C E36C00000023040001
	?debug	C EB075F7072696E74666C00
	?debug	C E36D000000230A0000
	?debug	C EB075F6677726974656D00
	?debug	C E36E000000231A0000
	?debug	C EB065F666F70656E6E00
	?debug	C E36F00000023040000
	?debug	C EB075F66636C6F73656F00
	?debug	C E60777636861725F740806000446494C451B0600+
	?debug	C 0666706F735F740606000673697A655F740A0600+
	?debug	C 09445256434F4E46494728070009746578745F69+
	?debug	C 6E666F2F07000554696D65723007000666696E64+
	?debug	C 5F74480700056666626C6B4B0700075245475041+
	?debug	C 434B4E07000553524547534F0700045245475350+
	?debug	C 070008425954455245475352070008574F524452+
	?debug	C 45475351070009646F73646174655F7453070004+
	?debug	C 6461746554070009646F7374696D655F74550700+
	?debug	C 0474696D65560700066465766864725707000766+
	?debug	C 6174696E666F5907000A6469736B667265655F74+
	?debug	C 5A07000564667265655B070008444F534552524F+
	?debug	C 525C070007434F554E5452595D07000478666362+
	?debug	C 65070003666362670700
	?debug	F @randomize$qv 42 24 0
	?debug	F @random$qi 43 24 0
	?debug	F atoi 45 24 0
	?debug	F abs 46 24 0
	?debug	F pokeb 67 24 0
	?debug	F poke 68 24 0
	?debug	F peekb 69 24 0
	?debug	F peek 70 24 0
	?debug	C E200056C6576656C040005666C6167730A000266+
	?debug	C 64080004686F6C640800056273697A6504000662+
	?debug	C 756666657218000463757270180006697374656D+
	?debug	C 700A0005746F6B656E04C010000000
	?debug	C E200064452565452430800064452565354500400+
	?debug	C 0644525653454308000644525653494408000644+
	?debug	C 525644454E080006445256425954040006445256+
	?debug	C 53454C0800064452565345520800064452564D53+
	?debug	C 4304000643484B53554D08C00D000000
	?debug	C E2000777696E6C65667408000677696E746F7008+
	?debug	C 000877696E726967687408000977696E626F7474+
	?debug	C 6F6D0800096174747269627574650800086E6F72+
	?debug	C 6D61747472080008637572726D6F646508000C73+
	?debug	C 637265656E68656967687408000B73637265656E+
	?debug	C 7769647468080004637572780800046375727908+
	?debug	C C00B000000
	?debug	C E24A0F4054696D65724024626374722471763248+
	?debug	C 0F4054696D657240737461727424717634480E40+
	?debug	C 54696D65724073746F7024717636480F4054696D+
	?debug	C 65724072657365742471763848104054696D6572+
	?debug	C 407374617475732471763A480E4054696D657240+
	?debug	C 74696D652471763C48144054696D657240726573+
	?debug	C 6F6C7574696F6E2471763E600D4054696D657240+
	?debug	C 61646A7573740A48134054696D65724063616C69+
	?debug	C 627261746524717640000772756E6E696E670470+
	?debug	C 0454494D45420009737461727454696D65420005+
	?debug	C 74696D655F0FC010000000
	?debug	C E20008646F73436F756E740C000A74696D657243+
	?debug	C 6F756E740AC006000000
	?debug	C E200087265736572766564490006617474726962+
	?debug	C 08000777725F74696D650A000777725F64617465+
	?debug	C 0A000473697A650600046E616D654AC02B000000
	?debug	C E2000B66665F72657365727665644C000966665F+
	?debug	C 61747472696208000866665F6674696D650A0008+
	?debug	C 66665F66646174650A000866665F6673697A6506+
	?debug	C 000766665F6E616D654DC02B000000
	?debug	C E20004725F61780A0004725F62780A0004725F63+
	?debug	C 780A0004725F64780A0004725F62700A0004725F+
	?debug	C 73690A0004725F64690A0004725F64730A000472+
	?debug	C 5F65730A0007725F666C6167730AC014000000
	?debug	C E2000265730A000263730A000273730A00026473+
	?debug	C 0AC008000000
	?debug	C E20001785100016852C010000000
	?debug	C E2000261780A000262780A000263780A00026478+
	?debug	C 0A000273690A000264690A000563666C61670A00+
	?debug	C 05666C6167730AC010000000
	?debug	C E20002616C0800026168080002626C0800026268+
	?debug	C 080002636C0800026368080002646C0800026468+
	?debug	C 08C008000000
	?debug	C E200036461790800056D6F6E7468080004796561+
	?debug	C 720A00096461796F667765656B08C005000000
	?debug	C E2000764615F7965617204000664615F64617908+
	?debug	C 000664615F6D6F6E08C004000000
	?debug	C E20004686F75720800066D696E75746508000673+
	?debug	C 65636F6E64080007687365636F6E6408C0040000+
	?debug	C 00
	?debug	C E2000674695F6D696E08000774695F686F757208+
	?debug	C 000774695F68756E6408000674695F73656308C0+
	?debug	C 04000000
	?debug	C E2000764685F6E65787406000764685F61747472+
	?debug	C 04000864685F73747261740A000864685F696E74+
	?debug	C 65720A000764685F6E616D6558C012000000
	?debug	C E2000866695F73636C757308000866695F666174+
	?debug	C 696408000866695F6E636C75730A000866695F62+
	?debug	C 7973656304C006000000
	?debug	C E2000E746F74616C5F636C7573746572730A000E+
	?debug	C 617661696C5F636C7573746572730A0013736563+
	?debug	C 746F72735F7065725F636C75737465720A001062+
	?debug	C 797465735F7065725F736563746F720AC0080000+
	?debug	C 00
	?debug	C E2000864665F617661696C0A000864665F746F74+
	?debug	C 616C0A000764665F627365630A000864665F7363+
	?debug	C 6C75730AC008000000
	?debug	C E2000B64655F6578746572726F7204000864655F+
	?debug	C 636C61737308000964655F616374696F6E080008+
	?debug	C 64655F6C6F63757308C005000000
	?debug	C E20007636F5F64617465040007636F5F63757272+
	?debug	C 5E0008636F5F74687365705F0008636F5F646573+
	?debug	C 6570600008636F5F6474736570610008636F5F74+
	?debug	C 6D73657062000C636F5F637572727374796C6508+
	?debug	C 0009636F5F646967697473080007636F5F74696D+
	?debug	C 65080007636F5F63617365060008636F5F646173+
	?debug	C 6570630007636F5F66696C6C64C022000000
	?debug	C E20009786663625F666C6167080009786663625F+
	?debug	C 72657376660009786663625F6174747208000878+
	?debug	C 6663625F66636267C02C000000
	?debug	C E200096663625F64726976650800086663625F6E+
	?debug	C 616D656800076663625F65787469000A6663625F+
	?debug	C 637572626C6B04000B6663625F72656373697A65+
	?debug	C 04000B6663625F66696C73697A65060008666362+
	?debug	C 5F646174650400086663625F726573766A000A66+
	?debug	C 63625F63757272656308000A6663625F72616E64+
	?debug	C 6F6D06C025000000
	end
