home *** CD-ROM | disk | FTP | other *** search
/ Syzygy Magazine 7 / Syzygy_Magazine_7_1999___pl_Disk_2_of_2_Side_B.atr / xasm22.zip / doc / xloadstd.asx < prev   
Text File  |  1999-09-10  |  1KB  |  60 lines

  1. * Boot executable file loader coded by Fox/Taquart
  2. * Receives file from X-LOAD via SIO2PC interface.
  3. * Standard loader - ROM and interrupts enabled while running loaded program.
  4.  
  5.     opt    h-
  6.     org    $700
  7.  
  8. * Boot code
  9. boot    dta    b(0,1),a(boot)    Boot header
  10. arts    dta    a(rts)
  11.  
  12.     dta    b({lda #$60})    Skip rts
  13. rts    rts
  14.  
  15.     sei            Disable interrupts
  16.     inc    ^4e
  17.     mva    #$08    ^24    Set transmission speed
  18.     mva    #$00    ^26
  19.     mva    #$28    ^28
  20.     sta    ^29        Reset counters
  21.     mva    #$23    ^2f    Send enable
  22.     sta    ^2d        Send a byte
  23. wait    sta    ^4a        Wait until sent
  24.     asl    @
  25.     bcc    wait
  26.     mva    #$13    ^2f    Receive enable
  27.     ldy    #2
  28. head    jsr    get        Receive address (high/low byte)
  29.     sta    stor,y
  30.     mva    arts-1,y    $2e2-1,y    Set init address
  31.     pha            Put return address on stack
  32.     dey
  33.     bne    head
  34.     jsr    get        Receive length (one byte)
  35.     tax
  36. load    jsr    get        Receive data
  37. stor    sta    a:0,x+        Store in memory
  38.     bne    load
  39.     mva    $10    ^2e    Reset POKEY
  40.     mva    #3    ^2f
  41.     lsr    ^4e        Enable interrupts
  42.     cli
  43. init    jmp    ($2e2)        Call init routine
  44.  
  45. get    lda    #$20        Function: Receive one byte
  46.     sta    ^2e        Enable receive interrupt
  47.     bit:rne    ^2e        Wait for interrupt request
  48.     sty    ^2e        Disable receive interrupt
  49.     lda    ^2d        Get byte
  50.     rts
  51.  
  52. :boot+$80-*    dta    b(0)    Padd with zeros to full sector
  53.  
  54. * X-LOAD adds this block at the end of loaded file
  55. * It changes jmp ($2e2) to jmp ($2e0)
  56.     opt    h+
  57.     org    init+1
  58.     dta    l($2e0)
  59.  
  60.     end