          80 fa 80       cmp       dl,ib_80
          fb             sti       
          fc             cld       
          72 55          jb        bs_a28b
          0a e4          or        ah,ah
          75 04          jnz       bs_a23e
          cd 40          int       it_40
          32 e4          xor       ah,ah     
						;1e flags
						;1c cs high
						;1a cs low
a23e:     50             push      ax        ;18
          51             push      cx        ;16
          52             push      dx        ;14
          53             push      bx        ;12
          56             push      si        ;10
          57             push      di        ;e
          1e             push      ds        ;c
          06             push      es        ;a
          83 ec 08       sub       sp,+is_8  ;2,4,6,8
          55             push      bp        ;0
          8b ec          mov       bp,sp
          6a 40          push      ib_40
          1f             pop       ds
          e8 3b dc       call      bl_7e8d
          50             push      ax
          8a c4          mov       al,ah
          98             cbw       
          8b f8          mov       di,ax
          3c 19          cmp       al,ib_19
          58             pop       ax
          77 24          ja        bs_a281
          d1 e7          shl       di,1
          2e ff 95 90 a2 call      word ptr cs:[di+ow_a290]
a264:     89 46 18       mov       [PARM_AX],ax
          b8 01 02       mov       ax,iw_201
          72 05          jb        bs_a271
          80 66 1e fe    and       byte ptr [PARM_FLAGS],ib_fe
          48             dec       ax
a271:     09 46 1e       or        [PARM_FLAGS],ax
          5d             pop       bp
          83 c4 08       add       sp,+is_8
          07             pop       es
          1f             pop       ds
          5f             pop       di
          5e             pop       si
          5b             pop       bx
          5a             pop       dx
          59             pop       cx
          58             pop       ax
          cf             iret      
a281:     b8 00 01       mov       ax,iw_100
          88 26 74 00    mov       [ad_74],ah
          f9             stc       
          eb d9          jmp       bs_a264
a28b:     cd 40          int       it_40
          ca 02 00       retf      rt_2

          cd a2          int       it_a2
          42             inc       dx
          a3 4d a3       mov       [ad_a34d],ax
          5d             pop       bp
          a3 6d a3       mov       [ad_a36d],ax
          8e a3 c4 a2    mov       fs,[bp+di+ow_a2c4]
          c4 a2 da a2    les       sp,[bp+si+ow_a2da]
          5f             pop       di
          a4             movsb     
          9a a4 a9 a4 93 call      sg_93a4:ba_a9a4
          a5             movs      
          d4             db        d4
          a2 c4 a2       mov       [ad_a2c4],al
          c4 a2 f2 a5    les       sp,[bp+si+ow_a5f2]
          20 a6 c4 a2    and       [bp+ow_a2c4],ah
          c4 a2 4a a6    les       sp,[bp+si+ow_a64a]
          df a2 c4 a2    fbld      tbyte ptr [bp+si+ow_a2c4]
          c4 a2 c4 a2    les       sp,[bp+si+ow_a2c4]
          9a a6 

DriveDiagnostic:
ControllerRamDiagnostic:
WriteSectorBuffer:
ReadSectorBuffer:
FormatMultipleCylinders:
FormatDiskTrackWithBadSectors:
          b8 00 01       mov       ax,iw_100
          88 26 74 00    mov       [ad_74],ah
          f9             stc       
          c3             ret       

DiskControllerReset:
          80 fa 81       cmp       dl,ib_81
          77 07          ja        bs_a2d9
a2d2:     eb 15          jmp       bs_a2e9
AlternateDiskReset
          e8 12 04       call      bl_a6e9
          73 f9          jae       bs_a2d2
a2d9:     c3             ret
ReadDiskDriveParameters:       
          e8 3c 01       call      bl_a419
          eb 03          jmp       bs_a2e2
ReadDiskDriveSize:
          e8 8f 03       call      bl_a671
a2e2:     89 56 14       mov       [PARM_DX],dx
          89 4e 16       mov       [PARM_CX],cx
          c3             ret       
