/------------------------------------------------------ /FORMAT ALL OR PART OF A FLOPPY DISC /------------------------------------------------------ FRMT, STA /INITIALIZE PORT DRCO NEW, JMS XSRA /INITIALIZE DRIVE CSR TAD (FDFI /ABORT COMMAND JMS XLR JMS XGR TAD (FDRS /RESTORE DRIVE JMS XLR JMS XGR INVTN, JMS TYPE /ASK FOR FIRST TRACK # MSG1 JMS ACCEPT DCA FTN /SAVE IT TAD FTN /VALIDITY CHECK TAD (-63 SPA CLA JMP INVTN JMS TYPE /ASK FOR # OF TRACKS TO FORMAT MSG2 JMS ACCEPT CIA /NEGATE DCA TCNT /SAVE IT JMS TYPE /TYPE WARNING MSG3 JMS ACCEPT TAD (-1 /OK? SZA JMP ABORT /NO - ABORT NEXT, TAD TCNT /CHECK TRACK COUNT SNA CLA JMP EXIT /EXIT IF ZERO JMS XSRA /SEEK TO TRACK DATA TAD FTN JMS XLR JMS XGR TAD (-SPT /SETUP SECTORS PER TRACK DCA SCNT TAD (STAB /SETUP ADDRESS OF SEKTOR TABLE DCA SNUM TAD I SNUM /SET FIRST SECTOR # DCA SECTOR ISZ SNUM NOP TAD (FSTRT-FEND /SETUP FULL TABLE LENGTH DCA PNT TAD (FSTRT /SETUP START ADDRESS DCA ADDR JMS XSRA /ISSUE WRITE TRACK COMMAND CSR TAD FDWT JMS XLR JMS XSRA /SWITCH TO DATA REGISTER DATA WDT, TAD I ADDR /WRITE DATA JMS XLR WLP, DBRI /WAIT FOR INTRQ OR DRQ RAL SMA JMP NEXT SZL JMP WLP ISZ PNT /INCREMENT BYTE COUNT JMP WDT TAD (FNORM-FEND /RESET BYTE COUNT DCA PNT TAD (FNORM /RESET ADDRESS DCA ADDR TAD I SNUM /GET NEXT SECTOR # DCA SECTOR ISZ SNUM JMP WDT TRKEND, JMS XWCC /WAIT FOR END OF COMMAND JMS XSRA /GET STATUS CSR JMS XGR MQL /DISPLAY IN MQ REGISTER JMP NEW /REENTER