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 / xloadpro.asx < prev    next >
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. * Professional version - can load file under ROM.
  4. * Interrupts and ROM are disabled when running loaded program.
  5.  
  6.     opt    h-
  7.     org    $400
  8.  
  9. * Boot code
  10. boot    dta    b(0,1),a(boot)    Boot header
  11. arts    dta    a(rts)
  12.  
  13.     dta    b({lda #$60})    Skip rts
  14. rts    rts
  15.  
  16.     sei            Disable interrupts
  17.     inc    ^4e
  18.     inc    ^40        Make screen blank
  19.     mva    #$08    ^24    Set transmission speed
  20.     mva    #$00    ^26
  21.     mva    #$28    ^28
  22.     sta    ^29        Reset counters
  23.     mva    #$23    ^2f    Send enable
  24.     sta    ^2d        Send a byte
  25. wait    sta    ^4a        Wait until sent
  26.     asl    @
  27.     bcc    wait
  28.     mva    #$13    ^2f    Receive enable
  29.     ldy    #2
  30. head    jsr    get        Receive address (high/low byte)
  31.     sta    stor,y
  32.     mva    arts-1,y    $2e2-1,y    Set init address
  33.     pha            Put return address on stack
  34.     dey
  35.     bne    head
  36.     jsr    get        Receive length (one byte)
  37.     tax
  38. load    jsr    get        Receive data
  39. stor    sta    a:0,x+        Store in memory
  40.     bne    load
  41.     mva    $10    ^2e    Reset POKEY
  42.     mva    #3    ^2f
  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