home *** CD-ROM | disk | FTP | other *** search
/ CBM Funet Archive / cbm-funet-archive-2003.iso / cbm / documents / projects / drives / 64hdproj.sfx / wtboot.src < prev   
Encoding:
Text File  |  1990-02-12  |  1.6 KB  |  104 lines

  1. ;bput"writeboot.src"
  2. ;rput"writeboot.src"
  3. ;
  4. .lib hardjump.eq
  5. .lib hardiskz.eq
  6. ;
  7. * = $0840
  8. start jsr hdinit ;init ctl blocks
  9.  jsr reset ;issue the reset
  10.  lda #$37
  11.  sta $01
  12.  bcc noerror
  13.  jmp reseterror
  14. noerror = *
  15.  lda #$36
  16.  sta $01
  17.  lda #$80
  18.  ldy #$28 ;get number of sectors to read
  19.  ldx #$40 ;get sector number
  20.  jsr writeit ;go convert and read
  21.  bcc noerror1
  22.  jmp writeerror ;go if bad
  23. noerror1 = *
  24.  ldy #0 ;move ram from under kernal
  25.  sei
  26.  lda #$35
  27.  sta $01
  28. moverom lda $e000,y
  29.  sta $2000,y
  30.  lda $e100,y
  31.  sta $2100,y
  32.  lda $e200,y
  33.  sta $2200,y
  34.  lda $e300,y
  35.  sta $2300,y
  36.  lda $e400,y
  37.  sta $2400,y
  38.  lda $e500,y
  39.  sta $2500,y
  40.  lda $e600,y
  41.  sta $2600,y
  42.  lda $e700,y
  43.  sta $2700,y
  44.  lda $e800,y
  45.  sta $2800,y
  46.  lda $e900,y
  47.  sta $2900,y
  48.  lda $ea00,y
  49.  sta $2a00,y
  50.  lda $eb00,y
  51.  sta $2b00,y
  52.  lda $ec00,y
  53.  sta $2c00,y
  54.  iny
  55.  bne moverom
  56.  lda #$37
  57.  sta $01
  58.  cli
  59.  lda #$20 ;address input area
  60.  ldy #$10
  61.  ldx #$69
  62.  jsr writeit
  63.  bcs writeerror
  64.  rts
  65. ;
  66. writeit sta bufadr+1 ;address input
  67.  sty blkcnt ;# 512 byte blocks
  68.  stx secnum+2
  69.  lda #0
  70.  sta hdnum ;clear the drive number
  71.  sta secnum
  72.  sta secnum+1
  73.  jsr sec2cyldcb ;convert to disk addr
  74.  lda head ;fill the dcb
  75.  sta hdnum
  76.  lda cyllsb ;get low cyl addr
  77.  sta cylnum
  78.  lda cylmsb ;get hi cyl and sector
  79.  sta secadr ;put in dcb
  80.  lda #<ignore
  81.  ldy #>ignore
  82.  sta $fffe
  83.  sty $ffff
  84.  sta $fffa
  85.  sty $fffb
  86.  jsr write ;read and return to caller
  87.  rts
  88. ;
  89. ignore rti
  90. ;
  91. reseterror ldx #0
  92.  .byt $2c ;
  93. writeerror ldx #14
  94. writeerrorl lda resetmsg,x
  95.  beq done
  96.  jsr $ffd2
  97.  inx
  98.  bne writeerrorl
  99. done rts
  100.  brk
  101. ;
  102. resetmsg .byt 'reset failed',13,0
  103. writeerrmsg .byt 'write failed',13,0
  104. .end
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.