EI)AMYDOS 4.3 RAMDISK AUTORUN.SYS FILEAX;(-X; MYDOS 4.3 RAMDISK INSTALLATION PROGRAM2X;<X; LOCAL ZERO PAGE RAMFX;P IOCBZ Zd PTRn NAMPTRx CLSFLG BOTHOK SVIOCBX;X; SYSTEM EQUATESX;MEMTOP HATAB ICMDB ISTATC IBUFD ILENH IAUXJX;X; MYDOS SYSTEM DEFINITIONSX;RAMDKU " STATE ,RDTEST06 CTEST6@X;J&X; HARDWARE AND OS ROM DEFINITIONSTX;^PAGE40@h PORTBr AXLON| CIOVVX; X; MISCELLANEOUS DEFINITIONSX;!IOCB ;;FREE IOCB FOR MY USE0X;X; CLOSE ANY IOCBX;CLOSEQ> ;;CLOSE ANY IOCB PICMD9 !CIOVX;X; OPEN FILEX;X; CALLING SEQUENCE:X; JSR SOPEN&X; .BYTE AUX0X; .BYTE CMD:X; .WORD BUFFER ADDRESSDX;N SOPEN;X ;;LDA #IMM OPCODEbX;l&X; DO A READ/WRITE TYPE I/O REQUESTvX;X; CALLING SEQUENCE:X; JSR DOIOX; .BYTE IOCBNOX; .WORD BUFFER LENGTHX; .BYTE CMDX; .WORD BUFFER ADDRESSX; DOIO,7PPTR7 PPTR%> Q@PTR7  DDOIO1 PIAUX9  EXTRCB* DOIO1>43> Q@PTR7H PILEN9R3\ Q@PTR7f PILEN9p XTRCB3z Q@PTR7 PICMD93 Q@PTR7 PIBUF93 Q@PTR7 PIBUF9C,OPTR?Q> OPTR5C5$ CIOV;;DO I/O REQUEST.INOIOER;;NO ERROR?8)>BFNOIOER;;MAYBE EOF?L7V&7;;NO, DISCARD RETURN ADDR AND EXIT`Cj NOIOER:tX;~>X; CHECK FOR 130XE, RETURNS Z FLAG IF 130XE MEMORY MAPPINGX;CHKMAP%> $PAGE40$QPORTB;;SAVE CURRENT B-REG VALUEN> 'PAGE403!PPORTB;;TOGGLE MAP ENABLE BITN> 'PAGE40 PPORTB1 )PAGE40  &PAGE40 FRETRAMX;(AX; CHECK FOR AXLON, RETURNS Z FLAG IF RAM DISK MEMORY MAPPING2X;<Q> AF PNAMEDKPQ> XZPNAMEDKdQ> LnPNAMEDKxQ> OPNAMEDKQ> NPNAMEDKQ> PAXLONN> $PAGE40%> 'PAGE403!PAXLON;;TOGGLE MAP ENABLE BIT 'PAGE40N> PAXLON1 )PAGE40" &PAGE40, RETRAM:6X;@ X; GET THE NEXT FILE TO COPYJX;TNEXTFQ>UFILE^ PIBUF0hQ>UFILErPIBUF0|Q> PICMD0Q> PILEN0Q>PILEN0$>0 CIOV; GNEXTFX QUFILER> 0 ENEXTFX$>%>CPL1QUFILE8R> 0& DDOEXT0 PRFNAME9:2D3N)> X DCPL1bDOEXTQUFILE lR> ;;spacev FEXTEXQ> . PRFNAME92%> CPL2QUFILE8R> 0 DEXTEX PRFNAME923)>  DCPL2 EXTEXQ> PRFNAME9 X;$> CPL3QRFNAME9*PNDUP894 FCPXIT>2H HCPL3RX;\CPXITQ>RDDIRf PIBUFpQ>RDDIRzPIBUFQ>NDUP8 PIBUF Q>NDUP8PIBUF , NEXTFX:X;;X; COPY A SINGLE FILE FROM D1:RAMDISK:** TO THE RAMDISKX; COPY$>Q> PIAUX9Q> PICMD9 CIOV GCLOSIT$ $> . Q>8 PIAUX9B Q>L PIAUX9V Q>` PICMD9j CIOVt GCLOSIT~ QIBUF PBFSAV QIBUF PBFSAV COPYL$> Q> PICMD9 Q>BSS PIBUF9 Q>BSS PIBUF9 QBUFLEN PILEN9 QBUFLEN PILEN9 CIOV ICOPYFL( )>2 HCANTCP< COPYFL$> F QILEN9P PILEN9Z QILEN9d PILEN9n QIBUF9x PIBUF9 QIBUF9 PIBUF9 Q> PICMD9 CIOV GCANTCP QISTAT R> HCOPYL CLOSIT$> Q> PICMD9 CIOV $>  Q>  PICMD9" CIOV, :6 X;@ CANTCP CLOSITJ QBFSAVT PIBUF ^ QBFSAVh PIBUF r Q>!| PICMD $> ;;DELETE COPY IF ERROR! CIOV : X; "X; MAIN INITIALIZATION PROGRAM X; ENTRY$> SAVSTAQIOCBZ9 PIOCBSAV9 0 ISAVSTA + CHKMAP;;CHECK FOR 130XE MEMORY MAPPING #FGOTRAM;;IF SO, INSTALL RAMDISK "'RAMDKU;;ELSE, DISABLE RAMDISK :;;AND RETURN X;& GOTRAM%>0 'IAUXIOCB: %'CLSFLG;;ASSUME E: NOT THE SCREEND Q> EN FNDEDVRHATAB8X FGOTEDVb 3l 3v 3 )> DFNDEDV ESKIPBAN X; GOTEDVQHATAB8 HSKIPBAN QHATAB8 R> HSKIPBAN PCLSFLG X; DOIO   LEN1    MSG1 X;* 0SKIPBANQRAMDKU;;MAKE D8:?? POINT TO RAMDISK4 L> 0> PDRIVE8H PNDUP8R PNDUP8C\ PLABEL8f X;p %X; FORMAT THE RAMDISK (DRIVE D8:)z X; $>IOCB SOPEN     DRIVE8 ICOPIES !EXIT X; #X; COPY DUP.SYS FROM D1: TO D8: X; COPIES$>0 Q> PICMD9 CIOV CLOSIT;$ QMEMTOP. S>BSS8 PBUFLENBQMEMTOPL S>BSSV PBUFLEN` QCTESTjR> Ct HOPEN1~Q>NDCSYS PIBUFQ>NDCSYSPIBUFQ>NDUP8C PIBUF Q>NDUP8CPIBUF  !CPYDUPX;OPEN1Q>NDUPSYS PIBUFQ>NDUPSYSPIBUF Q>NDUP8 PIBUF Q>NDUP8(PIBUF 2CPYDUP COPY<X;F)X; COPY CONTENTS OF RAMDISK DIRECTORYPX;ZQ>RDDIRd PIBUF0nQ>RDDIRxPIBUF0Q>PIAUX0Q> PIAUX0Q> PICMD0$>0 CIOV GCPYXITX;CPYTO8 NEXTF ECPYXIT COPY !CPYTO8X;,X; RESET LOCATION OF DUP.SYS AND MEM.SAV"X;,CPYXITQRDTEST6R>L@&HNOTRD;;IF NOT RDOS, MUST BE MYDOSJQRDTESTTR> D^&HNOTRD;;JMP AND 'DOS.SYS' PRESENT?h TSTATEr;|!WSTATE;;SAY MEM.SAV IS ACTIVE !CHGNAMX; NOTRD$> CKMDS2FCHGNAM;;JUST TO BE SAFE!Q>0R9 HCKMDSQ>R9 HCKMDSQ>.R9 HCKMDSQ>`R9&(HMAY42;;NOT <4.2, MAYBE 4.2 OR LATER0Q>:2DR9N HCKMDSX2bR9l HCKMDSv FNOT42MAY42R9 HCKMDS.NOT42T9;;SAY MEM.SAV IS ACTIVE TO MYDOS;W9X;CHGNAMQ> PBOTHOKQ> PNAMPTRQ>PNAMPTR QCTESTR> C  HSCANFDQ> PNAMPTR*2SCANFDQ> D;;FIND DUP.SYS AND MEM.SAV FILENAMES4%>> R@NAMPTR7H FGOTDRNOTDRV#NAMPTR\ HSCANFDf#NAMPTRpQNAMPTRzR>8 FCLOSER CKD0R>И HSCANFD&CLOSERQCLSFLG;;IF STANDARD SCREEN FEXIT DOIO  LEN2   MSG2X; EXIT$>RSTSTAQIOCBSAV9 PIOCBZ90 IRSTSTA$:.!@ :8X;BGOTD3;;Y=1LQ> 1V R@NAMPTR7` HNOTDRVj 3;;Y=2tQ> :~ R@NAMPTR7 HNOTDRV 3;;Y=3 Q@NAMPTR7 3;;Y=4R> M FCKMEMR> D HNOTDRVQ> U R@NAMPTR7 HNOTDRV 3;;Y=5Q> P  R@NAMPTR7 HNOTDRV QCTEST($>2R> C< HSET8F3P R@NAMPTR7Z HNOTDRVd SET83nQ> .x R@NAMPTR7 HNOTDRV3Q> S R@NAMPTR7 HNOTDRVA LBOTHOK PBOTHOK%>LABEL8Q> 8 P@NAMPTR7 *BOTHOK INOTDRV JNOTDRV KCLOSERX;" CKMEMQ> E, R@NAMPTR76 HNOTDRV2@3J$>@TQ> M^ R@NAMPTR7h FSET8rNOTDRV2!NOTDRV|X;MSG1 }====== A Setting Up ANAMEDK A130XE Ram DiskA= ===== A A AALEN1 MSG1X; MSG2 }LEN2 MSG2X; BFSAV  BUFLEN X;DRIVE8 AD8:A=&X;0NDUP8 AD8:DUP.SYSA=:X;DNDUPSYS AD1:DUP.SYSA=NX;XNDUP8C AD8:DUPC.SYSA=bX;lNDCSYS AD1:DUPC.SYSA=vX;RDDIR AD1:RAMDISK:ARFNAME A**A A AFILE A AUFILE A AX;IOCBSAV X; BSS  ENTRY