!!!SIO Sector Read for Atari Basic {{{ 00010 .LI OFF 00020 * 00030 * 00040 ******************* 00050 * SIO-Routine * 00060 ******************* 00070 * 00080 * 00090 * 00100 DRIVE = $301 00110 COM = $302 00120 STAT = $303 00130 BUFF = $304 00140 SECTOR = $30A 00150 * 00160 * 00170 DSK = $E453 00180 * 00190 * 00200 * 00210 LEN = $CB 00220 REG = $D4 00230 * 00240 * 00250 * 00260 * 00270 * 00280 S PLA Parameter holen 00290 * 00300 PLA Laufwerks- 00310 PLA Nummer holen 00320 STA DRIVE 00330 * 00340 PLA Kommando holen 00350 PLA 'R=Read, 'W=Write 00360 STA COM 'S=Status, 'P=Put, '!=Format 00370 * 00380 PLA Buffer 00390 STA BUFF+1 addresse 00400 PLA holen 00410 STA BUFF 00420 * 00430 PLA Sektor- 00440 STA SECTOR+1 holen 00450 PLA 00460 STA SECTOR 00470 * 00480 PLA Anzahl 00490 STA LEN+1 der 00500 PLA Sektoren 00510 STA LEN holen 00520 ------------------------------ 00530 LOOP JSR DSK Sektor lesen 00540 LDA STAT Status holen 00550 BMI ERROR Error, wenn negativ 00560 * 00570 INC SECTOR Naechster 00580 BNE .1 Sektor 00590 INC SECTOR+1 00600 * 00610 .1 LDA BUFF Buffer 00620 CLC +Sektor- 00630 ADC #$80 laenge 00640 STA BUFF ($80 Bytes) 00650 BCC .2 bei Single und Medium 00660 INC BUFF+1 Density) 00670 * 00680 .2 LDA LEN Laenge 00690 BNE .3 runterzaehlen 00700 DEC LEN+1 00710 DEC LEN 00720 * 00730 LDA LEN Schon alle 00740 ORA LEN+1 Sektoren 00750 BNE LOOP geladen? Nein 00760 RTS Zurueck }}}