a2e9:     c6 06 8e 00 00 mov       byte ptr [ad_8e],ib_0
          ba f6 03       mov       dx,iw_3f6
          b0 04          mov       al,ib_4
          ee             out       dx,al
          b9 24 00       mov       cx,iw_24
          e8 6e 4d       call      bl_f068
          b0 00          mov       al,ib_0
          ee             out       dx,al
          e8 4c 04       call      bl_a74c
          72 3f          jb        bs_a341
          ba f1 01       mov       dx,PO_ERROR
          ec             in        al,dx
          88 26 8d 00    mov       [ad_8d],ah
          3c 01          cmp       al,ib_1
          74 05          jz        bs_a313
          b4 05          mov       ah,ib_5
          f9             stc       
          eb 2a          jmp       bs_a33d
a313:     b2 80          mov       dl,ib_80
          bf 22 00       mov       di,iw_22
          e8 05 03       call      bl_a620
          80 3e 75 00 02 cmp       byte ptr [ad_75],ib_2
          72 05          jb        bs_a327
          b2 81          mov       dl,ib_81
          e8 f9 02       call      bl_a620
a327:     b2 80          mov       dl,ib_80
          bf 12 00       mov       di,iw_12
          e8 30 01       call      bl_a45f
          80 3e 75 00 02 cmp       byte ptr [ad_75],ib_2
          72 05          jb        bs_a33b
          b2 81          mov       dl,ib_81
          e8 24 01       call      bl_a45f
a33b:     32 e4          xor       ah,ah
a33d:     88 26 74 00    mov       [ad_74],ah
a341:     c3             ret       
ReadDiskStatus:
          a0 74 00       mov       al,[ad_74]
          b4 00          mov       ah,ib_0
          88 26 74 00    mov       [ad_74],ah
          f8             clc       
          c3    
         ret       
ReadDiskSectors:
          c7 46 18 00 02 mov       word ptr [PARM_AX],iw_200
          e8 36 05       call      bl_a88b
          72 05          jb        bs_a35c
          b4 20          mov       ah,ib_20
          e9 5c 01       jmp       bl_a4b8
a35c:     c3             ret       
WriteDiskSectors:
          c7 46 18 00 02 mov       word ptr [PARM_AX],iw_200
          e8 26 05       call      bl_a88b
          72 05          jb        bs_a36c
          b4 30          mov       ah,ib_30
          e9 b9 01       jmp       bl_a525
a36c:     c3             ret       
VerifyDiskSectors:
          e8 79 03       call      bl_a6e9
          72 1b          jb        bs_a38d
          e8 ff 03       call      bl_a774
          72 16          jb        bs_a38d
          e8 3d 05       call      bl_a8b7
          e8 5c 05       call      bl_a8d9
          e8 c0 03       call      bl_a740
          b0 40          mov       al,ib_40
          e8 d8 04       call      bl_a85d
          e8 2b 04       call      bl_a7b3
          72 03          jb        bs_a38d
          e8 6e 04       call      bl_a7fb
a38d:     c3             ret  
FormatDiskTrack:     
          e8 58 03       call      bl_a6e9
          72 05          jb        bs_a398
          e8 de 03       call      bl_a774
          73 03          jae       bs_a39b
a398:     eb 7e          jmp       bs_a418
          90             nop       
a39b:     8c c7          mov       di,es
          8b f3          mov       si,bx
          e8 26 03       call      bl_a6c8
          e8 12 05       call      bl_a8b7
          e8 98 03       call      bl_a740
          26 8a 47 0e    mov       al,es:[bx+os_e]
          88 46 03       mov       [bp+os_3],al
          ba f2 01       mov       dx,PO_SECTORCOUNT
          ee             out       dx,al
          eb 00          jmp       bs_a3b5
a3b5:     eb 00          jmp       bs_a3b7
a3b7:     8a 46 05       mov       al,[bp+os_5]
          24 3f          and       al,ib_3f
          ba f3 01       mov       dx,PO_SECTORNUM
          ee             out       dx,al
          eb 00          jmp       bs_a3c2
a3c2:     eb 00          jmp       bs_a3c4
a3c4:     8a 46 07       mov       al,[bp+os_7]
          ba f6 01       mov       dx,PO_DRIV&HEAD
          ee             out       dx,al
          eb 00          jmp       bs_a3cd
a3cd:     eb 00          jmp       bs_a3cf
a3cf:     8a c5          mov       al,ch
          88 46 05       mov       [bp+os_5],al
          ba f4 01       mov       dx,PO_CYLINDERLOW
          ee             out       dx,al
          eb 00          jmp       bs_a3da
