Read High-Speed SIO from Speedy 1050 drive

Speeday 1050 example -- read high speed SIO routine from drive#

0100 ;****************************************
0110 ;*  Lesen der SIO-Routine vom Laufwerk  *
0120 ;****************************************
0130 ;
0140 ADR =   $5000   ; Adresse fuer die SIO-Routine
0150 ;
0160     .OPT NO LIST
0170     .OPT OBJ
0180     *=  $4000
0190 ;
0200     LDA #$31    ; Bus ID
0210     STA $0300
0220     LDA #1      ; Laufwerks Nummer = 1
0230     STA $0301
0240     LDA #$68    ; Kommando $68
0250     STA $0302
0260     LDA #$40    ; Status fuer Daten lesen
0270     STA $0303
0280     LDA #8
0290     STA $0304   ; Adresse fuer Laengenbyte Low
0300     STA $0306   ; Wert fuer Timeout = 8 Sekunden
0310     LDA #3
0320     STA $0305   ; Adresse fuer Laengenbyte High
0330     LDA #2
0340     STA $0308   ; 2 Bytes lesen
0350     LDA #0
0360     STA $0309
0370     JSR $E459   ; Einsprung der SIO-Routine im OS
0380     BMI ERROR
0390     INC $0302   ; Kommando $69
0400     LDA # <ADR
0410     STA $0304   ; Target Adresse der SIO-Routine Low
0420     STA $030A   ; Original Adresse der SIO-Routine Low
0430     LDA # >ADR
0440     STA $0305   ; Target Adresse der SIO-Routine High
0450     STA $030B   ; Original Adresse der SIO-Routine High
0460     LDA #$40
0470     STA $0303   ; Status fuer Daten lesen
0480     JSR $E459   ; Einsprung der SIO-Routine im OS
0490     BMI ERROR
0500     CLC
0510     RTS
0520 ERROR SEC
0530     RTS