             @L  }5 _$% l0$)$$Hȱ$ UhL"
`e$$%`$%`  
R@P!( L(1 	
	 Y	I`  d L  d
M
	*@ $%
C C$$)%1 Udߥ$9%:	 !0 S$% D D˙`  }J)Lr d
M
	*@ $%
C C$$)%1 Udߥ$9%:	 !0 S$%  }D D˙`  }J)Lr J	 ((	  p	L ()   J }L=	 (	 L	0q A 
 IB JC  ;? D W	  } LL  

 ` W	)LA! 
߰ ")-݆ p"  }	 $G@LL 08` Q")<2Q0 - G$Ș݆ UL#
 ;
 p8(()(0ʥ)NQ` 	} $GȘ݆LU )L݆ 	 L	GȘ
݆LL )W>Z  HH)H  
}p	h  hyhy D  L> L
JJ   !
LA *` BF }7'8 
MHNH`8Z\LdJJ! "!GFE@F (!L } EE  ! E^^E
E7 EȩEdE/EȩE   D } .L } 
;F d   ;?F7F?( .  Z D LL d   } . D  L   p	  E` ,  d) D L)  0BM݊L݉ }  ML 
N݆ L NLML [ TEqEHȱEqEh  0GȹG } HLL	GɛL  LFREE SECTORS  G) *Gȩ GȽG GȌ*jj>G }<Gd R
 R R +G `DC8CD 		0GDC`$0d:ȩ $.ȩ },*	?%$?0:)A[ ;г; I` piN A  }#0!)C)Ϣ ;?08I` } `L0
	
 0"L JG}GȽ }G  L  }`8L`Lp8`  04}G)݁,G)ȱGȱG }Hh0})Hh ` B! 8`8ii(ZE6!JS Sd!  E  ` T } E 8  8LFEh
 r9L ) 
EiFi (LdE E`dE`H) }h/H^ji
hEEdEiEȱEi E`	WE
QEEHI8
*hd)	 }8EEȱE EE` I
!ʽ)E1F5I!	 !ȘJH jm9Ghm:H` 	  }!`GHLl Z dL  ȩ 8 lI0
` _} ;
$% pLl`  }ݚI(`DOS     SYShChDC
IC`0I B0x

D)D`}Need DOS2.5,type Y  }Λd           dddd   J  |\      DOS     SYSCOPY3TO2COM                                                  }               B}         B }                                                                                         } C   DOS     SYS                                                                                                             }    
CC*(> C8jJ3 j2CD(	C202C Ԡ BX`   
N
1? lLlD:RAMDISK }.COMLu L1  L	;LHL     
 T`
 `8 
ɐ
  `TU   } L ? .  t `      GBJ ~DEH IB V0dV !}QDEH I VF9 ,0  ,0 s0hhL
 L ` H hDHEh "}DEL8HI40HI,00 9  .G VLO #},0 L4*IJ`ll D1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D8:MEM.SAV J y08B|DEHI $} V0 0 `B;DEL`?<0LV`@  ʆ v s ? F0Ξ05: [ B DEH I %} V Y8  B V@/DE  `E:D8:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO  &}STILL RUN DOS B;DEJ  (`  9 V ⪍  ઍ  - '}LLu ÝDEH ILV 9  .l 9  .l `` s $B BH (}I|DE VBLV n B,DEJLVB V BLVDEIʩ	BꭝLu               }3E:}DISK OPERATING SYSTEM II VERSIONˠMODIFIED 1987 S.A.G.HOLLANDA. DISK DIRECTORY  I. FORMAT DISKB. RUN CARTRIDG*}E   J. DUPLICATE DISKC. COPY FILE       K. BINARY SAVED. DELETE FILE(S)  L. BINARY LOADE. RENAME FILE     M. RUN AT ADDRES+}SF. LOCK FILE       N. CREATE MEM.SAVG. UNLOCK FILE     O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S	 vL/ ˢ  L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,'
ȅ 1 1il d! 1L!NO SUCH ITEMSELECT.} ITEM OR  FOR MENU! 0 .z:*{}.|{   1 0 0JB 18 L% |DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN!B 1L!E# 1  !BD0}ED:}:1BJ|DE 1DEB  HI 1 h0ߢ  	0.1}
0 ?詛 1 y0YЛ   1 ;#L" ;#L!BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED    BANKSW  ATW 013    COPYING---D2:BANKSW.ATW    l# 0 |D  .L/%#3} # #JB|DE 1BH ID#E 1#0:B 1L!#͑###B 1#c$0SY4}S1}:## #
# .#Ƚ# #𩛙## 1,#PD#ELJ- <.BJD#E 5}1  1HH 0hh |DL%1}:̳# L% #D#EL%  1 0  .  .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K<C8E L%S(BJ 1 |KE L%|# 1 L!CﮞAD	7} JB 1 KBBDDEEHI VHHIIH 1ɈL1B8} VB VI' ,#L#L!& 0 0 0 & B 1L!RENAME - GIVE OLD NAME, NEW}:)LS)''9}' 70 2i0H'K' 00' 1 y0Y'! 'L!BJD'EJL1WHICH DRIVE TO FORMAT?TYPE "Y" TO FORMAT DISK 2D2:':}U' 1L! v_ \b \LNO CARTRIDGE' 70 2 0P vL RUN FROM;} WHAT ADDRESS?TYPE "Y" TO CREATE MEM.SAV' y0Y s0( 1 L! FL1MEM.SAV FILE ALREADY EXISTS( 70 2 0	0+)<}') S)) 1 y0Yr( 1B*D)EJ 1B 1.{+)} 1//3Hu =}ξL/L!DRIVE TO WRITE DOS FILES TO?WRITING NEW DOS FILESTYPE "Y" TO WRITE DOS TO DRIVE 2.D2:DOS.SYSERROR - NOT VERSIO>}N 2 FORMAT. t*
5) 1L!`) 0 NΞ 0  L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE!  +L1
 
`*  70 2 2A} 0.* 1 y00)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 
N, 1L! , B}C, t*
Lx+ ,0
^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ,0
}, 1 y0C,ШC,	0K'!"
HH 'hh
Lx+!EF 5L1L!D,I, HhD}`
NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`
`8 rL1`-* 1P* 1 y0Y `hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L#  .BJ 1 
DEHIB V
L1
,} 1 70,L. 	G}JB|,#P#DE 1  HIBDEHHII 1B 1
,^ 1 70,0La-B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj 383 }m m
ݭI}}`8} ` `|*?	ɛ,`|: -)|/ 1L!`DESTINATION CANT BE DOJ}S.SYS0  0H{ 24Δ 28/L!/) 2Π 2 0ξ K}hAΞB,0	J 1BDEH I,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O  S0 1`BDEPH I  V`  S0H 1 L!M}0
0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ |ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONGB  VL!` L1 I
H1EΝDL1|mDi E` V0`8d/8
i:222 1 LP}!ERROR-   164 ɛ+,' 20*..өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800
08
00 `,0'D800	H,ɛh`2L1NEED D1 THRU D8     uR} ECIMAL PARAMETER800
08
00 `,0'D800	H,ɛh`2L1NEED D1 THRU D8     u  00}   Setting up ATARI 130XE Ram Disk            }   Setting up ATARI 256Kb Ram Disk T}           DDӅ)ӈDD̍DD)DDХ̍ӥ` O2L1 B D0EGH I VU}01
	
  BםD1E JK V B۝D1EJ K VB DHPEI V`B V V}BD1EJ K VB DPEHI VB V BD1EJ K VB V8?`D8:D1:DUP.SYSD8:DW}UP.SYSD8:MEM.1m2SAV̅Ω ˅͠ H) xHIhͭIhXئ׆ǭIӎ ` BGD0EGX}H I V`0  m 4	5L̺8!LPL`RLSL<WL`ͮ pLTή pLTήY} pLTέ23`uέ