a3da:     eb 00          jmp       bs_a3dc
a3dc:     8a c1          mov       al,cl
          c0 e8 06       shr       al,ib_6
          8a d0          mov       dl,al
          8a 46 15       mov       al,[bp+os_15]
          c0 e8 04       shr       al,ib_4
          24 0c          and       al,ib_c
          0a c2          or        al,dl
          88 46 06       mov       [bp+os_6],al
          ba f5 01       mov       dx,PO_CYLINDERHIGH
          ee             out       dx,al
          b0 50          mov       al,ib_50
          e8 64 04       call      bl_a85d
          e8 de 03       call      bl_a7da
          72 1a          jb        bs_a418
          8c d8          mov       ax,ds
          97             xchg      ax,di
          8e d8          mov       ds,ax
          b9 00 01       mov       cx,iw_100
          ba f0 01       mov       dx,PO_DATA
          fa             cli       
          fc             cld       
          f3 6f          repz outs 
          fb             sti       
          8e df          mov       ds,di
          e8 a0 03       call      bl_a7b3
          72 03          jb        bs_a418
          e8 e3 03       call      bl_a7fb
a418:     c3             ret       
a419:     e8 ac 02       call      bl_a6c8
          73 09          jae       bs_a427
          b4 07          mov       ah,ib_7
          33 c9          xor       cx,cx
          33 d2          xor       dx,dx
          f9             stc       
          eb 33          jmp       bs_a45a
a427:     26 8a 77 02    mov       dh,es:[bx+os_2]
          fe ce          dec       dh
          26 8b 07       mov       ax,es:[bx]
          2d 02 00       sub       ax,iw_2
          3d ff 03       cmp       ax,iw_3ff
          76 03          jbe       bs_a43b
          b8 ff 03       mov       ax,iw_3ff
a43b:     8a d4          mov       dl,ah
          8a e8          mov       ch,al
          c0 e4 06       shl       ah,ib_6
          8a cc          mov       cl,ah
          8a e2          mov       ah,dl
          c0 e4 04       shl       ah,ib_4
          80 e4 c0       and       ah,ib_c0
          0a f4          or        dh,ah
          26 8a 47 0e    mov       al,es:[bx+os_e]
          0a c8          or        cl,al
          8a 16 75 00    mov       dl,[ad_75]
          b4 00          mov       ah,ib_0
a45a:     88 26 74 00    mov       [ad_74],ah
          c3             ret       
InitializeDriveParameters:
a45f:     e8 87 02       call      bl_a6e9
          72 35          jb        bs_a499
          e8 61 02       call      bl_a6c8
          72 30          jb        bs_a499
          e8 08 03       call      bl_a774
          72 2b          jb        bs_a499
          e8 46 04       call      bl_a8b7
          26 8a 47 0e    mov       al,es:[bx+os_e]
          8a e2          mov       ah,dl
          ba f2 01       mov       dx,PO_SECTORCOUNT
          88 46 03       mov       [bp+os_3],al
          ee             out       dx,al
          eb 00          jmp       bs_a480
a480:     eb 00          jmp       bs_a482
a482:     ba f6 01       mov       dx,PO_DRIV&HEAD
          8a 46 07       mov       al,[bp+os_7]
          ee             out       dx,al
          b0 91          mov       al,ib_91
          e8 b2 02       call      bl_a740
          e8 cc 03       call      bl_a85d
          e8 1f 03       call      bl_a7b3
          72 03          jb        bs_a499
          e8 62 03       call      bl_a7fb
a499:     c3             ret       
ReadDiskSectorsWithECC:
          c7 46 18 04 02 mov       word ptr [PARM_AX],iw_204
          e8 e9 03       call      bl_a88b
          72 04          jb        bs_a4a8
          b4 22          mov       ah,ib_22
          eb 10          jmp       bs_a4b8
a4a8:     c3             ret       
WriteDiskSectorsWithECC:
          c7 46 18 04 02 mov       word ptr [PARM_AX],iw_204
          e8 da 03       call      bl_a88b
          72 04          jb        bs_a4b7
          b4 32          mov       ah,ib_32
          eb 6e          jmp       bs_a525
