10 ;ALHART ENTERPRISES PRESENTS›20 ;›30 ; FORMAT4D›40 ; AEP 3/27/93›50 ;›60 ;FORMAT4D is an AUTORUN utility.›70 ;It reconfigures Drive #4 to Double Density,›80 ;informs DOS of the change, and then Formats Drive #4.›90 ;›0100 ;To use with any DOS other than›0110 ;ATARI DOS 2.0 -DOS XL -SMARTDOS›0120 ;DINIT may have to be changed.›0130 ;›0140 ;›0150 DDEVIC = $0300›0160 DUNIT = $0301›0170 DCOMND = $0302›0180 DSTATS = $0303›0190 DBUFLO = $0304›0200 DBUFHI = $0305›0210 DTIMLO = $0306›0220 DTIMHI = $0307›0230 DBYTLO = $0308›0240 DBYTHI = $0309›0250 ICCOM = $0342›0260 ICBAL = $0344›0270 ICBAH = $0345›0280 DINIT = $07E0›0290 DSKINV = $E453›0300 CIOV = $E456›0310 ;›0320 *= $5000›0330 ;›0340 ;CHECK IF DRIVE 4 IS ALREADY DOUBLE DENSITY. IF YES THEN END.›0350 ;›0360 LDA #$31 ;DEVICE TYPE›0370 STA DDEVIC›0380 STA DTIMLO›0390 LDA #$04 :DRIVE #›0400 STA DUNIT›0410 LDA #$4E ;GET CONFIGURATION›0420 STA DCOMND›0430 LDA #$40 ;READ CONFIGURATION BLOCK & STORE IN TBLOCK›0440 STA DSTATS›0450 LDA # TBLOCK›0480 STA DBUFHI›0490 LDA #$00›0500 STA DTIMHI›0510 STA DBYTHI›0520 LDA #$0C ;12 BYTES›0530 STA DBYTLO›0540 JSR DSKINV›0550 LDA TBLOCK+5›0560 CMP #$04 ;SEE IF DRIVE IS CONFIGURED FOR DOUBLE DENSITY›0570 BEQ RTS›0580 ;›0590 LDA #56 ;COLOR BORDER RED›0600 ;›0610 STA 53274›0620 ;›0630 ;SET DRIVE 4 FOR DOUBLE DENSITY USING PERCOM CONFIGURATION BLOCK.›0640 LDA #$31 ;DEVICE TYPE›0650 STA DDEVIC›0660 STA DTIMLO›0670 LDA #$04 ;DRIVE #›0680 STA DUNIT›0690 LDA #$4F ;$4F = RECONFIGURE›0700 STA DCOMND ;$4E = GET CONFIGURATION›0710 LDA #$80 ;$80 =WRITE NEW CONFIGURATION THATS STORED IN CBLOCK›0720 STA DSTATS ;$40 = READ›0730 LDA # CBLOCK›0760 STA DBUFHI›0770 LDA #$00›0780 STA DTIMHI›0790 STA DBYTHI›0800 LDA #$0C ;12 BYTES›0810 STA DBYTLO ;IN CBLOCK›0820 JSR DSKINV›0830 ;›0840 ;LET DOS KNOW DRIVE CONFIGURATION BEFORE FORMATTING.›0850 JSR DINIT›0860 ;›0870 ;FORMAT DRIVE #4›0880 LDX #$20›0890 LDA #$FE ;FORMAT›0900 STA ICCOM,X›0910 LDA # DEVICE›0940 STA ICBAH,X›0950 JSR CIOV›0960 RTS RTS ›0970 ;›0980 CBLOCK›0990 ;TWO BYTE NUMBERS IN CBLOCK›1000 ;ARE IN HIGH BYTE-LOW BYTE FORMAT.›1010 .BYTE 40 ;# OF TRACKS›1020 .BYTE 1 ;STEP RATE›1030 .BYTE 0,18 ;SECTORS/TRACK›1040 .BYTE 0 ;# OF HEADS-1›1050 .BYTE 4 ;DENSITY 4=DD 0=SD›1060 .BYTE 1,0 ;BYTES/SECTOR›1070 .BYTE 255 ;DRIVE SELECTED? Y/N›1080 .BYTE 0 ;SERIAL RATE CONTROL›1090 .BYTE 0,0 ;NOT USED›1100 ;›1110 TBLOCK›1120 .BYTE 0,0,0,0,0,0,0,0,0,0,0,0›1130 ;›1140 DEVICE›1150 .BYTE $44,$34,$3A,$9B ;D4:›1160 ;›1170 *= $02E0 ;RUN AT $5000›1180 .WORD $5000›1190 .END ›