@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@W!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr RAMBOOT.COMC 0$b- |昙s  h@x1txRhZRk`f9(E9zL%,,B̆6Yș( } De@qDVB+ŀSdFdR$F V (PJTKU/EXNä5f!+f kXtOp@[}ЈuS@`4`WHܩ3'i|!SIitWdȩ4r%M~>5g490#p;UYep21D5!4}4y楀^>iAN*mAÆ``3RAMBOOT.DOC] G @so 5'OɦMTФ̛1uڔqCDfi2d<11o}R7pD )s'3.&&LJwܰy%R)MhʀH2Ȧ9uQ U9)QQE8Z4 GM(DVLr2t,#hX9e~ oX#; }ƨU7o6YĨ44o$(bͤa#sIwP,UppN6ba"F0(a,҅_lfXC [clZ~Dά }Cí('wflBld3Ц6iJUӔ余D'qD#$JB7H0bZ@ OH] f5$$ Cp JA ;EM'C$Ol q8E[HpL}4HL&IqRSN6c}Q?7 g!'a%T,X I*? )I x\ڲ S~ɱm+PY6;ntV(I9F6!u<8):4 mXC~oȃ6&~,Nθ?\ tdoQsmlL-fhldCyΦNf7 }ueu2;SW9^ӛM f .Ӏ׸\"EoT%I36y8jM2', sB~,F :Y@n%:d"Τn  IQ@e(}#0I:YJVBJSJ鿸33tڰC@UhA5lFϲ+=O:6D_Q b1b7=Ѳ=A0_@ I$\;lE{iB9m}I kW EMoN5$اCB=ڍNolF¶2ΒLovЋ3LR=FO=[,UB ;!Oip}؃) =7}Vpѹn:!Q(]&Fc:LY' 44O}ڬ%cuRLoH`bvdKL­Vh 6H4O}ڬ%cuRLoH`bvdKL­Vh 6H@^Uh`ң|Ox.)m9a1/Y.}1R'AP5(+QAsUYªv4JhBА /6 @KpX׌D"! EZdlfqf%ZY iq*}.B!CV>(@L4j5 Q~6Mc(&88%>9jX!<֦-1:yxsB0ST!3?1L3YYaAu8EijC#p0}"'2Q"VD!BMr-6Pʤ=|i#/iy% pOK+(dʶqDf #Ap`Ph%TIGWQ^etMH5KPy!!Bp.:5eu1}IE@a*PVEVCi^ KyN iTĐR `I4* !9EА- (?Tl)~&sj2}X#_D%YaMf>CfY$4B4`j`$AIPVSUg'n_8aWá"1cn2$kpaJYhRLr@0V<";e%C /+7pmb6'3}6jNʑSk06'"AiG3cZpx肕S%X5r6cH{ݴUDa|VwdeKa%Y^ؒ$Ԛ't)c$xEOup|*TQ]F y4}Oj1ZCAVo)Upe@JqrcvuqWDVr:R!C<!R·1RYyӴ2tTK5\p$@3  lڴDҸ)0z "fYy[5}v9O=`A?_Dٖk Fp WX] V~N0aUQXy5CUГ!S"JBeIh62bqmo( *Q:4ڡ;"deSJuqyB 3$VmЏSP5l`8}~)""GB>?oRK9[DTpDN5!e^m [0%WzEf " HI"BFPj@sȚup|Y(oHI'dF!<>X<<9}۱94aJ#aȮZ7';8!IRl(@7\Cj!tCjt_¡Dz]+sQlQRwI#1dgwŝGR—Cc={ޛ8RG:}ׅC!Һe]tM/7/?=B Q@-`Zr#뇯 Lcj䁒 Jg;pD.j/wj"UoC0Ya1IBf!=d;}k_#7$y SjRؗN8Ҍ%Nz712LqBU&R9r諜"wD!3ar¢LBz""!KrB:r*!P!~Ag<}5"gXrY(~.K5PL!2CLDpW `2` PApO0:+l˸ 7;]5;qe J3%jgpY@h 3P$-|q fP<4ѫQc`I4:6Ul( "OyAipsBN MOo\>}O*HK55:|F&|_t'r1PR((Bx<[&Q9h$_+O| 7km'8P>ױkMCީ^c=#CՋ۱(AB "?}#V*Ng-0;C!Sө^%JqA6Ო}."B#mP hxPy133@@@!1/ q)g&01@}!ȴ6kجM֥G3@|U<Ch!ۙasa(.IÜ#ux}aQӸI v2qX>Ȋ;~S04nAC:jDdM\,A}#&nܡ|u@Ad-=JN>v> BS3]^16T"!32%t2 08m~Vپc.2;;6<3"*4,HS*B}ʲ XxY4Lo!vo _*,8t*SVMDPPYba-ɨB~aB5Bu9`uoV҃c$>"΄lh^C}Sp.6,A::ΰb5LՎ"> DNc G*^΃j?(w'+3s1""0OJAEeQn"0N1pi4ZD}\ )Y0VRzSCCQ(ԇa&0.?Qqnq jj8&֙1k^ %z_M1\o6>ьDA2ElkӰ$mm]bzf?ΏBD圪13!'8BX"j_L˴nߎ(ڴ66TxG}?h @ Gt2]M08Q=|+bEjsCEP 6vN2qq-O%1 G͇327+8 (͗'X-H}@9P^?SpŢ:OB/ZP2Chm9@72)0~4 5 $p99PXgb!h#t}D@6 $ !I},|IHyքHi T" 0YOP `!v!^c5w6+E&%,_Y8G7ha8]vS2|2+C 0^C2|1+Bp]? J} ͅk \B 058$0AK]8tH0$k8$5!8ԅ@E!S@AK-@3p]<+K}5!ȵy25-)2{";8HÎ/9 `b+AK —1]m<D P^\9OQ1x HFQ!AJZ=ML}m90090/1:x ]vs2:Z 9—3 %(1cqt5B!)6p P+AF@`+J!QcM}_@@@ "  "1Y  @ " 0Y  "1Y 0Y 00]? dG^#IAMd1!N}J!_(2"1 !qd!adA @AK25!  ]AK]$`] @ $k+8p]  $0AK]t!3 O}U(DP*))(K4XEMEMDEM.BASx[rK !@YK@*APc 4"̦ QYi9 @N8IdNh eb̀P}&E g7ÞsT&IMgó\"+`/ XC|k}l'ėtԾl}2^kiu*Ϡ .(v!W9lZpuaE(ElEexQҫGs8dS=Ns4aMR4G4N%fMK5qn l;[("m}މlg*dQRj$yb/uCE[m[W'-ז[<۪ϒݝۦZ7נ'IIٚD%DV~|4Gm?(]jƩõ9`@0[?}e@n}P(s1HKj1< A cHK90D#x;@?}}\udA4ea\޴wTMpK?0z) A߰v9-\7s%q2o}a3-Kv 8SC!'Mpz,4Q1rPI/f+5ftPfYr| En'c31iv?, @-p}b-bu)!l\|kք>!&>Ą$APi`cM7[vb@4y5}wFlqrdGUh(1ql`È1Uв 2dWx#fEg+@.q}"psE]'Pw}-DM0Ve@ҏE A@yZtG9lGᵥAPt֦!CJ9rE\lEpA1*DZa퓩$2I*D*\44## Eӥo`)sx}' :Y@>Y9"S9a@B/$]E7 .3P3;s;QfCS!r< ?a#{Ct/K,[27˒4ZbVToRevy}8JMYmP@Vf`!4WFAACqCtcRK4~DQ+EK;ƵT+! Ѕ4LEP1J. }4V+]uk[szO{70{G|z}g [zxeG",|} |14Xhp=w_LgWL?Ozvj''dih UVn yW9v;8M!R?WxT{}ZJ9g0dH[4CzBx:YfQDX41D9N!C4K2Lo FEaKLgH1LY&LtO T0bk|?T5" B0 d1T|}fi5[,0@R@! 6 BA=1G1 Z@ۙjBPž0 rl%" E@n'I75m>c/-`]Džw##bk0=At5}}%$Yj@b-n$/ w|1mt[e1 1I%28>lau{1$3E1y[`06@̌60R, ά,͍G\\\W~}<<<7Ҍ,ΌҜ,̍LUK'wMBb|QfvEQZLlQS<Yk;SEb Cc?RߑpXi/ K籡R0}QQ+QSґR\6gHQA!D]+r@SLSZ^1QbgkrADuy}Ae= _`5[H2H_/M9x&zc}{e#h$1% B3 ٤w\mG"U^k5@ vqO !HrLMtLOSh%: $4a F|jڲMیA SI4[< E@U }Nu%qDPX4J"Y:Pp' 1t$ax6<,U3:8HW2AJNT . S@H "9PRGTPJ,YKPN}Uy+ ~E`E +O7M1n]L-TBP-.TAJO@I`1NXNL G $"O@ 6"N0LPD VN4YhTR}H>hL 6F:r~t|I`A=SPcanPhd@)ld.!3a״*$^4l±8O4'Jo(@̕! K}P!8BECF@ @ m`>N Ar<**XNGrﳥA-qsVCE:F*fߢZQG%9oR_R^;}<5ޡKb,z( 1`p>2pAua֞@Y`Fr+;;NFy|`++| | |  |}`|` Л2 |`<ᡍ|`./| `1~oV|  @|+R!N @| \`}\ 0~oVO| ~+| P\I | \ / 3 \ 7fO8!/`\`|`}|`|`+`+^>-B(DQDIM$APvu~4-Ҧ36 ™9h׈_qP} D# a1U9Hb<%y @e2\li N6.*_#$Xf^D>'..,HaSf\_\йZ9HbaZJ24?}Dn14R!.*K\`0Ft6~oVO` *yMZX2HǏR!.Y4Q nO2oBqrfo@psX}("t7l`+CQ`Z~}ᐱ5`zVq4\W%RaR2pfMdU6Q`Z'DM5`%C`G Q`Z~(96uNC6ENoҟfدڟf?o(2ōP-}r4HTr^OtH0Rgh6 a[3 ~gUmQ0RITzN~(2믄inH /1e^勪ѱ QT6/,M4/#/_\ 2}H4#AY2Њ V`Z'zX2HǏChrNC6Dg,CBx((!/^"]{o&O42HǏsLMy$!)e}GEM֢VDT>Ds%QOѵf~oVrO 5lR8D*o!t7R)88"]{o[f?o%w! G UJƗ՟}>4ϥ|D4M4)Q%y@,{s}H#t8#*CDQ gmy>,HSI4kl2Hk*2`%yFGJ}EA!e"{y攵[f!bZJd at7֬R@DZ5||׀-YZؚ]]mڸ1>o8bٞᡝ٤mڸ-eڰږڱ]m}jE2>ͭMۛ{5mUq, =]+HޣHINDUSMOT.OROq< f1] y1d)A7dq &oȤ1fL:i޸< tDs1M9,@L0ul7mԙN n̨1J8R }čKR4IRD IH|q"4sր "'Qh7t@1M6e&&o1ð 3' M :p@)r2 Бs rșSD3t^~ eˊـ1kĞ };M87 ebބC&fd\ m#1oܷu!wƆ람tq%Fe('mˁFF[om[1Z{maTuf{T^odfF^p }VNtADfodT p8_ttރBjFkT0Gad {Zo$G^NQZ C 0@C 0 ]&[qeto!#wa]du1G2!QFdy[{ }ayut(wo\I0y#v:Gs]lўLyvhczAW^1*b ڌ}R]'i,uuzש}QZ1XFM׉JXFbz  KE1 }U 5VO]םw%Qfp -Đ JDۮ1Ѻ-&`̂m= qF-XVH5)Hn]퍑W{zh}|ZN;#5Э[uln[mhƗw }9WrdIdoڦAyPтPQʝt3> `ZrYG1ve5G(: tĦj٭VljFn|5t`˅dzs=тLa1gdqa螔D B(D }z^j!*F64v 4B8!Qh6U@1E2k8W) i69 r5d"d፼M@*W%;ͱN%#UiqPҀ,,"JV  }:Kad$YAtq3U !fZ'jMp54YF`)628SrPnz 6\]Xvu6AK^`;Q5iЬ!&K }o€MõdS<2fYjRF$A RpG1HcjnjjIpI!T,#R^(nMmdS!*@ fpIz5ȝ'I-(΃U }ar4T31dbFb(d͸$ID1]d5'RKIBX/eN7# @΀0D^nu(޲rlb\L eHjfS I☓H$ }jLV EwMryNUm[f3- e$db`S$efy!C 竎%-O;iDI^ i 5- i5AN0Xu&"Q AٌTt%$ @ } pD9pr0B˲VIHD)}S U /Q2!0{)2 iˇ '6D(oIb Q=7 eN&J@=ErIK!b3ڝz,~t }a*uR*SePװ2.k)Zֹ-@ "67533S>LMltJ:ذ0Я( q), r b;zV 0_{KH }rSedF9eLDiD ,qז:XΊ,ž3N/o%f:娕06])hΐ0=irƘc";$L@̖Ӏ<pEa`VoV' }Dx*6%j,-JL2r֩e,iYLpWj!j˱FΠŠٮk4$~S6][tVtW^AlU@gAXޖRaչ << }v4̄t#S3O^^ju [BzK`ߞ:4B5UV]49%`6ʆuN%NvX2XZﶧ֯\3C]4R|tW{ }Fs6A*aflNX75pQLBdj!$ h`DO"?VsfSpfTbpA6>P%XdwFFf=^Ä$q!vpNdQ HyEu:ya4u }L10gU'!ّJ-s,06eI/ eRgٳ84*S{g7.Kp E16H/ 36M)~MӍӭp76pp86 p֩006M)~MӍӽ6p6 p莶66M)~M}ӽ7p8p hө"/ 3 45RD Ver 2.3 7-14-86 (C) 1986 ICD Inc. 45Computer is: 6J 45128K - 130XE (64K)}L2 45800XL unmodified-- No RAM Disk Installed` < 45192K - 130XE (128K)L2 45256K - 800/1200XL (192K)L2 45}320K - 130XE (256K)L266 45576K - 130XE (512K) i? ɛ' 45-- No Drive Number Specified`L i2 i2 }22" )6 2<$ /ȱ ɛ-E6N2L3 45-- Parameter Error` k5 l56Q6' 45Error -- No Extra RAM F}or RAMDISK` 45 g8j 5 8 2 325x2ȱ2552 m5,20`}` 45 H6)]6-6MӍөBA@C* 5@68624 @2JJ 44i@4}4i424@i @4@4243 @i242h`@@`  AA}AABBBBMAIN L0 RAM-DISK"hE5hF5E5F5 Z5L<5F5HE5H`H}I BLV 7`16Lxԭ45S6JJI06 4ȩ40"N 640O46}46L6! 4ȑ4" 66R WPL62 83 3*,063*H3JJf2 @3)ӭR 46hm}6Ͷ6I)Y6-6MӍӠR 26)Ӡ64 62,өX`(`dhl $(,@DHL b}fjn"&*.BFJN |&8*93335N6~66655555555,6\6g66Y6j633n53j3xs5+9+999 9`8,9}-9 9m,9ȱm-9L8 9 m,9L8 9 9m,9m-9L8+9888888+9i +}9Ll899` 9 9`&8j5j5|/Relay-Version: version B 2.10.1 6/24/83; site pucc-hPosting-Version: version B 2.10.2 9/18/84 exptools; site ihnet.UUCPPat}h: pucc-h!CS-Mordred!pur-ee!inuxc!ihnp4!ihnet!bryanFrom: bryan@ihnet.UUCP (b. k. delaney)Newsgroups: net.micro.atariSubjec}t: RAMDISK256.ASM for 800XLMessage-ID: <294@ihnet.UUCP>Date: Fri, 13-Sep-85 08:33:57 ESTDate-Received: Sun, 15-Sep-85 13:0}8:22 ESTDistribution: netOrganization: AT&T Bell LaboratoriesLines: 391; Ramdisk Controller for 256k atari 800xl; by C}laus Buchholz, Dec. ,1984;;;; This assembly language program provides a RAM-DISK for the; 256k Atari 800XL described in }the September issue of BYTE;;; OPTIONS: Drive # and density;DRIVE = 2DENSITY= SINGLE;;; Equates;SINGLE = } $80 SECTOR LENGTHSDOUBLE = $00DDEVIC = $300 SIO DEVICE CONTROL BLOCKDUNIT = $301DCOMND = $302}DSTATS = $303DBUFLO = $304DBYTLO = $308DAUX1 = $30ADOSINI = $0C Acess to RESET initializationCHK}SUM = $31 Temporary checksumBUFRLO = $32 Temporary pointer to user's bufferZTEMP = $34 Tempo}rary miscellaneous useSTACKP = $318 Stack pointer savePORTB = $D301 PIA port B - memory control register};; Load-time code - Copy OS into RAM; *= $3000GO LDA PORTB Enable OS ROM ORA #1 STA }PORT LDA #$CO Zero page pointer STA $CC LDA #0 STA $CB SEI Disable I}nterrupts STA $D40E TAYLOOP LDA ($CB),Y Copy OS DEC PORTB Enable RAM STA ($CB}),Y INC PORTB Enable ROM INY BNE LOOP LDX $CC CPX #$CB Skip pages $CC to $D}7 BNE NXPG LDX #$D7NXPG INX STX $CC BNE LOOP DEC PORTB Enable RAM } LDA #$40 Enable Interrupts STA $D40E CLI RTS Continue Load *= $2E2 }.WORD GO Execute preliminary load-time code;; Ramdisk Controller Code; *= $CC00 Permanet Code - in p}lace of alt. char. setHOOK CLC Hook into all SIO calls LDA DDEVIC ADC DUNIT CMP #}$31+DRIVE Right drive Number ? BEQ HOOKEDOLDVEC = *+1 JMP * If not, goto SIOHOOKED TSX } If so, intercept STX STACKP Save Stack Pointer LDA DCOMND Examine Command CMP #'! } Format ? BNE NOFMT JMP FORMATNOFMT CMP #'P Put Sector ? BNE NOPUT JMP P}UTSECNOPUT CMP #'R Read Sector ? BNE NOGET JMP GETSECNOGET CMP #'S Read Status }? BNE NOSTT JMP STATUSNOSTT CMP #'W Write Sector ? BNE NAKRET JMP PUTSEC;; R}eturms - Restore Stack Pointer, report error status and return;NAKRET LDX STACKP TXS LDY #139 N}AK error for improper command STY DSTATS RTSERRRET LDX STACKP TXS LDY #144 Bad se}ctor error STY DSTATS RTSSUCRET LDX STACKP TXS LDY #1 No error STY DSTA}TS RTS;; Subroutine - set pointer to user buffer;SETBUF LDS DBUFLO Move from DCB to zero page STA} BUFRLO LDA DBUFLO+1 STA BUFRLO+1 RTS;; Subroutine - Prepare to access sector of ramdisk;SETSEC } LDA #DENSITY STA SECLEN Set sector length LDA DAUX1+1 Check sector # BNE NOTZ LDA } DAUX1 BEQ OUTRG Sector 0 invalid CMP #4 BCS INRNG LDA #$80 Sectors 1-3 are always 1}28 bytes long STA SECLEN BNE INRNGOUTRG JMP NAKRET Sector # out of rangeNOTZ CMP #2 } Check for sector # > $2D0 BCC INRNG BNE OUTRG LDA #$D0 CMP DAUX1 BCC OUTRGINRNG} LDA DAUX1 Sector # valid LDY DAUX1+1 LDX #$FFDIV121 INX Divide # 121 - Result} is bank #, remainder is page # SEC SBC #121 BCS NOBOR DEYNOBOR CPY #$FF BNE D}IVI121 AND #$7F Remainder+7;; Subroutine - Prepare to switch banks:;SETBNK STA ZP Save page }# LDA PORTB STA PBN Normal bank AND #$8F STA PB Bank 0 TXA ASL A} ASL A ASL A ASL A ORA PB STA PB Bank X LDA $FFFA NMI vector } STA ZTEMP LDA $FFFB STA ZTEMP+1 LDY #0 LDA #$40 RTI opcode SEI Disab}le IRQ STA (ZTEMP),Y Place RTI in NMI routine - disables NMI LDA PB STA PORTB Switch bank In } TYA STA 0 Set up Zero-page pointer LDA ZP STA 1 LDA PBN STA PORTB Swit}ch normal bank back in RTS Leave 0 in Y, bank # in X;; Format Routine;FORMAT LDX #5 CLEA}R BANKS 0 TO 5CLOOP1 LDA #2 CLEAR PAGE 2 AND UP JSR SETBNK PREPARE FOR SWITCH LDA PB } STA PORTB SWITCH BANK IN TYACLOOP2 STA (0),Y ZERO ENTIRE PAGE INY BNE CLOOP2 } INC 1 NEXT PAGE BPL CLOOP2 LDA PBN STA PORTB SWITCH BANK OUT LDA NMI ST}A (ZTEMP),Y ENABLE INTERRUPTS CLI DEX NEXT BANK BPL CLOOP1 JSR SETBUF LDA #}$FF RETURN A SECTOR WITH 2 $FF AND THE REST 0 LDY #0FLOOP CPY #2 BNE NOTFF LDA #0NOTF}F STA (BUFRLO),Y INY CPY SECLEN BNE FLOOP JMP SUCRET Done;; Write sector routine};PUTSEC JSR SETBUF LDA #0 STA CHKSUM ZERO CHECKSUM JSR SETSEC POINT TO RAMDISK SECT}ORPLOOP LDA (BUFRLO),Y GET BYTE FROM USERS BUFFER LDX PB STX PORTB STA (0),Y PUT BYTE I}NTO RAMDISK LDX PBN STX PORTB NORMAL BANK CLC ADC CHKSUM ADD BYTE TO CHECKSUM }STA CHKSUM INY NEXT BYTE CPY SECLEN PROPER SECTOR LENGTH BNE PLOOP LDX #0 } BANK 0 HOLDS CHECKSUM TABLE LDA DAUX1+1 CLC ADC #2 SECTOR # INDEXES CHECKSUM TABLE } JSR SETBNK LDY DAUX1 LDA CHKSUM LDX PB STX PORTB SWITCH BANK STA (0),Y ST}ORE CHECKSUM LDX PBN STX PORTB NORMAL BANK LDY #0 LDA MNI STA (ZTEMP),Y ENABLE }INTERRUPTS CLI JMP SUCRET DONE;; READ SECTOR ROUTINE;GETSEC JSR SETBUF LDA #0 }STA CHKSUM ZERO CHECKSUM JSR SETSECGLOOP LDX PB STX PORTB SWITCH BANK LDA (0),Y } GET BYTE FROM RAMDISK LDX PBN STX PORTB NORMAL BANK STA (BUFRLO),Y PUT BYTE INTO USERS BUFFER} CLC ADC CHKSUM ADD TO CHECKSUM STA CHKSUM INY NEXT BYTE CPY SECLEN } PROPER SECTOR LENGTH BNE GLOOP LDX #0 BANK 0 FOR CHECKSUM TABLE LDA DAUX1+1 CLC } ADC #2 JSR SETBNK LDY DAUX1 LDX PB STX PORTB SWITCH BANK LDA (0),Y GET O}RIGNIAL CHECKSUM LDX PBN STX PORTB NORMAL BANK TAX LDY #0 LDA NMI STA (ZT}EMP),Y ENABLE INTERRUPTS CLI CPX CHKSUM COMPARE CHECKSUMS BEQ GCSOK JMP ERRRET IF DIF}FERENT, BAD SECTORGCSOK JMP SUCRET IF SAME, DONE;; READ STATUS ROUTINE;STATUS JSR SETBUF LDY } #4 RETURN 4 BYTES LDA #0 ALL ZEROSSLOOP DEY BEQ STEND STA (BUFRLO),Y }JMP SLOOPSTENDFLAG = DENSITY/4 LDA #$20-FLAG STA (BUFRLO),Y FIRST BYTE TELLS DENSITY OF DRIVE }JMP SUCRET DONE;; VARIABLE STORAGBE AREA;ZP *= *+1 HOLDS PAGE # IN RAMDISK TO BE ACCESSEDPB *= *}+1 VALUE OF MEMORY CONTROL REGISTER FOR SELECTED BANKPBN *= *+1 VALUE OF MEMORY CONTROL REGISTER FOR NORM}AL BANKNMI *= *+1 FIRST OPCODE IN NMI ROUTINE - USED TO RESTORE NMISECLEN *= *+1 LENGTH OF CURRENT SEC}TOR;; RESET INITIALIZATION ROUTINE; *= $100 HIDDEN (HOPEFULLY !)NEWINI DEC PORTB ENABLE RAM }OSOLDINI = *+1 JSR * CALL ORIGINAL DOSINI ROUTINEMODINI LDA #NEWINI$&FF set hok for next rese}t STA DOSINI LDA #NEWINI/$100 CTA DOSINI+1 RTS;; LOAD-TIME CODE - INSTALL RAMDISK; * }= $3000DO LDA $E45A SAVE ORIGNIAL SIO VECTOR STA OLDVEC LDA $E45B STA OLDVEC+1  } LDA #HOOK&$FF INSTALL NEW SIO VECTOR STA $E45A LDA #HOOK/$100 STA $E45B LDA $FFFA SAV }E FIRST OPCODE IN NMI ROUTINE STA $CB LDA $FFFB STA $CC LDY #0 LDA ($CB),Y STA } NMI LDA DOSINI SAVE ORIGINAL DOSINI VECTOR STA OLDINI LDA DOSINI+1 STA DOSINI+1 J }SR MODINI INSTALL NEW ONE JSR $7E0 RE-INITIALIZE FMS TO SHOW RAMDISK PRESENT RTS DONE } *= $2E2 .WORD DO EXECUTE FINAL LOAD-TIME CODE@MIOMOD.ASCsf6 1rG8rl$% $y 3r)C7#9D9iܜ d$"R4IHRҌA1M(@ 2H)t@@ S n\}4LʤKDJC޴SOEAs2M9tLJ!B2RqF 1fR+r1>Zn'cH h?UycB<I}QQ;1GwZbx2 Qn`ݶ`%M)JĬf!Yj1DTJDR:, |C;Mt8'ދftFdmi 7}S=T6dbm O3?:E?qw^Z tG7Mp$onɳa)u9al\?>ƚS_yx]RNM箛FᑝƂ^2} ۸{'%pj\YauddMtk1 ]W#_}\[_ywT[o/ WIPQf8Is49I9Mध]2:A}' zS@dGiNm cN,˼vC=q6LP `/DfCzzaG?yJ#mEpЂd BLdR##xUࠎ`C1} ` E.ѻE$#yTJJh[!W':~Hd8հ@ 7 BK'rX_h7k&O*(Rsp:}QBM42.ObJ31}$dc0Q :GRU UO٦4%\*.&!'*E'AjCFȄaN*GX)fn/{ ?1C V* $dZWd' $~;gD'ɬy=<}v`'NHܧ?±n ^ s&_p 3TFxB53sppLbL"?&Hc 6n\(R+  &y5aMA bH j}WU(,r |'M3 SA ʂS: hhSbp2 @JVIj$J*Ҫq-ke `!$3hG&$m e/ӚMbG5B /S}~t`k"載'2Rn\ 3 ś%2p1ǘNَ'R ,6T*])gX_`=V*Y>, JHpPh.}*ȰLYyBZ;ɧI:BybZꬃi|ڍD>BI8AG=\E`U=T/$)f+IR9V%jMo&*Q9;*9}$Vd\ &q-~ty=PN$%ʄ2iqIA;:BvFvW[W%ع\k*"v((5:J &0S } oɚsB>__LQk+q0egrcN2KFc7oG,#}nPBur'NgU^axLsQp_"J0#Ft8Of2.Z]@zBڴ"A(tF$jP0k(;>/RR$qԇx 4O$}h,V?a*!O+eP_++!gDv|bbXc'*fa#'p" C(!2u҇bc^Ӄ?Ha_5'!!2˗hku@ !2*3xJD%}fCU_}(GH\h8%x&a3$A'@!sJnMRSNQ+'8_;K2pB2waȧ|||s&{ L2l+{B&ڳTh(e&}S=D!K@R|1|7A Zx[h h~(O2Zh^uAdi'DrF(0ZajF(VA(W$2γ7r'}3{H5zr,aԖ!JtQu`hT3,%TRג@C™b1!!09u.SF9CAr`A^(IU|+D#OP@(}{(V6%cd!9ăsqkiL$F5OWA)fahgAb&w@7 ;dIX:]3. VH@Z[;e`-uOS6^ Zz2}iq!$."OH{uQ*9 (]{"1un<:vĨR_?+a>VYҒ_f%\şL8z1*U '/Q+p@{R;dy0"5%߁^כH3}NXo`9OջKX@#{ArPwU5J&jŷx6C2kQG)ʹi!]ǡ1Cᅫ5f,m'qHbnQFJZشMoR|8HEZt4}"I1M 9;rYzD-HqF|1Raf7&UɾnL$8/A*ZdIQ1#[77AZQ"@bۀ4T 8,F5}ɸy|!?UK }ӟa:Oh"VW̡MT u;Nu!P7-3XzqGz8q2%HUR.1E*%;!m0&mZ>6}!0 "tX'RvD1ɜrs^1v )R5%򒚶.389 q{N Q0N-`AXbehz7}.RVT*TAWS2hRTj3H*%Rs Te1̨:rOC(r |Z sۈ{ b%.}Iqj$n pos6CуrkIH%8}"'_P7ku_y"z#A4/L;%FNtu!L0{}nJo:'^Mĝ(8x oPj-l1yP߀HnRP\Qqlc-u9}^eJܲUC+ֶdp5MT)Yt-B07$2)r61Fpa~ Fhc^~C_lb%3U?d"/{y=GDZ} ȡan:}iQb`"}5E0%7E6$RU@ϮYf?X|Q40]D|ߩO;}U|Q4`>`\%<ȡ*p3*%)*e70UP4`-`|P4P-`fP4`6$?O36%?_-`<},66O?-`\du~ ^(pcpcH*euZ(@7%R**Z,**A=}7q#d[T@;^S- kd0 Q{3d`@1#`ed)"1#T o+h#Gz;l.)<y'aP9/o Uo&R&($X4%>}$3 d/zBeO'g^eN-Z2>4l"wlyvLW@џp+B}Z?ֱj^BP4VyhU:qi~Hag1;cORZZ\Jp燹7ь^!yDy YCd[Lbw=M$<.AFk$'/Yω%\7C}{6J/9˒:S;N)SE%:H}54&xXBs gLH@5XP 3_$+%*GzGT^AI:Vǎ5QhtQwO!a2@|׻Z"q"qI} RDnp!xQEP E0&HE}iz2SƁIZDCXłKq)#h@EK? G`ER 0SƱ73qBBBBBBBBBBBBBJ}BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB1&0آ 6+B/D/E J VӍ@ӭ@Ӆ /t/0=ύ@ϭ@υ0/L}t/0 %5/ #+L& $XiPD.YiE.:0.1 6+B1D/EJ V@T/ #+ BHI M}V12/(010Ǡ/ #+ V/Y杩(/ #+ >+0B'D0EJ V0BAD0EHN}I VP0SoŰiKC0 #+ 0 #+ BHI VYN 0 6+L&00 #+0NC0iL[O}' 6+0 6+L& >+%20 #+ 30+030ii恩0 #+00 #+B0D0EP}J VBHI VƋ3 V䤉E3 VƋ V䤋Ƌi惩 VƋBeD@eE8冝H凝IQ} V䥌u333}H}ICɈ?ű i08 iL( 0 #+ 6+ix=扢 6+ň0R}'Ņ!űi08 iL(/ԍТ@0f0^.S0+ \S}ԩ0Iu3i3i@30 80 i3 . ,柩MЅ% G+IT}00f0L+'iЅL+L*L*xHhL* L+L+LE*U}L&!拥ʼnL)L)L@*ƋʆL) G+L@*HDE BLV BLV䩥0`xҥ8V}0`HHH) ԍЎЌЩ+hhh@HHHo ԍЎЌhhh@e+L,Ɵ+/f.-/.E3)W}E3)oЩ & & &ii08 [0^0i.1i"/ԠHЍЩh @`X}i晠\i`晠`Lb & &ei%i20ƞ0Ѡ0S0LY}b䤢P+/i -(*&J - -" - -L,- ^-Ɩ楗Ɨޱ - -LZ}R- ^-Ɩ饗ƗiP撥ŧ,Ũ&#i(ii(i`Ɣii(iŒhh`撥[}iőH& 捥08 i@h`P+/ -ƛƜ`ppPBZ/B\}A:.pY0OP]}OA^.E:K:S:Ϡ^}͠ġ͠ԮWhich driv_}e (/)? Sow all pictures (/)? es/o=Select pictres =Restart --> Loading ٠̡D :*.PICD : `} pY0&orward"ack%xit&orward"ack֡00&a} CCD^qDFDTFILEFNFFNTCOPYBUFFSIZBUFFERBUFFEBUFFCKEKENCO!c} dԮӢ!d}n##@@K:xGG;@,;@,;@,;@,;@,;Ac,ycc6!e}7@,.P Dh hhۅthh hh hhhh֦۩B֝HםIݝDޝzff67@,.SE V2!f}ڽHؽI٦ܩ B؝HٝIݝDޝE V0Ԧ۩ B VܝBLV}6-B;,6-C:, 6.D1:TRANSFER !g}FROM 6.D8:TRANSFER TO?6-F:A,!6-F:A,06-F:A ,?6-F:@,KA @'A!q}BRAMBOOT ARCB@XEMEM ARCB8\VARIOUS ARCBINDUSMOTARCBRD COMBKRMDSK32KSRCB:MIO256KTARCBKSLIDE130COMBbXFERIT BASB{VAR_README B5|BABYLON ARCBvREADME DOCREAD3 ME READ4 ME READ5 ME rREADME DOCA9AKAR@ >:A%,6. 6. 6-@!r} Ap*-@@* From  to @-@@@ &" !s}A ",)67@<@,.)67@,.6)67@<@,.)67@,.@"@A@J-@!t}  T&-@%@&  copying-->^ @@h @@r!u}""7@,4DOS.SYSA|##6-?:C:,<@<@<<,@@6-%@ A!v} F:A,@A@RUN "D:FILENAME.EXT"-@  ?-@@2 Finished - PRE!w}SS ANY KEY?)@N }A!A-A 9@KARN-@A!x} A "-@  #$VF:A,"Ap,-@%%@:  LA!y}@HV A&? >:A%,"-@@<  error....#F:A,?XDDDOS.SYS,NOSUCH.FLE,DUP.SYS,AUTORUN.SYS!z},AUTORUN.BAS,RAMDISK.COM D:XFER2.BAS ,There are two mods in this file:the 512K xl mod, and adding a monitorjack to a 600 xl.$YBABYLON.DOC|t B:a 'S@H D8g!S<̙BHl޸DKH!L2d@y#D 0`4rI6ITt)}}&g@$f RsмCRtހh3&0n@:OByN:e; >-YZ:`D}XGN5c)}MHo8A"a[w<G 91ccp-EurW50K UaU;jAU5i(=Dq9ոZ¡I SG4'Nj'5GBB)}6x٧֫|TG"`aE¦B34##: yWc*"iɡ`AGD2A*Ե)}[R`UHOiD~wq!&'hL8rh1G)WU0! "!"C`F ߃Hd A|I܃iD/] 7&.MA]*{)}ɦYÁ02a!!dpx pV2&gň!UOED=a=$!e44Ra= "OA$!xp#18#mbe/:8Q;)}iFd>؊"s 7i->T.)/^,A]^!|$.'>bpSE%lNYHdazSn+A"GPBS)}@)lLVS=aљ1U!En/3EBOauSϕ#v_!٥MCh~;SM_ItTqI,nmghh(u.57 $2,~T8^g)}FrH 2u,D2I<-q2}veI Ol)A,r7T i a+#OFҠ@i!X!paU) )}$`0C0q-QJr ևkxR>8,b0b=M]##7qIB@ԁs#k@0qh+#5R=\q&t #4Ii8//dhq#h q``k<d6C0Y-0}Jݹ &Fbx<c@ya D!D+)}iZ(u3x/pI#ALNq"Dp8;mp{=lg,Ig+ao1B8 ""&$0yY$$B4W-83+e//#ѮǃB\!1)}&{ !Q_hAyNO1uYSr2#7&C b_) '۴*b jCX[+]+3O|d8..p.Pq4803&s3K SUPER)}OS.ARC }@ SUPER.COM| Z{ 0p,b- |昙s  h@1txRhZRk`f9(E9zL%)}D6/FhDDVf> 90D 4|` '` fGl?e\`@*Hߑ 4"@) .q+ZQ˯1< )8(#+*Pр~,yN\d!xAiǐ'3l)})bD4!) yCg sTBPNPUc0`0 @R fcԠ)PP:`jؐ)}p 0 ^EH,Aa  tO.S&D@alPxe VDZ3VOud8"NЬHk0,@%#SUPOS.DOC)}n}e S@)"ē) D0cФqS0n sb:iؤ7r@ԙSH4 蠩($,L8&2w|zsFN2e\HBK6lB}sD7ubAN8)} ݀(b1o|ciϦ Z'%گˤlS ʒtQŦMSL1aaӨw䌬hFΛ6 HЀ !F PiȨsdFMY 29[TSb`aTlxRC)}:tʐ1gQ:s&WAo^1 <^pMDH)2JSt΂ʦ='M6r?%PEUDEƆtegp%RTHG!TI0N