a4b7:     c3             ret       
a4b8:     e8 2e 02       call      bl_a6e9
          72 67          jb        bs_a524
          e8 b4 02       call      bl_a774
          72 62          jb        bs_a524
          8b fb          mov       di,bx
          8c c6          mov       si,es
          e8 ee 03       call      bl_a8b7
          f6 06 76 00 c0 test      byte ptr [ad_76],ib_c0
          74 02          jz        bs_a4d2
          fe c4          inc       ah
a4d2:     e8 04 04       call      bl_a8d9
          e8 68 02       call      bl_a740
          8a c4          mov       al,ah
          e8 80 03       call      bl_a85d
a4dd:     e8 d3 02       call      bl_a7b3
          72 42          jb        bs_a524
          e8 16 03       call      bl_a7fb
          73 07          jae       bs_a4ee
          80 3e 74 00 11 cmp       byte ptr [ad_74],ib_11
          75 2d          jnz       bs_a51b
a4ee:     8e c6          mov       es,si
          b9 00 01       mov       cx,iw_100
          ba f0 01       mov       dx,PO_DATA
          fa             cli       
          fc             cld       
          f3 6d          repz ins  
          fb             sti       
          f6 46 08 02    test      byte ptr [bp+os_8],ib_2
          74 15          jz        bs_a516
          e8 d6 02       call      bl_a7da
          72 1e          jb        bs_a524
          b9 04 00       mov       cx,iw_4
a509:     ec             in        al,dx
          26 88 05       mov       es:[di],al
          47             inc       di
          eb 00          jmp       bs_a510
a510:     eb 00          jmp       bs_a512
a512:     eb 00          jmp       bs_a514
a514:     e2 f3          loop      bs_a509
a516:     fe 4e 03       dec       byte ptr [bp+os_3]
          75 c2          jnz       bs_a4dd
a51b:     8a 26 74 00    mov       ah,[ad_74]
          0a e4          or        ah,ah
          74 01          jz        bs_a524
          f9             stc       
a524:     c3             ret       
a525:     e8 c1 01       call      bl_a6e9
          72 68          jb        bs_a592
          e8 47 02       call      bl_a774
          72 63          jb        bs_a592
          8c c7          mov       di,es
          8b f3          mov       si,bx
          e8 81 03       call      bl_a8b7
          e8 8f 01       call      bl_a6c8
          f6 06 76 00 c0 test      byte ptr [ad_76],ib_c0
          74 02          jz        bs_a542
          fe c4          inc       ah
a542:     e8 94 03       call      bl_a8d9
          e8 f8 01       call      bl_a740
          8a c4          mov       al,ah
          e8 10 03       call      bl_a85d
          e8 8a 02       call      bl_a7da
          72 40          jb        bs_a592
a552:     8e df          mov       ds,di
          b9 00 01       mov       cx,iw_100
          ba f0 01       mov       dx,PO_DATA
          fa             cli       
          fc             cld       
          f3 6f          repz outs 
          fb             sti       
          f6 46 08 02    test      byte ptr [bp+os_8],ib_2
          74 19          jz        bs_a57e
          6a 40          push      ib_40
          1f             pop       ds
          e8 6f 02       call      bl_a7da
          72 25          jb        bs_a592
          b9 04 00       mov       cx,iw_4
          8e df          mov       ds,di
a572:     8a 04          mov       al,[si]
          46             inc       si
          ee             out       dx,al
          eb 00          jmp       bs_a578
a578:     eb 00          jmp       bs_a57a
a57a:     eb 00          jmp       bs_a57c
a57c:     e2 f4          loop      bs_a572
a57e:     6a 40          push      ib_40
          1f             pop       ds
          e8 2f 02       call      bl_a7b3
          72 0c          jb        bs_a592
          e8 72 02       call      bl_a7fb
          72 07          jb        bs_a592
          f6 06 8c 00 08 test      byte ptr [ad_8c],ib_8
          75 c0          jnz       bs_a552
a592:     c3             ret       
Seek:
a593:     e8 53 01       call      bl_a6e9
          72 59          jb        bs_a5f1
          e8 d9 01       call      bl_a774
          72 54          jb        bs_a5f1
          e8 17 03       call      bl_a8b7
          8a c5          mov       al,ch
          8a ea          mov       ch,dl
          ba f4 01       mov       dx,PO_CYLINDERLOW
          88 46 05       mov       [bp+os_5],al
          ee             out       dx,al
          eb 00          jmp       bs_a5ad
