📄 ahadisk.asm
字号:
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 + -