uLB	

44*4*i4JJi@9p TέӍs)rΩ qΊqZ}Ί@r΍rΊ)

r͍rέ45 @x4`@ ̭q΍ ӭr΍Ә8u9s΍ө  ӭtΑ4X u̩  2uL[}d u̩ 1 ̱2qΎ ӮrΎӑ8sΎӢ  e11uڢ

*	` ̭
)1qΎ ӮrΎӑ8sΎӢ  Ӡ tΑ4XLd u̩ 1 ̮qΎ \}rΎӱ8sΎӢ  ӑ2e11uoڢ

*	` ̭
)qΎ ӮrΎӱ8sΎӢ  Ӫ tΑ4X1LSLd u̠ 2ɀ ȑ2Ld]}Iӭp΍ ӭIө  ` өp T  ` BJBL#DZ̭[̩ Z̍[˭̠ ˍtΥ 
	^}
 LC C3CD4:	D3:	 B DCE V`BDCE V`@CCD1:DUP.SYS	 B@DCEJ K V`B DP_}E H#I V`B V`CKDD4:DUP.SYS	 BDCEJ K V`B DPEHI V`B V``} BBDDEJ K V B V4? BADDEH ILV}D4:MEM.SAV BPEHI V`B V` [1d EIn #X;x #X; #X;ˠˠҠ #X;b}Ҡɠˠ̯Š #X; #X;ǠɠӠ #X;ŠРc} #X;Ӡ #X; Ƞ #X; #X;d} #X; #X;ǠӺ #X;e} #X;Ӡڠ#X;ҠΠ#X;ӠΠ#X;Πf}Π"#X;̠٠,#X;6#X;@#X;g}J#X;ˠ̯Š٠ŠT#X;Π٠ӠΠ^#X;h}h#X;r#X;|#X;͠ĠĠ#X;i}Ġ٠#X;̠٠#X;#X;j}#X;#X;ǠɠӠ#X;Ӡ#X;k}ĠΠ#X;#X;X;X;X;(X; OPTIONS: Drivel} numbers and densityX;  if DENSITY=DOUBLE!X;      then DRIVEA=DRIVEB !!!&X;0X;:X;DDRIVEANDRIVEBXm}DENSITYSINGLEbX;lX;vX;ӮӺX;X;SINGLE;;Sector lengthsDOUBLE (DDEVIC ;;SIO Device n}Control BlockDUNITDCOMNDDSTATSDBUFLODBYTLODAUX1
ICHID@ICDNOAo}ICCOMBICSTACICBALD ICBAHE*ICPTLF4ICPTHG>ICBLLHHICBLHIRICAX1J\ICAX2Kp}fCIOVVpDOSINIz!CHKSUM1;;Temporary checksum1BUFRLO2;;Temporary pointer to user's buffer)ZTEMP4;;Temq}porary miscellaneous use)ZTEM28;;Temporary miscellaneous use"STACKP;;Stack pointer save1PORTB;;PIA port B-r}memory control register"PORTA ;;PIA port A register*PACTL;;PIA port A control registerNMIENX;X;s}X; Check for 64,128 or 256 KX;'X; Load-time code - Copy OS into RAMX; 0X;$X;.TXT130A}   A8)ASt}etting up ATARI 130XE Ram DiskA=BA            ALAAVTXT256A}   A`)ASetting up ATARI 2u}56Kb Ram DiskA=jA            AtAA~X;X; IF $D0=1 THEN 130XEX;X; IF $D0=2 THEN 256Kb XLv}X;GO%>;;START TEST'DD
QPORTBPM>
PPORTB1 'DD
Q
PPORTB)DD(	FNOXE2Q<M>Fw}
PPORTBP)DDZ
HXL256dXE130Q>nPx	HNOXEXL256Q>PЖNOXEQ̠
PPORTBQдR>FXER>Fx}XL:XL PTEXT!COS
XE$> Q>PICCOM9Q>TXT130"PICBAL9,Q>TXT130 6PICBAH9@Q>GJPICBLy}L9TQ> ^PICBLH9h	 CIOVrQ>|PPQ
L>P
 $> Q>PICCOM9Q>DRVNUMPICz}BAL9Q>DRVNUM PICBAH9Q> PICAX19PICAX29	 CIOV&$> 0Q>:PICCOM9DQ>DUP1NPICBAL9XQ>D{}UP1 bPICBAH9lQ>vPICAX19Q> PICAX29	 CIOVQ>PICCOM9Q> PICBAL9PICBLL9Q>PPICB|}AH9PICBLH9	 CIOVINXT)>FNXT: NXTQ>*PICCOM94	 CIOV>Q>H$> RPICCOM9\Q>DUP8fPI}}CBAL9pQ>DUP8 zPICBAH9Q>PICAX19Q> PICAX29	 CIOVQ>PICCOM9Q> PICBAL9Q>PPIC~}BAH9Q>PICBLL9	Q>	PICBLH9		 CIOV$	Q>.	PICCOM98		 CIOVB	Q>L	$> V	PICCOM9`	Q>MEM8j	PICBAL9}t	Q>MEM8 ~	PICBAH9	Q>	PICAX19	Q> 	PICAX29		 CIOV	Q>	PICCOM9		 CIOV	Q>
8	P?	:	DRVNUM}AD8:A= 
DUP1AD1:DUP.SYSA=

DUP8AD8:DUP.SYSA=
MEM8AD8:MEM.SAVA=
COSQ>;;Zero page pointer(
P2
X};<
PF
Q> P
PZ
Pd
%> n
LOOPx
"QNMIEN;;Disable NMI interrupts
5;;Save NMIEN
M> 

PNMIEN
=;;Disable IRQ}
Q@7;;Copy OS
5;;save value

QPORTB
N>;;Disable OS Rom

PPORTB
7
P@7