a5ad:     eb 00          jmp       bs_a5af
a5af:     8a c1          mov       al,cl
          c0 e8 06       shr       al,ib_6
          8a 56 15       mov       dl,[bp+os_15]
          c0 ea 04       shr       dl,ib_4
          80 e2 0c       and       dl,ib_c
          0a c2          or        al,dl
          ba f5 01       mov       dx,PO_CYLINDERHIGH
          88 46 06       mov       [bp+os_6],al
          ee             out       dx,al
          eb 00          jmp       bs_a5c8
a5c8:     eb 00          jmp       bs_a5ca
a5ca:     8a 46 07       mov       al,[bp+os_7]
          ba f6 01       mov       dx,PO_DRIV&HEAD
          ee             out       dx,al
          e8 6c 01       call      bl_a740
          b0 70          mov       al,ib_70
          e8 84 02       call      bl_a85d
          e8 d7 01       call      bl_a7b3
          72 13          jb        bs_a5f1
          e8 1a 02       call      bl_a7fb
          73 0e          jae       bs_a5f1
          80 3e 74 00 40 cmp       byte ptr [ad_74],ib_40
          f9             stc       
          75 06          jnz       bs_a5f1
          32 e4          xor       ah,ah
          88 26 74 00    mov       [ad_74],ah
a5f1:     c3             ret       
CheckDriveReady:
          e8 f4 00       call      bl_a6e9
          72 28          jb        bs_a61f
          e8 52 01       call      bl_a74c
          72 23          jb        bs_a61f
          ba f6 01       mov       dx,PO_DRIV&HEAD
          8a 46 07       mov       al,[bp+os_7]
          ee             out       dx,al
          ba f7 01       mov       dx,PO_COMMAND
          51             push      cx
          b9 02 00       mov       cx,iw_2
          e8 5b 4a       call      bl_f068
          59             pop       cx
          ec             in        al,dx
          a2 8c 00       mov       [ad_8c],al
          b4 00          mov       ah,ib_0
          a8 40          test      al,ib_40
          75 03          jnz       bs_a61b
          b4 aa          mov       ah,ib_aa
          f9             stc       
a61b:     88 26 74 00    mov       [ad_74],ah
a61f:     c3             ret       
Recalibrate:
a620:     e8 c6 00       call      bl_a6e9
          72 24          jb        bs_a649
          e8 4c 01       call      bl_a774
          72 1f          jb        bs_a649
          e8 8a 02       call      bl_a8b7
          ba f6 01       mov       dx,PO_DRIV&HEAD
          8a 46 07       mov       al,[bp+os_7]
          ee             out       dx,al
          e8 09 01       call      bl_a740
          b0 10          mov       al,ib_10
          e8 21 02       call      bl_a85d
          e8 74 01       call      bl_a7b3
          73 05          jae       bs_a646
          e8 6f 01       call      bl_a7b3
          72 03          jb        bs_a649
a646:     e8 b2 01       call      bl_a7fb
a649:     c3             ret       
ControllerInternalDiagnostic:
          e8 6a 02       call      bl_a8b7
          e8 fc 00       call      bl_a74c
          72 1e          jb        bs_a670
          b0 90          mov       al,ib_90
          e8 06 02       call      bl_a85d
          e8 59 01       call      bl_a7b3
          72 14          jb        bs_a670
          ba f1 01       mov       dx,PO_ERROR
          ec             in        al,dx
          a2 8d 00       mov       [ad_8d],al
          b4 20          mov       ah,ib_20
          3c 01          cmp       al,ib_1
          f9             stc       
          75 02          jnz       bs_a66c
          32 e4          xor       ah,ah
a66c:     88 26 74 00    mov       [ad_74],ah
a670:     c3             ret       
a671:     e8 75 00       call      bl_a6e9
          73 07          jae       bs_a67d
          32 e4          xor       ah,ah
          33 c9          xor       cx,cx
          33 d2          xor       dx,dx
          c3             ret       
a67d:     e8 55 00       call      bl_a6d5
          26 8b 07       mov       ax,es:[bx]
          48             dec       ax
          26 8a 4f 0e    mov       cl,es:[bx+os_e]
          b5 00          mov       ch,ib_0
          f7 e1          mul       cx
          26 8a 4f 02    mov       cl,es:[bx+os_2]
          f7 e1          mul       cx
          8b ca          mov       cx,dx
          8b d0          mov       dx,ax
          b4 03          mov       ah,ib_3
          f8             clc       
          c3             ret       

