X; XEGSMGR.M65X; BY MATTHEW RATCLIFFX; (c)1988, ANTIC PUBLISHING(EI2>D:SYSEQU.M65<>D:IOMAC.LIBFIP"AXEGS Manager By M. RatcliffAZ4dEKnFx TXPNTԂ RAMTOPjRAM copy"8FLAG;;Copy part1/part2 flag,:CASINI;;Vector we will steal6COLDSTD@ CSETJWARMSVtT PAGE6^"X; If Self-test selected, checkh$X; first byte here, definition ofr#X; space character. Try to write| X; nonzero value there. If it#X; changes then we're in RAM O/S$X; mode. Will crash if attempt to"X; continue. If RAM-based, tellX; user & return to DOS.!X; If ROM, continue with test.GINTLK;;Ext. Cart Flag BOOT !X; Good cass boot will give us X; control via CASINI vector. COPY IRQEN CRITICBGRACTLSDMCTL/ POKMSK NMIEN&DMACTL0 PRN0 :  D AINCORRECT PRN0 CALL!ANX !@SKPTX]X;b@TXT ==l@SKPTX$>4@TXTv %>5@TXT PRINTXTX; BEGIN= GRAF0;;GRAFCMD, set new RAMTOP, tooQ>;;Black bkgnd. PCLRBAK TITLE QGINTLKFINTBAS;;No ext. cart-OKX;?!RRONLY;;Yes-ROM/RAM option only! INTBAS TOP#PRN0 A۱ Turn Π BASIC A#PRN0 A۲ Turn BASIC A#PRN0 A۳ Run A#PRN0 A۴ ROM O/S to RAM A #PRN0 A۵ RAM O/S to ROM A#PRN0 A۶ Missile Command A  BOT* CRLF4:Q>;;No editing prompt line>PLMARGN;;Fix marginHBPUT =PROMPT=R KEYINW GETKEY\5;;Save keyfQ>p PLMARGNz CRLF7KEY1R> 1;;Cart on?HKEY2;;NOPEX;9QPORTB;;Yes, current config?M>;;Enable BASIC PPORTBQ>;;New RAMTOP PRAMTOP GRAF0;;Normal screenQ>BASIC_ON PBASICF CRLFPRN0 AàΠA!CR5 X;KEY2R> 2;;Cart. off?HKEY3;;No.X;$ BASOFF)QPORTB;;Yes! Do it!.L>8PPORTB;;It's off. NowBQ>;;set new RAMTOPL PRAMTOPV GRAF0` CRLFjQ>BASIC_OFFt PBASICF~PRN0 AàƠA!CR5;;Back to DOS.X;KEY3R> 3;;Self-test? HKEY4;;NoX; BASOFF;;BASIC off firstQPORTB;;Enable OS RAML> PPORTB GRAF0QPORTB;; Self-test on.M>:PPORTB;;Now remapped to $5000Q>;;Coldstart flagPCOLDST;;for 'RESET' X; Reboot after test!PX;KEY4#R> 4;;ROM O/S -> RAM?( FGROMRAM-X;2KEY57R> 5;;RAM O/S -> ROM?< HKEY6AX;F QBOOTPM>Z PBOOTd !WARMSViX;nKEY6s;!MISLCMD;;Enable Missile Commandx GOOF !BEGINX; GROMRAM QDOSIDR>SPARTAFLGHGOROMSRAMX; NORAMOSQ> PLMARGN QBOOTM>;;Disk boot OK PBOOT GRAF0$PRN0 A͠ϯӠA$PRN0 AӠ塪A:X; GOROMSRAM  !ROMSRAM X;$X;Copy ROM OS -> RAM then disableX;all interrupts, enable RAM"X;in place of ROM (OS),'X;copy RAM->RAM & enable., RRONLY1Q>6 PLMARGN@ CRLFJ QDOSIDTR>SPARTAFLG^ FNORAMOScX;h)PRN0 A̠ŠԠAr$PRN0 ACONVERT ROM OS  RAM ?A|0PRN0 A(Type 'Y' or 'N' and press RETURN) A GETKEYR> Y FROMSRAMX;R> N FQUITX; GOOF !BEGINX;QUIT GRAF0!CR5X; DRVTX AD1:*.FNTA= FILENAME AD1:FILENAME.EXTA===X; ROM OS to RAM setup ROMSRAM$>;; Move RAM O/S%RAMGRLN;; MGR to Page6 RMOVLP QRAMGR9 PPAGE69&201: HRMOVLP?X;D PAGE6;; Make RAM O/SN)PRN0 A ͠ϯӠAX)PRN0 A 㡠Ab REDIRg)PRN0 A Al$PRN0 A (1-8, 0=Exit, no load)Av GETKEYR>;; CR also exits FNOFNTX;R> 0 HDIRITX; NOFNT: DIRITR> 9;; Valid drive #? DDIRIT2X; GOOF !REDIRX; DIRIT2R> 1 EDIRIT3X; GOOF!REDIR;; Try it again.X; DIRIT3 PDRVTX  CLOSE OPEN ===DRVTX C* IDIRIT4/X;4PRN0 AOpen error.A> CLOSE H !REDIRMX;R DIRIT4W GETFNAME\Cf GDIRIT5kX;pPRINT =STRBUF=z !DIRIT4X; DIRIT5 CLOSE PRN0 AFont file to load?A!PRN0 A( for new dir)A GETKEY QSTRBUFR> HDIRIT6X; !REDIRX; DIRIT6 EDITFNAMEOPEN ===FILENAME IDIRIT7X;PRINT =FILENAME=PRN0 ACan't open file!A CLOSE  !REDIR X; DIRIT7 BGET =CSET=$ CLOSE . DIRIT7A3 !PRN0 ARAM O/S Font loaded.A8 .PRN0 A[1] Exit [2] Load different font?AB GETKEYL R> 1V HDIRIT8[ X;` CR5e Q>j PTEMPt XTRALFy CRLF~ "TEMP HXTRALF X; : X; DIRIT8 R> 2 FDIRIT9 X; GOOF !DIRIT7A X; DIRIT9 !REDIR X; X; Edit strbuf to filename X; with defaults EDITFNAME QSTRBUF;; D: or Dn:? R> : >FCOPYASIS;; Yes, no edits on front QSTRBUF R> : FCOPYASIS X; Q> D;; Set default( PFILENAME;; drive spec2 QDRVTX< PFILENAMEF Q> :P PFILENAMEZ $> d %>n COPLPs =QSTRBUF8;; Move rest of fnamex PFILENAME8 R> FEXTST X; 3 0 HCOPLP X; FEXTST X; COPYASIS $> %> COPLP1 QSTRBUF8 PFILENAME8 R> FEXTST X; R> FEXTST X; 3 0" HCOPLP1' X;, EXTST1 $>6 EXTST1; QFILENAME9@ R> .;; Extender here?J FGOTEXT;; Yes, done editO X;T R>^ FADDEXT;; Add extensionc X;h R>r FADDEXTw X;| 2 9(>;; Done all possible? HEXTST1 X; ADDEXT %> ADDEXT1 QDRVTX8 PFILENAME9 2 3 )> HADDEXT1 X; GOTEXT : X; X; Execute a GR.0 to restore X; E: S: and K: handlers X; after ROM->RAM function. GRAF0 $>`;;CL.# 6 - Screen Q>CCLOSE& PICCOM90  CIO: $>`D Q>COPN;;OPEN S:N PICCOM9X Q> S;; S: temporarilyb PSTRBUF;; on CASBUF pg 4l Q> :v PSTRBUF 5Q>;;Point to S: page 4 PICBADR9 Q>;;GRAPHICS 0 PICAUX29;;For S: handler PICBADR9;;Rest of S: adr >Q>;;Flip bit 4 & allow READ/WRITE PICAUX19 !CIO;;Open & return X; GOOF Q>;;Left margin PLMARGN Q>';;Right margin PRMARGN CRLF PRN0 AĠ٠A GOOF1 $PRN0 APRESS TO RESTARTA GETKEY :% X;* GETKEY/ INPUT =STRBUF=4 QSTRBUF> :C X;H GETFNAMEM INPUT =STRBUF=R :W X;\ PROMPTa  A堣οAf PRINTXTk &ICBADR;;Print to #0p &TXPNTz @'ICBADR;;X-lo byte, Y-hi byte. 'TXPNT %> 'ICBLEN 'ICBLEN LEN Q@TXPNT7;;Length? R>;;ETX-End of text FOUTPUT X; #ICBLEN HMORE X; #ICBLEN MORE 3 HLEN;;256 chars max. X; OUTPUTQ> ;;PUT record$>;;Ch #0 PICCOM!CIOX;$X; Print a blank line.CRLF3 PRINT 8:=X;B TITLEGQ>L PLMARGNV CRLF` TOPj#PRN0 AӠAt#PRN0 AA~#PRN0 AA#PRN0 A堠A#PRN0 A̯ŠA BOT!CRLF;;CR and [RETURN]X;TOP#PRN0 AA:X;BOT#PRN0 AA:X; MISLCMD %MISLLEN$> &COLDST MISLPUT QMISLCOM9 PPAGE692 1 HMISLPUTX; !PAGE6#X;( MISLCOM2 =====< ===== F L=t====P  =====Z ==)===d ====*=n =====x =====* ==*=== ===== ==== =R ===== =====  =l===l= =` MISLLEN MISLCOM RAMGR>D:RAMOSDAT.M65 RAMGRLN RAMGREI BEGIN