X;SAVE #D9:FMSDOS.M65AWRITE DOSAX; X; WRTDOS - WRITE DOS TO DISKX; WRTDOS$%FCBCSN9;;MOVE START ADDR.QFCBCSN98! SETDSO;;WRITE SECTORS 1 TO 3B WRDOSSYS;;WRITE DOSL !GREATVX;` DELDOSjQ>;;SET FILE NOT EXISTSt WRTBOOT~ PDFSFLGX; Q>FMSORG;;MOVE FMS STARTPDCBBUF;;ADDR TO DCB%>FMSORG 'DCBBUFX;4X; !!! caution: ASSUME Y-REG IS ZERO !!!!!!!!!!!X;WRNBS3;;INC SECTOR NOQ>; BSIO;;DO THE WRITEX; 'QDCBBUF;; ADD 128 TO BUFFER ADDRESSN> PDCBBUF( G:WRB12#DCBBUF<X;F!:WRB1%DCBSEC;;TEST FOR WRITEP)BRCNT;;OF ALL BOOT SECTORSZHWRNBS;;BR NOT ALLdX;n:xX;"SETDSO'DFLINK;;SET LINK STARTPDFLINK"Q>;; SET DOS FLAG TO NON-ZEROHWRTBOOT;;GO WRITE SECTOR 0X;4WRDOSSYS MOVESTART;; MOVE START OF DOS TO ZBUFP#Q>};; SET SECTOR MAXIMUM LENGTH PFCBMLN9X;3:WRDOSLOOP MOVEDATA;; MOVE NEXT SECTOR OF DATA QZBUFP;; TEST FOR END OF DOS RSASA QZBUFP SSASA E:LASTSEC"X;,( WRTNXS;; NOT THE LAST, WRITE IT OUT6!:WRDOSLOOP@X;J7:LASTSEC:;; JUST RETURN SO CLOSE WRITES LAST SECTORTX;^ATEST DOS FILE NAMEAhX;r*X; TSTDOS - TEST FOR DOS SYS FILE NAME;|X; TSTDOS($>;; begin looking at start of name,%CDIRD;; current directory sector offset :TDOSLP0QFILDIRDFDPFN8;;TEST FILENAME in Directory'RDFN9;;WITH "DOS.SYS" FILENAME CHARH:TDFR;;BR NOT MATCH3;; to next char in DIR2;; to next char in DOS.SYS(> ;; 11 characters yet?%H:TDOSLP;;BR IF MORE, ELSE RTN EQ :TDFR6;; must save status!$$CURFCB;; a must for some caller8;; answer to is it DOS.SYS?:&X;0DFN ADOS SYSA