ParkHeads:
          e8 2b 00       call      bl_a6c8
          73 07          jae       bs_a6a6
          b4 01          mov       ah,ib_1
          88 26 74 00    mov       [ad_74],ah
          c3             ret       
a6a6:     8a 76 15       mov       dh,[bp+os_15]
          52             push      dx
          26 8b 47 0c    mov       ax,es:[bx+os_c]
          8a e8          mov       ch,al
          8a cc          mov       cl,ah
          c0 e1 06       shl       cl,ib_6
          8a f4          mov       dh,ah
          c0 e6 04       shl       dh,ib_4
          80 e6 c0       and       dh,ib_c0
          88 76 15       mov       [bp+os_15],dh
          e8 d0 fe       call      bl_a593
          5a             pop       dx
          88 76 15       mov       [bp+os_15],dh
          c3             ret       
a6c8:     80 fa 81       cmp       dl,ib_81
          76 08          jbe       bs_a6d5
          b4 01          mov       ah,ib_1
          88 26 74 00    mov       [ad_74],ah
          f9             stc       
          c3             ret       
a6d5:     33 db          xor       bx,bx
          8e c3          mov       es,bx
          f6 c2 01       test      dl,ib_1
          bb 04 01       mov       bx,iw_104
          74 03          jz        bs_a6e4
          bb 18 01       mov       bx,iw_118
a6e4:     26 c4 1f       les       bx,es:[bx]
          f8             clc       
          c3             ret       
a6e9:     50             push      ax
          a0 75 00       mov       al,[ad_75]
          8a e2          mov       ah,dl
          80 e4 7f       and       ah,ib_7f
          3a c4          cmp       al,ah
          58             pop       ax
          76 41          jbe       bs_a738
          83 ff 2a       cmp       di,+is_2a
          74 3a          jz        bs_a736
          83 ff 10       cmp       di,+is_10
          74 35          jz        bs_a736
          06             push      es
          53             push      bx
          52             push      dx
          51             push      cx
          e8 cd ff       call      bl_a6d5
          26 8b 4f 05    mov       cx,es:[bx+os_5]
          c1 e9 02       shr       cx,ib_2
          88 4e 02       mov       [bp+os_2],cl
          b1 a0          mov       cl,ib_a0
          f6 c2 01       test      dl,ib_1
          74 02          jz        bs_a71b
          b1 b0          mov       cl,ib_b0
a71b:     83 ff 12       cmp       di,+is_12
          75 0a          jnz       bs_a72a
          26 8a 77 02    mov       dh,es:[bx+os_2]
          fe ce          dec       dh
          0a ce          or        cl,dh
          eb 05          jmp       bs_a72f
a72a:     80 e6 0f       and       dh,ib_f
          0a ce          or        cl,dh
a72f:     88 4e 07       mov       [bp+os_7],cl
          59             pop       cx
          5a             pop       dx
          5b             pop       bx
          07             pop       es
a736:     f8             clc       
          c3             ret       
a738:     b4 01          mov       ah,ib_1
          88 26 74 00    mov       [ad_74],ah
          f9             stc       
          c3             ret       
a740:     52             push      dx
          50             push      ax
          8a 46 02       mov       al,[bp+os_2]
          ba f1 01       mov       dx,PO_ERROR
          ee             out       dx,al
          58             pop       ax
          5a             pop       dx
          c3             ret       
a74c:     fb             sti       
          51             push      cx
          52             push      dx
          50             push      ax
          b9 10 00       mov       cx,iw_10
          ba f7 01       mov       dx,PO_COMMAND
          b4 80          mov       ah,ib_80
a758:     51             push      cx
          33 c9          xor       cx,cx
          e8 fc 47       call      bl_ef5a
          59             pop       cx
          73 0f          jae       bs_a770
          e2 f5          loop      bs_a758
          ec             in        al,dx
          a2 8c 00       mov       [ad_8c],al
          58             pop       ax
          b4 80          mov       ah,ib_80
          88 26 74 00    mov       [ad_74],ah
          eb 01          jmp       bs_a771
a770:     58             pop       ax
a771:     5a             pop       dx
          59             pop       cx
          c3             ret       
a774:     52             push      dx
          51             push      cx
          50             push      ax
          b9 00 0c       mov       cx,iw_c00