QPORTB
N>;;Enable OS Rom
P}PORTB7PNMIEN;;Restore NMIEN".;;Enable IRQ,36	HLOOP@$J(>;;Skip pages $CC to D7T	HNXPG^$>h&rN}XPG|#Ά2&̚	HLOOP
QPORTBN>;;Enable RAM OSX;
PPORTB&PORTA;;PA7 = 0:X;	PTEXT$> Q>}PICCOM9Q>TXT256PICBAL9&Q>TXT256 0PICBAH9:Q>GDPICBLL9NQ> XPICBLH9b	 CIOVl:v	}GOX;X;X; Ramdisk controller code"X;ˠŠӠ̯Š"X;̠ҮԠ X;}X;HOOK,;;Hook into all SIO callsQDDEVIC
ODUNIT%> ;;Drive A offset%R>1DRIVEA;;Right drive number ?F}HOOKED %>;;DRIVEB offset*R>1DRIVEB4FHOOKED>OLDVECH!;;If not go to SIOR
HOOKED\@;;If so interceptf}&STACKP;;Save stack pointerp'ZTEM2;;Store offsetzQDCOMND;;Examine commandR>
!;;Format ?
HNOFMT!FORMAT	NO}FMTR>
P;;Put sector ?
HNOPUT!PUTSEC	NOPUTR>
R;;Read sector ?
HNOSET!GETSEC	NOSETR>
S;;Read statu}s ?
HNOSTT!STATUS	NOSTT$R>
W;;Write sector ?.HNAKRET8!PUTSECBX;LBX; Returns-Restore stack pointer,report} error status and returnVX;`
NAKRETj$STACKPtB~$%>;;NAK error for improper cmnd'DSTATSQ> 
PPAFLG
!PA}OUT
ERRRET$STACKPB%>;;Bad sector erro'DSTATSQ> 
PPAFLG
!PAOUT 
SUCRET
$STACKPB%>;;N}o error('DSTATS2Q> <
PPAFLGF
!PAOUTPX;Z-X; Subroutine - Set pointer to user bufferdX;n
SETBUFx'QDBUFLO;;Mo}ve from DCB to zero pagePBUFRLOQDBUFLOPBUFRLO:X;5X; Subroutine - Prepare to acces sector of ramdisk}X;
SETSECQ>DENSITYPSECLEN;;Set sector lengthQDAUX1;;Check sector #	HNDTZ
QDAUX1FOUTRS;;Sector }0 invalidR>
EINRNS"*Q>;;Sectors 1-3 always 128 bytes long,PSECLEN6
HINRNS@	OUTRSJ"!NAKRET;;Sector # out o}f rangeTNDTZ^R>;;Check for sectorh
DINRNSr
HOUTRS|Q>І
RDAUX1
DOUTRS	INRNSQDAUX1;;Sector # valid
}PZTEMPQDAUX1
TZTEMP;U?;;Divide # by 64-Result is bank #, remainder is page #
TZTEMPU?O>;;Bank #>}
QZTEMPV?V?O>@;;Remainder+64&X;0+X; Subroutine- Prepaire to switch banks;:X; X is bank, A is page #DX;N
S}ETBNKXPZTEM2;;Save page #bQ>;;PA7 outputl
PPAFLGv
 PAOUT
QPORTBPPBN;;Normal bankM>PPB;;Bank 0}Q> PPAA;;Bank# in accu,R>;;Bank# <12 ?DSBNKA;;Yes,jumpQ>;;Banks 12 to 15PPA;;PA7 = 1	SBNKA}A;;Bank# in accu,R>;;Bank# <8 ? DSBNKB;;Yes, jump*Q>@;;Banks 8 to 154LPB>PPB;;PB4 & PB6= 1H	SBNKBRA;};Bank# in accu\M>;;Only bits 0 and 1fT?pT?;;Shift 2 pos leftzLPBPPB;;Bank X in PBQ;;NMI vector
PZTEMP}QPZTEMP%> Q>@;;RTI opcode=;;Disable IRQ3P@ZTEMP7;;Place RTI in NMI routine-disables NMI:;;Leave} 0 in Y, bank # in XX;X; Format routineX;
FORMAT$>;;Clear banks 4 to F
CLOOP1$Q>@. SETBNK;;Prepare }for switch8QPAB
PPORTALQPBVPPORTB;;Switch bank in`Cj
CLOOP2t P@ZTEM27;;Zero entire sector~3)SECLENH}CLOOP2?#ZTEM2;;Next pageICLOOP2QPBNPPORTB;;Switch bank outQ> 
PPORTAQNMIP@ZTEMP7;;Enabl}e interrupts. 2;;Next bank
(>;;Done ?DCLOOP1 SETBUF(5Q>;;Return a sector with 2 FF's and the rest 0's2%}> <	FLOOPF)>P
HNOTFFZQ> d	NOTFFnP@BUFRLO7x3)SECLEN
HFLOOP!SUCRET;;DoneX;X; Write sector r}outineX;
PUTSEC SETBUFQ> PCHKSUM;;Zero checksum$ SETSEC;;Point to ramdisk sector	PLOOP*Q@BUFRLO7;;}Get byte from user's buffer$PA
&PORTA$PB"&PORTB;;Switch bank,#P@ZTEM27;;Put byte into ramdisk6$PBN@&POR}TB;;Normal bankJ$> T
&PORTA^,h!OCHKSUM;;Add byte to checksumrPCHKSUM|3!)SECLEN;;Proper sector lenhth
HPLO}OP$$>;;Bank F holds checksum table
QDAUX1T?QDAUX1U?(L>`;;Sector # indexes checksum table SETBNK
}QDAUX1M>?QCHKSUM$PA
&PORTA$PB&&PORTB;;Switch bank0P@ZTEM27;;Store checksum:$PBND&PORTB;;N}ormal bankN$> X
&PORTAb%> lQNMIvP@ZTEMP7;;Enable interrupts.!SUCRET;;DoneX;X; Read sector routine}X;
GETSEC SETBUFQ> PCHKSUM;;Zero checksum SETSEC	GLOOP$PA
&PORTA$PB&PORTB;;Switch bank}#Q@ZTEM27;;Get byte from ramdisk $PBN*&PORTB;;Normal bank4$> >
&PORTAH*P@BUFRLO7;;Put byte into user's buffer}R,\OCHKSUM;;Add to checksumfPCHKSUMp3z!)SECLEN;;Proper sector length
HGLOOP"$>;;Bank F for checksum table}
QDAUX1T?QDAUX1U?L>` SETBNK
QDAUX1M>?$PA
&PORTA$PB&PORTB;;Switch bank#Q@Z}TEM27;;Set original checksum$$PBN.&PORTB;;Normal bank8$> B
&PORTAL>V%> `QNMIjP@ZTEMP7;;Enable interrupt}st.~(CHKSUM;;Compare checksums
FSCSOK$!ERRRET;;If different bad sector	SCSOK!SUCRET;;If same, doneX;X}; Read status routineX;
STATUS SETBUF%>;;Returns 4 bytesQ> ;;All 0's	SLOOP P@BUFRLO7
1
ISLOOP}R>DENSITY(
HSDONE2Q> <3F0P@BUFRLO7;;First byte tells density of driveP	SDONEZ!SUCRET;;DonedX;nX;Subroutin}e for PA7 outputxX;	PAOUTX;
QPACTLN>
PPACTL
QPAFLG
PPORTA
QPACTLN>
PPACTLQ> 
PPORT}A:X;X; Variable storage areaX;"-PAFLG;;Flag PORTA,$80=output,0=input,6PA;;value of mem.contr.reg. f}or selected bank66PB;;Value of mem.contr.reg. for selected bank@5PBN;;Value of mem.contr.reg. for normal bankJ}=NMI;;First opcode in NMI routine-Used to restore NMIT)SECLEN;;Length of current sector^X;h"X; RESET initiali}sation routinerX;| ;;Hidden (hopefully !!!)X;
NEWINI"PORTB;;Enable RAM OSQ>
PPAFLG
 PAOUTOLDI}NI# ;;Call original DOSINI routine
MODINI(Q>NEWINI;;Set hook for next RESETPDOSINIQ>NEWINI PD}OSINI:X;$X; Load-time code-Install ramdisk&X;0 B:DODQNR>X	FCONTb!ENDlCONTv!QZ;;Save or}iginal SIO vectorPOLDVECQ[POLDVEC%Q>HOOK;;Install new SIO vectorPZQ>HOOK P[)Q;;Sa}ve first opcode in NMI routinePQP%> Q@7PNMI(QDOSINI;;Save original dosini vectorPOLDINI }QDOSINI*POLDINI4 MODINI;;Install new one>Q
HL>;;DRIVE #3&4RP
\1 ;;Reinitialize FMS to show ramd}isk presentf!BEG;;DonepX;zX;!X;FORMAT CODE - Format RamdiskX; CAD4:A=	;BAD3:A=	;BX;BEG}$> ;;IOCB # 2Q>;;FORMAT D4:PICCOM9Q> PICBAL9Q>CPICBAH9	 CIOV
IDRIV3$:.X;8	DRIV3BQ>L}PICCOM9VQ>`PICBAL9jQ>CtPICBAH9~	 CIOVIDUPOPN:;;Error-returnX;@CX;X;DUPLICATE DUP TO RA}MDISKX;AD1:DUP.SYSA=	;BX;
DUPOPNX;$> ;;IOCB # 2 Q>;;OPEN D1:DUP.SYS
PICCOM9;;FOR READQ>@P}ICBAL9(Q>C2PICBAH9<Q>FPICAX19PQ> ZPICAX29d	 CIOVn
IDUPRDx:;;Error-returnX;X;X;READ D1:DUP.}SYSX;	DUPRDX;Q>;;GET BINARY RECORDPICCOM9Q> PICBAL9;;BUFFER AT $5000Q>PPICBAH9Q> PI}CBLL9;;$220B BYTES (8715)Q>#PICBLH9"	 CIOV,IDUPCL16)>;;END OF FILE ?@FDUPCL1J:;;Error-returnTX;^X;h}X;CLOSE # 2rX;|
DUPCL1X;Q>;;CLOSE D1:DUP.SYSPICCOM9	 CIOVIDUPOPN1:;;Error-returnX;X;WRITE D}4:DUP.SYSX;X;CX;AD4:DUP.SYSA=	;B X; DUPOPN1 X;& $> ;;IOCB # 20 Q>;;OPEN D4:DUP.: PICCOM9;;}FOR WRITED Q>N PICBAL9X Q>Cb PICBAH9l Q>v PICAX19 Q>  PICAX29 	 CIOV IDUPWRT :;;Error-return X;} X; X;WRITE D4:DUP.SYS X; 
DUPWRT X; Q>;;PUT BINARY RECORD PICCOM9!Q> !PICBAL9;;BUFFER AT $5000!Q>P }!PICBAH9*!Q>4!PICBLL9;;$1411 BYTES>!Q>H!PICBLH9R!	 CIOV\!IDUPCL2f!:;;Error-returnp!X;z!X;!X;CLOSE # 2!X};!
DUPCL2!X;!Q>;;CLOSE D4:DUP.SYS!PICCOM9!	 CIOV!IFIN!:;;Error-return!X;!X;!X;WRITE  MEM.SAV TO DRIVE} #4!X;"FIN"$> "Q>$"PICCOM9."Q>MEM48"PICBAL9B"Q>MEM4 L"PICBAH9V"Q>`"PICAX19j"Q> t"PICAX29}~"	 CIOV"Q>;;CLOSE MEM.SAV"$> "PICCOM9"	 CIOV"X;"X;"X;"Q>
4"P?"ENDQ>;;CLEAN UP THE"$> ;;SCRE}EN"PICCOM9 #Q>CLS
#PICBAL9;;THANK-YOU#Q>CLS #PICBAH9(#Q>2#PICBLL9<#Q> F#PICBLH9P#	!CIOVZ#
CLS}}d#MEM4AD4:MEM.SAVAn#x#	DO;;AND GOODBYE!>CLS #PICBAH9(#Q>2#PICBLL9<#Q> F#PICBLH9P#	!CIOVZ#
CLS 30100     .OPT NO LIST0110 ;0120 ;0130 ;ˠˠ}Ҡ0140 ;Ҡɠˠ̯Š0150 ;0160 ;ǠɠӠ0170 ;}ŠР0180 ;Ӡ0190 ; Ƞ0200 ;}0210 ;0220 ;0230 ;ǠӺ}0240 ;0250 ;Ӡڠ0260 ;ҠΠ0270 ;}ӠΠ0280 ;ΠΠ0290 ;̠٠0300 ;}0310 ;0320 ;0330 ;ˠ̯Š٠Š03}40 ;Π٠ӠΠ0350 ;0360 ;0370 ;}0380 ;͠ĠĠ0390 ;Ġ٠0400 ;̠٠}0410 ;0420 ;0430 ;0440 ;}ǠɠӠ0450 ;Ӡ0460 ;ĠΠ0470 ;}0480 ;0490 ;0500 ;0510 ;0520 ; OPTIONS: Drive numbers and density0530 ; } if DENSITY=DOUBLE0540 ;      then DRIVEA=DRIVEB !!!0550 ;0560 ;0570 ;0580 DRIVEA = 30590 DRIVEB = 40600 DENSITY = }SINGLE0610 ;0620 ;0630 ;ӮӺ0640 ;0650 ;0660 SINGLE = $80    ;Sector lengths0670 DOUBLE = $000680 DDEVIC = }$0300  ;SIO Device Control Block0690 DUNIT = $03010700 DCOMND = $03020710 DSTATS = $03030720 DBUFLO = $03040730 DBYTLO =} $03080740 DAUX1 = $030A0750 ICHID = $03400760 ICDNO = $03410770 ICCOM = $03420780 ICSTA = $03430790 ICBAL = $03440800} ICBAH = $03450810 ICPTL = $03460820 ICPTH = $03470830 ICBLL = $03480840 ICBLH = $03490850 ICAX1 = $034A0860 ICAX2 = $0}34B0870 CIOV =  $E4560880 DOSINI = $0C0890 CHKSUM = $31    ;Temporary checksum0900 BUFRLO = $32    ;Temporary pointer to }user's buffer0910 ZTEMP = $34     ;Temporary miscellaneous use0920 ZTEM2 = $38     ;Temporary miscellaneous use0930 STACKP} = $0318  ;Stack pointer save0940 PORTB = $D301   ;PIA port B-memory control register0950 PORTA = $D300   ;PIA port A regis}ter0960 PACTL = $D302   ;PIA port A control register0970 NMIEN = $D40E0980 ;0990 ;1000 ; Check for 64,128 or 256 K1010 };1020 ; Load-time code - Copy OS into RAM1030 ;1040     *=  $30001050 ;1060 ;1070 TXT130 .BYTE "}   "1080     .B}YTE "Setting up ATARI 130XE Ram Disk",$9B1090     .BYTE "            "1100     .BYTE ""1110 TXT256 .BYTE }"}   "1120     .BYTE "Setting up ATARI 256Kb Ram Disk",$9B1130     .BYTE "            "1140     .BYTE "}"1150 ;1160 ; IF $D0=1 THEN 130XE1170 ;1180 ; IF $D0=2 THEN 256Kb XL1190 ;1200 GO1210     LDY #2      ;START TEST}1220     STY $44441230     LDA PORTB1240     STA $CC1250     AND #$AF1260     STA PORTB1270     DEY 1280     STY $4444}1290     LDA $CC1300     STA PORTB1310     CPY $44441320     BEQ NOXE1330     LDA $CC1340     AND #$EF1350     STA PORT}B1360     CPY $44441370     BNE XL2561380 XE130 LDA #11390     STA $D01400     BNE NOXE1410 XL256 LDA #21420     STA $}D01430 NOXE LDA $CC1440     STA PORTB1450     LDA $D01460     CMP #11470     BEQ XE1480     CMP #21490     BEQ XL1500}     RTS 1510 XL  JSR PTEXT1520     JMP COS1530 XE  LDX #01540     LDA #111550     STA ICCOM,X1560     LDA #TXT130&255}1570     STA ICBAL,X1580     LDA #TXT130/2561590     STA ICBAH,X1600     LDA #711610     STA ICBLL,X1620     LDA #01630}     STA ICBLH,X1640     JSR CIOV1650     LDA #81660     STA 19201670     STA 29531680     LDA $070A1690     ORA #$801}700     STA $070A1710     JSR $07E01720     LDX #$201730     LDA #2541740     STA ICCOM,X1750     LDA #DRVNUM&2551760  }   STA ICBAL,X1770     LDA #DRVNUM/2561780     STA ICBAH,X1790     LDA #01800     STA ICAX1,X1810     STA ICAX2,X1820  }   JSR CIOV1830     LDX #$201840     LDA #31850     STA ICCOM,X1860     LDA #DUP1&2551870     STA ICBAL,X1880     LDA #}DUP1/2561890     STA ICBAH,X1900     LDA #41910     STA ICAX1,X1920     LDA #01930     STA ICAX2,X1940     JSR CIOV195}0     LDA #71960     STA ICCOM,X1970     LDA #01980     STA ICBAL,X1990     STA ICBLL,X2000     LDA #$502010     STA IC}BAH,X2020     STA ICBLH,X2030     JSR CIOV2040     BPL NXT2050     CPY #$882060     BEQ NXT2070     RTS 2080 NXT LDA #}122090     STA ICCOM,X2100     JSR CIOV2110     LDA #32120     LDX #$202130     STA ICCOM,X2140     LDA #DUP8&2552150 }    STA ICBAL,X2160     LDA #DUP8/2562170     STA ICBAH,X2180     LDA #82190     STA ICAX1,X2200     LDA #02210     STA} ICAX2,X2220     JSR CIOV2230     LDA #112240     STA ICCOM,X2250     LDA #$002260     STA ICBAL,X2270     LDA #$50228}0     STA ICBAH,X2290     LDA #$112300     STA ICBLL,X2310     LDA #$142320     STA ICBLH,X2330     JSR CIOV2340     LD}A #122350     STA ICCOM,X2360     JSR CIOV2370     LDA #32380     LDX #$202390     STA ICCOM,X2400     LDA #MEM8&25524}10     STA ICBAL,X2420     LDA #MEM8/2562430     STA ICBAH,X2440     LDA #82450     STA ICAX1,X2460     LDA #02470     }STA ICAX2,X2480     JSR CIOV2490     LDA #122500     STA ICCOM,X2510     JSR CIOV2520     LDA #'82530     STA $153F254}0     RTS 2550 DRVNUM .BYTE "D8:",$9B2560 DUP1 .BYTE "D1:DUP.SYS",$9B2570 DUP8 .BYTE "D8:DUP.SYS",$9B2580 MEM8 .BYTE "D8:}MEM.SAV",$9B2590 COS LDA #$C0    ;Zero page pointer2600     STA $CC2610 ;2620     STA $CE2630     LDA #02640     STA $C}B2650     STA $CD2660     LDY #$002670 LOOP2680     LDA NMIEN   ;Disable NMI interrupts2690     PHA         ;Save NMIEN}2700     AND #$002710     STA NMIEN2720     SEI         ;Disable IRQ2730     LDA ($CB),Y ;Copy OS2740     PHA         ;sa}ve value2750     LDA PORTB2760     EOR #1      ;Disable OS Rom2770     STA PORTB2780     PLA 2790     STA ($CD),Y2800  }   LDA PORTB2810     EOR #1      ;Enable OS Rom2820     STA PORTB2830     PLA 2840     STA NMIEN   ;Restore NMIEN2850   }  CLI         ;Enable IRQ2860     INY 2870     BNE LOOP2880     LDX $CC2890     CPX #$CB    ;Skip pages $CC to D72900   }  BNE NXPG2910     LDX #$D72920     STX $CE2930 NXPG2940     INC $CE2950     INX 2960     STX $CC2970     BNE LOOP298}0     LDA PORTB2990     EOR #$01    ;Enable RAM OS3000 ;3010     STA PORTB3020     STX PORTA   ;PA7 = 03030     RTS 304}0 ;3050 PTEXT3060     LDX #03070     LDA #113080     STA ICCOM,X3090     LDA #TXT256&2553100     STA ICBAL,X3110     L}DA #TXT256/2563120     STA ICBAH,X3130     LDA #713140     STA ICBLL,X3150     LDA #03160     STA ICBLH,X3170     JSR C }IOV3180     RTS 3190     *=  $02E23200     .WORD GO3210 ;3220 ;3230 ; Ramdisk controller code3240 ;ˠŠ}Ӡ̯Š3250 ;̠ҮԠ3260     *=  $CC003270 ;3280 ;3290 HOOK3300     CLC         ;Hook into all} SIO calls3310     LDA DDEVIC3320     ADC DUNIT3330     LDY #$00    ;Drive A offset3340     CMP #$31+DRIVEA ;Right drive }number ?3350     BEQ HOOKED3360     LDY #$80    ;DRIVEB offset3370     CMP #$31+DRIVEB3380     BEQ HOOKED3390 OLDVEC = *}+13400     JMP *       ;If not go to SIO3410 HOOKED3420     TSX         ;If so intercept3430     STX STACKP  ;Save stack }pointer3440     STY ZTEM2   ;Store offset3450     LDA DCOMND  ;Examine command3460     CMP #'!     ;Format ?3470     BNE }NOFMT3480     JMP FORMAT3490 NOFMT3500     CMP #'P     ;Put sector ?3510     BNE NOPUT3520     JMP PUTSEC3530 NOPUT354}0     CMP #'R     ;Read sector ?3550     BNE NOSET3560     JMP GETSEC3570 NOSET3580     CMP #'S     ;Read status ?3590  }   BNE NOSTT3600     JMP STATUS3610 NOSTT3620     CMP #'W     ;Write sector ?3630     BNE NAKRET3640     JMP PUTSEC3650	} ;3660 ; Returns-Restore stack pointer,report error status and return3670 ;3680 NAKRET3690     LDX STACKP3700     TXS 3
}710     LDY #139    ;NAK error for improper cmnd3720     STY DSTATS3730     LDA #03740     STA PAFLG3750     JMP PAOUT37}60 ERRRET3770     LDX STACKP3780     TXS 3790     LDY #144    ;Bad sector erro3800     STY DSTATS3810     LDA #03820   }  STA PAFLG3830     JMP PAOUT3840 SUCRET3850     LDX STACKP3860     TXS 3870     LDY #1      ;No error3880     STY DSTA}TS3890     LDA #03900     STA PAFLG3910     JMP PAOUT3920 ;3930 ; Subroutine - Set pointer to user buffer3940 ;3950 SE}TBUF3960     LDA DBUFLO  ;Move from DCB to zero page3970     STA BUFRLO3980     LDA DBUFLO+13990     STA BUFRLO+14000   }  RTS 4010 ;4020 ; Subroutine - Prepare to acces sector of ramdisk4030 ;4040 SETSEC4050     LDA #DENSITY4060     STA SE}CLEN  ;Set sector length4070     LDA DAUX1+1 ;Check sector #4080     BNE NDTZ4090     LDA DAUX14100     BEQ OUTRS   ;Sect}or 0 invalid4110     CMP #44120     BCS INRNS4130     LDA #$80    ;Sectors 1-3 always 128 bytes long4140     STA SECLEN4}150     BNE INRNS4160 OUTRS4170     JMP NAKRET  ;Sector # out of range4180 NDTZ4190     CMP #2      ;Check for sector420}0     BCC INRNS4210     BNE OUTRS4220     LDA #$D04230     CMP DAUX14240     BCC OUTRS4250 INRNS4260     LDA DAUX1   ;S}ector # valid4270     STA ZTEMP4280     LDA DAUX1+14290     ASL ZTEMP4300     ROL A       ;Divide # by 64-Result is bank }#, remainder is page #4310     ASL ZTEMP4320     ROL A4330     ADC #4      ;Bank #4340     TAX 4350     LDA ZTEMP4360  }   LSR A4370     LSR A4380     ADC #$40    ;Remainder+644390 ;4400 ; Subroutine- Prepaire to switch banks;4410 ; X is ba}nk, A is page #4420 ;4430 SETBNK4440     STA ZTEM2+1 ;Save page #4450     LDA #$80    ;PA7 output4460     STA PAFLG4470}     JSR PAOUT4480     LDA PORTB4490     STA PBN     ;Normal bank4500     AND #$A34510     STA PB      ;Bank 04520     L}DA #04530     STA PA4540     TXA         ;Bank# in accu4550     CLC 4560     CMP #$0C    ;Bank# <12 ?4570     BCC SBNKA }  ;Yes,jump4580     LDA #$80    ;Banks 12 to 154590     STA PA      ;PA7 = 14600 SBNKA4610     TXA         ;Bank# in accu}4620     CLC 4630     CMP #8      ;Bank# <8 ?4640     BCC SBNKB   ;Yes, jump4650     LDA #$40    ;Banks 8 to 154660     }ORA PB4670     STA PB      ;PB4 & PB6= 14680 SBNKB4690     TXA         ;Bank# in accu4700     AND #3      ;Only bits 0 an}d 14710     ASL A4720     ASL A       ;Shift 2 pos left4730     ORA PB4740     STA PB      ;Bank X in PB4750     LDA $FF}FA   ;NMI vector4760     STA ZTEMP4770     LDA $FFFB4780     STA ZTEMP+14790     LDY #04800     LDA #$40    ;RTI opcode}4810     SEI         ;Disable IRQ4820     STA (ZTEMP),Y ;Place RTI in NMI routine-disables NMI4830     RTS         ;Leave 0 } in Y, bank # in X4840 ;4850 ; Format routine4860 ;4870 FORMAT4880     LDX #4      ;Clear banks 4 to F4890 CLOOP14900 !}    LDA #$404910     JSR SETBNK  ;Prepare for switch4920     LDA PA4930     STA PORTA4940     LDA PB4950     STA PORTB  "} ;Switch bank in4960     TYA 4970 CLOOP24980     STA (ZTEM2),Y ;Zero entire sector4990     INY 5000     CPY SECLEN5010 #}    BNE CLOOP25020     TAY 5030     INC ZTEM2+1 ;Next page5040     BPL CLOOP25050     LDA PBN5060     STA PORTB   ;Switc$}h bank out5070     LDA #05080     STA PORTA5090     LDA NMI5100     STA (ZTEMP),Y ;Enable interrupts5110     CLI 5120  %}   INX         ;Next bank5130     CPX #$10    ;Done ?5140     BCC CLOOP15150     JSR SETBUF5160     LDA #$FF    ;Return a&} sector with 2 FF's and the rest 0's5170     LDY #05180 FLOOP5190     CPY #25200     BNE NOTFF5210     LDA #05220 NOTFF'}5230     STA (BUFRLO),Y5240     INY 5250     CPY SECLEN5260     BNE FLOOP5270     JMP SUCRET  ;Done5280 ;5290 ; Write (}sector routine5300 ;5310 PUTSEC5320     JSR SETBUF5330     LDA #05340     STA CHKSUM  ;Zero checksum5350     JSR SETSEC)}  ;Point to ramdisk sector5360 PLOOP5370     LDA (BUFRLO),Y ;Get byte from user's buffer5380     LDX PA5390     STX PORTA*}5400     LDX PB5410     STX PORTB   ;Switch bank5420     STA (ZTEM2),Y ;Put byte into ramdisk5430     LDX PBN5440     ST+}X PORTB   ;Normal bank5450     LDX #05460     STX PORTA5470     CLC 5480     ADC CHKSUM  ;Add byte to checksum5490     S,}TA CHKSUM5500     INY 5510     CPY SECLEN  ;Proper sector lenhth5520     BNE PLOOP5530     LDX #$0F    ;Bank F holds chec-}ksum table5540     LDA DAUX15550     ASL A5560     LDA DAUX1+15570     ROL A5580     ORA #$60    ;Sector # indexes check.}sum table5590     JSR SETBNK5600     LDA DAUX15610     AND #$7F5620     TAY 5630     LDA CHKSUM5640     LDX PA5650    /} STX PORTA5660     LDX PB5670     STX PORTB   ;Switch bank5680     STA (ZTEM2),Y ;Store checksum5690     LDX PBN5700    0} STX PORTB   ;Normal bank5710     LDX #05720     STX PORTA5730     LDY #05740     LDA NMI5750     STA (ZTEMP),Y ;Enable 1}interrupts5760     CLI 5770     JMP SUCRET  ;Done5780 ;5790 ; Read sector routine5800 ;5810 GETSEC5820     JSR SETBUF2}5830     LDA #05840     STA CHKSUM  ;Zero checksum5850     JSR SETSEC5860 GLOOP5870     LDX PA5880     STX PORTA5890   3}  LDX PB5900     STX PORTB   ;Switch bank5910     LDA (ZTEM2),Y ;Get byte from ramdisk5920     LDX PBN5930     STX PORTB 4}  ;Normal bank5940     LDX #05950     STX PORTA5960     STA (BUFRLO),Y ;Put byte into user's buffer5970     CLC 5980    5} ADC CHKSUM  ;Add to checksum5990     STA CHKSUM6000     INY 6010     CPY SECLEN  ;Proper sector length6020     BNE GLOOP6}6030     LDX #$0F    ;Bank F for checksum table6040     LDA DAUX16050     ASL A6060     LDA DAUX1+16070     ROL A6080  7}   ORA #$606090     JSR SETBNK6100     LDA DAUX16110     AND #$7F6120     TAY 6130     LDX PA6140     STX PORTA6150   8}  LDX PB6160     STX PORTB   ;Switch bank6170     LDA (ZTEM2),Y ;Set original checksum6180     LDX PBN6190     STX PORTB 9}  ;Normal bank6200     LDX #06210     STX PORTA6220     TAX 6230     LDY #06240     LDA NMI6250     STA (ZTEMP),Y ;Enab:}le interrupts6260     CLI 6270     CPX CHKSUM  ;Compare checksums6280     BEQ SCSOK6290     JMP ERRRET  ;If different bad;} sector6300 SCSOK6310     JMP SUCRET  ;If same, done6320 ;6330 ; Read status routine6340 ;6350 STATUS6360     JSR SETB<}UF6370     LDY #3      ;Returns 4 bytes6380     LDA #0      ;All 0's6390 SLOOP6400     STA (BUFRLO),Y6410     DEY 6420 =}    BPL SLOOP6430     CMP #DENSITY6440     BNE SDONE6450     LDA #$206460     INY 6470     STA (BUFRLO),Y ;First byte te>}lls density of drive6480 SDONE6490     JMP SUCRET  ;Done6500 ;6510 ;Subroutine for PA7 output6520 ;6530 PAOUT6540 ;65?}50     LDA PACTL6560     EOR #46570     STA PACTL6580     LDA PAFLG6590     STA PORTA6600     LDA PACTL6610     EOR #4@}6620     STA PACTL6630     LDA #06640     STA PORTA6650     RTS 6660 ;6670 ; Variable storage area6680 ;6690 PAFLG *= A}*+1    ;Flag PORTA,$80=output,0=input6700 PA  *=  *+1     ;value of mem.contr.reg. for selected bank6710 PB  *=  *+1     ;VB}alue of mem.contr.reg. for selected bank6720 PBN *=  *+1     ;Value of mem.contr.reg. for normal bank6730 NMI *=  *+1     ;C}First opcode in NMI routine-Used to restore NMI6740 SECLEN *= *+1   ;Length of current sector6750 ;6760 ; RESET initialisaD}tion routine6770 ;6780     *=  $0100   ;Hidden (hopefully !!!)6790 ;6800 NEWINI6810     DEC PORTB   ;Enable RAM OS6820 E}    LDA #$806830     STA PAFLG6840     JSR PAOUT6850 OLDINI = *+16860     JSR *       ;Call original DOSINI routine6870 F}MODINI6880     LDA #NEWINI&$FF ;Set hook for next RESET6890     STA DOSINI6900     LDA #NEWINI/$01006910     STA DOSINI+1G}6920     RTS 6930 ;6940 ; Load-time code-Install ramdisk6950 ;6960     *=  $42006970 DO6980     LDA $D06990     CMP #H}27000     BEQ CONT7010     JMP END7020 CONT7030     LDA $E45A   ;Save original SIO vector7040     STA OLDVEC7050     LDI}A $E45B7060     STA OLDVEC+17070     LDA #HOOK&$FF ;Install new SIO vector7080     STA $E45A7090     LDA #HOOK/$01007100J}     STA $E45B7110     LDA $FFFA   ;Save first opcode in NMI routine7120     STA $CB7130     LDA $FFFB7140     STA $CC71K}50     LDY #07160     LDA ($CB),Y7170     STA NMI7180     LDA DOSINI  ;Save original dosini vector7190     STA OLDINI720L}0     LDA DOSINI+17210     STA OLDINI+17220     JSR MODINI  ;Install new one7230     LDA $070A7240     ORA #12     ;DRIVEM} #3&47250     STA $070A7260     JSR $07E0   ;Reinitialize FMS to show ramdisk present7270     JMP BEG     ;Done7280 ;729N}0 ;7300 ;FORMAT CODE - Format Ramdisk7310 ;7320     *=  $43007330     .BYTE "D4:",9 B7340     .BYTE "D3:",9 B7350 ;736O}0 BEG7370     LDX #$20    ;IOCB # 27380     LDA #$FE    ;FORMAT D4:7390     STA ICCOM,X7400     LDA #07410     STA ICBALP},X7420     LDA #$437430     STA ICBAH,X7440     JSR CIOV7450     BPL DRIV37460     RTS 7470 ;7480 DRIV37490     LDA #Q}$FE7500     STA ICCOM,X7510     LDA #47520     STA ICBAL,X7530     LDA #$437540     STA ICBAH,X7550     JSR CIOV7560  R}   BPL DUPOPN7570     RTS         ;Error-return7580 ;7590     *=  $43407600 ;7610 ;DUPLICATE DUP TO RAMDISK7620 ;7630 S}    .BYTE "D1:DUP.SYS",9 B7640 ;7650 DUPOPN7660 ;7670     LDX #$20    ;IOCB # 27680     LDA #$03    ;OPEN D1:DUP.SYS769T}0     STA ICCOM,X ;FOR READ7700     LDA #$407710     STA ICBAL,X7720     LDA #$437730     STA ICBAH,X7740     LDA #$047U}750     STA ICAX1,X7760     LDA #07770     STA ICAX2,X7780     JSR CIOV7790     BPL DUPRD7800     RTS         ;Error-retV}urn7810 ;7820 ;7830 ;READ D1:DUP.SYS7840 ;7850 DUPRD7860 ;7870     LDA #7      ;GET BINARY RECORD7880     STA ICCOM,XW}7890     LDA #07900     STA ICBAL,X ;BUFFER AT $50007910     LDA #$507920     STA ICBAH,X7930     LDA #$007940     STA X}ICBLL,X ;$220B BYTES (8715)7950     LDA #$237960     STA ICBLH,X7970     JSR CIOV7980     BPL DUPCL17990     CPY #$88   Y} ;END OF FILE ?8000     BEQ DUPCL18010     RTS         ;Error-return8020 ;8030 ;8040 ;CLOSE # 28050 ;8060 DUPCL18070 Z};8080     LDA #$0C    ;CLOSE D1:DUP.SYS8090     STA ICCOM,X8100     JSR CIOV8110     BPL DUPOPN18120     RTS         ;Er[}ror-return8130 ;8140 ;WRITE D4:DUP.SYS8150 ;8160 ;8170     *=  $43A08180 ;8190     .BYTE "D4:DUP.SYS",9 B8200 ;8210 \}DUPOPN18220 ;8230     LDX #$20    ;IOCB # 28240     LDA #$03    ;OPEN D4:DUP.8250     STA ICCOM,X ;FOR WRITE8260     LDA]} #$A08270     STA ICBAL,X8280     LDA #$438290     STA ICBAH,X8300     LDA #$088310     STA ICAX1,X8320     LDA #08330^}     STA ICAX2,X8340     JSR CIOV8350     BPL DUPWRT8360     RTS         ;Error-return8370 ;8380 ;8390 ;WRITE D4:DUP.SY_}S8400 ;8410 DUPWRT8420 ;8430     LDA #$0B    ;PUT BINARY RECORD8440     STA ICCOM,X8450     LDA #08460     STA ICBAL,X`} ;BUFFER AT $50008470     LDA #$508480     STA ICBAH,X8490     LDA #$118500     STA ICBLL,X ;$1411 BYTES8510     LDA #$1a}48520     STA ICBLH,X8530     JSR CIOV8540     BPL DUPCL28550     RTS         ;Error-return8560 ;8570 ;8580 ;CLOSE # 2b}8590 ;8600 DUPCL28610 ;8620     LDA #$0C    ;CLOSE D4:DUP.SYS8630     STA ICCOM,X8640     JSR CIOV8650     BPL FIN866c}0     RTS         ;Error-return8670 ;8680 ;8690 ;WRITE  MEM.SAV TO DRIVE #48700 ;8710 FIN8720     LDX #$208730     LDAd} #38740     STA ICCOM,X8750     LDA #MEM4&2558760     STA ICBAL,X8770     LDA #MEM4/2568780     STA ICBAH,X8790     LDAe} #88800     STA ICAX1,X8810     LDA #08820     STA ICAX2,X8830     JSR CIOV8840     LDA #12     ;CLOSE MEM.SAV8850     f}LDX #$208860     STA ICCOM,X8870     JSR CIOV8880 ;8890 ;8900 ;8910     LDA #'48920     STA $153F8930 END LDA #11    g} ;CLEAN UP THE8940     LDX #$00    ;SCREEN8950     STA ICCOM,X8960     LDA #CLS&2558970     STA ICBAL,X ;THANK-YOU8980  q}P                                                                                 b%  DOS     SYSb* ) DUP     SYSb S RAMDISK COMbg a RAMDISK M65b  RAMDISK SRCb sBANKSW  ATW`               `    Ӡ`    蠠`    렠`    򠲵`    ̠                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   LDA #CLS/2568990     STA ICBAH,X9000     LDA #19010     STA ICBLL,X9020     LDA #09030     STA ICBLH,X9040     JMP Cr}IOV9050 CLS .BYTE $7D9060 MEM4 .BYTE "D4:MEM.SAV"9070     *=  $02E29080     .WORD DO    ;AND GOODBYE!LH,X9040     JMP C j12 2 1 	5 
0 10 76 2 0 1322769BANKSWITCHING 256K ATARI 800XL277027662PORTA = $ D300      PACTL = $ D302    t}  PORTB = $ D301Funkties van de verschillende bits van PORTB:PB0 = 0 :Enable RAM 48 - 64K.      PB0 = 1 :Enable OS ROM 48u} - 64K.PB1 = 0 :Enable Basic ROM          PB1 = 1 :Enable RAM 40 - 48K.PB4 = 0 :Enable CPU banking        PB4 = 1 :Disable v}CPU banking.PB5 = 0 :Enable ANTIC banking      PB5 = 1 :Disable ANTIC banking.PB7 = 0 :Enable Self test          PB7 = 1 :Dw}isable Self test.PB2, PB3, PB6 en PA7 worden gebruikt voor het selekteren van de extra banken.Banknummering:Banken 0 tx}/m 3 zijn de normale banken van de 800 XL. Voorwaarden voor het gebruik van deze banken zijn:PB4 EN PB5 = 0.0  - 16K = Bay}nk # 016 - 32K = Bank # 132 - 48K = Bank # 248 - 64K = Bank # 3Extra banken:Banken 4 t/m 15 zijn de extra banken.Voorz}waarden voor het gebruik van deze banken zijn:PB4 = 0 OF PB5 = 0 EN A14 = 1 EN A15 = 0.Bank #    PA7  PB6  PB3  PB2  4  {}      X    0    0    0  5        X    0    0    1  6        X    0    1    0  7        X    0    1    1  8        0    1 |}   0    0  9        0    1    0    1 10        0    1    1    0 11        0    1    1    1 12        1    1    0    0 13}}        1    1    0    1 14        1    1    1    0 15        1    1    1    1Adreslijn A8 DRAM.Bank #    A8 Row. A8 C~}ol.  PB6  PA7 0 t/m 3    0       0   4 t/m 7    0       1       0    X 8 t/m 11   1       1       1    012 t/m 15   1   }    0       1    1                0   4 t/m 7    0       1       0    X 8 t/m 11   1       1       1    012 t/m 15   1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    