a77a:     e8 cf ff       call      bl_a74c
          72 28          jb        bs_a7a7
          ba f6 01       mov       dx,PO_DRIV&HEAD
          8a 46 07       mov       al,[bp+os_7]
          ee             out       dx,al
          51             push      cx
          b9 02 00       mov       cx,iw_2
          e8 db 48       call      bl_f068
          59             pop       cx
          ba f7 01       mov       dx,PO_COMMAND
          ec             in        al,dx
          b4 aa          mov       ah,ib_aa
          a8 40          test      al,ib_40
          74 06          jz        bs_a79e
          b4 40          mov       ah,ib_40
          a8 10          test      al,ib_10
          75 10          jnz       bs_a7ae
a79e:     e2 da          loop      bs_a77a
          a2 8c 00       mov       [ad_8c],al
          88 26 74 00    mov       [ad_74],ah
a7a7:     59             pop       cx
          8a c1          mov       al,cl
          59             pop       cx
          5a             pop       dx
          f9             stc       
          c3             ret       
a7ae:     58             pop       ax
          59             pop       cx
          5a             pop       dx
          f8             clc       
          c3             ret       
a7b3:     f8             clc       
          b8 00 90       mov       ax,iw_9000
          cd 15          int       it_15
          fb             sti       
          72 10          jb        bs_a7cc
          bb 8e 00       mov       bx,iw_8e
          ba 10 00       mov       dx,iw_10
a7c2:     33 c9          xor       cx,cx
          e8 db 47       call      bl_efa2
          73 0b          jae       bs_a7d4
          4a             dec       dx
          75 f6          jnz       bs_a7c2
a7cc:     b4 80          mov       ah,ib_80
          88 26 74 00    mov       [ad_74],ah
          eb 05          jmp       bs_a7d9
a7d4:     c6 06 8e 00 00 mov       byte ptr [ad_8e],ib_0
a7d9:     c3             ret       
a7da:     51             push      cx
          52             push      dx
          50             push      ax
          b9 c8 00       mov       cx,iw_c8
          ba f7 01       mov       dx,PO_COMMAND
          b4 08          mov       ah,ib_8
          e8 96 47       call      bl_ef7e
          73 0d          jae       bs_a7f7
          ec             in        al,dx
          a2 8c 00       mov       [ad_8c],al
          58             pop       ax
          b4 80          mov       ah,ib_80
          88 26 74 00    mov       [ad_74],ah
          eb 01          jmp       bs_a7f8
a7f7:     58             pop       ax
a7f8:     5a             pop       dx
          59             pop       cx
          c3             ret       
a7fb:     52             push      dx
          50             push      ax
          ba f7 01       mov       dx,PO_COMMAND
          ec             in        al,dx
          a2 8c 00       mov       [ad_8c],al
          b4 11          mov       ah,ib_11
          a8 04          test      al,ib_4
          75 45          jnz       bs_a84f
          b4 cc          mov       ah,ib_cc
          a8 20          test      al,ib_20
          75 3f          jnz       bs_a84f
          b4 aa          mov       ah,ib_aa
          a8 40          test      al,ib_40
          74 39          jz        bs_a84f
          b4 40          mov       ah,ib_40
          a8 10          test      al,ib_10
          74 33          jz        bs_a84f
          b4 00          mov       ah,ib_0
          a8 01          test      al,ib_1
          74 2d          jz        bs_a84f
          ba f1 01       mov       dx,PO_ERROR
          ec             in        al,dx
          a2 8d 00       mov       [ad_8d],al
          b4 02          mov       ah,ib_2
          a8 01          test      al,ib_1
          75 20          jnz       bs_a84f
          b4 01          mov       ah,ib_1
          a8 04          test      al,ib_4
          75 1a          jnz       bs_a84f
          b4 04          mov       ah,ib_4
          a8 10          test      al,ib_10
          75 14          jnz       bs_a84f
          b4 10          mov       ah,ib_10
          a8 40          test      al,ib_40
          75 0e          jnz       bs_a84f
          b4 40          mov       ah,ib_40
          a8 02          test      al,ib_2
          75 08          jnz       bs_a84f
          b4 0a          mov       ah,ib_a
          a8 80          test      al,ib_80
          75 02          jnz       bs_a84f
          b4 bb          mov       ah,ib_bb
a84f:     88 26 74 00    mov       [ad_74],ah
          5a             pop       dx
          8a c2          mov       al,dl
          5a             pop       dx
          0a e4          or        ah,ah
          74 01          jz        bs_a85c
          f9             stc       
a85c:     c3             ret       
a85d:     e8 ec fe       call      bl_a74c
          fa             cli       
          50             push      ax
          c6 06 8e 00 00 mov       byte ptr [ad_8e],ib_0
          e4 a1          in        al,p_a1
          eb 00          jmp       bs_a86b
a86b:     eb 00          jmp       bs_a86d
a86d:     24 bf          and       al,ib_bf
          e6 a1          out       p_a1,al
          e4 21          in        al,p_21
          eb 00          jmp       bs_a875
a875:     eb 00          jmp       bs_a877
a877:     24 fb          and       al,ib_fb
          e6 21          out       p_21,al
          eb 00          jmp       bs_a87d
a87d:     eb 00          jmp       bs_a87f
a87f:     58             pop       ax
          52             push      dx
          ba f7 01       mov       dx,PO_COMMAND
          88 46 08       mov       [bp+os_8],al
          ee             out       dx,al
          5a             pop       dx
          fb             sti       
          c3             ret       
a88b:     52             push      dx
          50             push      ax
          8b c3          mov       ax,bx
          c1 e8 04       shr       ax,ib_4
          8c c2          mov       dx,es
          03 c2          add       ax,dx
          8e c0          mov       es,ax
          83 e3 0f       and       bx,+is_f
          33 c0          xor       ax,ax
          ba 01 00       mov       dx,iw_1
          2b c3          sub       ax,bx
          83 da 00       sbb       dx,+is_0
          f7 76 18       div       word ptr [PARM_AX]
          8a d0          mov       dl,al
          58             pop       ax
          3a d0          cmp       dl,al
          5a             pop       dx
          73 06          jae       bs_a8b6
          b4 09          mov       ah,ib_9
          88 26 74 00    mov       [ad_74],ah
a8b6:     c3             ret       
a8b7:     06             push      es
          53             push      bx
          52             push      dx
          50             push      ax
          e8 17 fe       call      bl_a6d5
          26 8a 47 08    mov       al,es:[bx+os_8]
          8a e0          mov       ah,al
          24 08          and       al,ib_8
          ba f6 03       mov       dx,iw_3f6
          ee             out       dx,al
          a0 76 00       mov       al,[ad_76]
          24 c0          and       al,ib_c0
          0a c4          or        al,ah
          a2 76 00       mov       [ad_76],al
          58             pop       ax
          5a             pop       dx
          5b             pop       bx
          07             pop       es
          c3             ret       
a8d9:     50             push      ax
          52             push      dx
          ba f2 01       mov       dx,PO_SECTORCOUNT
          88 46 03       mov       [bp+os_3],al
          ee             out       dx,al
          eb 00          jmp       bs_a8e4
a8e4:     eb 00          jmp       bs_a8e6
a8e6:     8a c1          mov       al,cl
          24 3f          and       al,ib_3f
          ba f3 01       mov       dx,PO_SECTORNUM
          88 46 04       mov       [bp+os_4],al
          ee             out       dx,al
          eb 00          jmp       bs_a8f3
a8f3:     eb 00          jmp       bs_a8f5
a8f5:     8a c5          mov       al,ch
          ba f4 01       mov       dx,PO_CYLINDERLOW
          88 46 05       mov       [bp+os_5],al
          ee             out       dx,al
          eb 00          jmp       bs_a900
a900:     eb 00          jmp       bs_a902
a902:     8a c1          mov       al,cl
          c0 e8 06       shr       al,ib_6
          8a 56 15       mov       dl,[bp+os_15]
          c0 ea 04       shr       dl,ib_4
          80 e2 0c       and       dl,ib_c
          0a c2          or        al,dl
          ba f5 01       mov       dx,PO_CYLINDERHIGH
          88 46 06       mov       [bp+os_6],al
          ee             out       dx,al
          eb 00          jmp       bs_a91b
a91b:     eb 00          jmp       bs_a91d
a91d:     ba f6 01       mov       dx,PO_DRIV&HEAD
          8a 46 07       mov       al,[bp+os_7]
          ee             out       dx,al
          5a             pop       dx
          58             pop       ax
          c3             ret       