@Lp}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@W!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr This is a short article concerning the very rare 1450XLD. Taken from the Unix newsnet system. Transferred by Mike Blenkiron. }Tidied by Dean Garraghty.-----------------------------------I want to correct one inaccuracy. The DOS that was designed fo}r the 1450XLD was not DOS 4, but DOS 3.I consider myself an expert, being about the last person in the Western Hemisphere t}hat used DOS 3 instead of SpartaDOS. (reasons I'll not go into here...) Then I got an ST, but I digress.The 1450XLD was a h}uge XL, with a double-sided (enhanced)double density drive built in, with an expansion bay for a second drive. It had a metal } case, so you could put a monitor on top of it. If this is sounding like an Apple III, you're not too far off. Both were dogs }, although a 1450XLD would command a far greater price than any Apple III, if you can even FIND an XLD. But I digress again. }DOS 3 was a wierd one alright, but in trying to remain compatible with all the single sided drives, DOS 3 and the XLD did th }ings the absolute wierdest way.Since the XLD had a double-sided (DS) drive, each side of the disk was treated like a separa }te drive. Yes, with DOS 3 and your XLD, your single, built in drive was actually D1: and D2:. The reverse side had it's own d}irectory. So if you had two DS drives in your XLD, then you had D1: to D4:. Expanding on that, DOS 3 supported 8 drives like }DOS 2 did.I suppose you could have 8 drives, if Atari ever released a 1055(?) DS drive. Or one could have an XLD with two d}rives, and daisychain 4 1050s...The internal XLD drives were alot faster, as they were parallel, not serial like the 810/10}50 drives.Myself, I started with DOS 2, then DOS 3, tried DOS 2.5 then went back to DOS 3. I got DOS 4, but unless you have} three drives, it was a pain. Actually, DOS 3 works better with three drives, D1: for the system disk, and 2 and 3 for files }and copying., it was a pain. Actually, DOS 3 works better with three drives, D1: for the system disk, and 2 and 3 for files ************************************ THE ADVERTS! ************************************Private adverts}---------------For sale: 130XE owners manual - 7pounds DOS 2.5/XF551 manual - 8.50 ATARI TRACKBALL - 5pounds MX80} TYPE II OWNERS MANUAL (PHOTOCOPY) 5pounds XE12 OWNERS MANUAL 2poundsContact: P.W.Hall, 38 Old Hall Road, Tingley, }Wakefield, WF3 1QE.-----------------------------------For public domain software, used commercial software, software exch}anges, hardware, books, specially written commercial software, support, and an 8-bit newsletter, contact: Dean Garraghty,} 62 Thomson Ave, Balby, Doncaster, DN4 0NU. (Please allow for re-direction at certain times of the year).Currently fo}r sale: 800XL R/F cable. Brand new. 2.50 inc P&P. 400/800 Basic reference manual. The one that was supplied wit}h the 400/800. Loose leaved. 5.50 inc P&P. Blue ribbon games disk vol.1. Brand new, NOT used. 5.50 inc P&P. SAM s}oftware speech synth, AND the SAM tutorial disk. Both with manauls, in a case. Both VERY rare items. 35pounds for the two inc} P&P&I. NOTE: I only have one of each of the items listed above, so reserve the items you want before sending money. } I also usually have lots of used tapes available from 50p each. Boot side 2 of this disk for my current complete ra}nge of used software, and my full PD list.-----------------------------------A NOTE ABOUT ADVERTS:--------------------- }Private individuals wishing to sell old hardware or software (originals ONLY) or wishing to place a wanted advert, may do so!} free of charge. Just write out your advert and send it to me at the usual address. Please try to keep them short, as I don't"} like typing!Companies or profit-making enterprises may also advertise for a small fee. This is as follows: 1 full screen f#}or 10 pounds, 1/2 a screen for 5 pounds. Follow the same procedure as given above. You may also send your advert on disk, sav$}ed as a standard ASCII file in DOS 2.x format. Your disk will be returned. above. You may also send your advert on disk, savKEiͩkΩ͙kCopj`j {j`Hi͝Νh`&}L"SAB.ORTNI:D"NURͩkΩ͙kCopj`j {j`Hi͝Νh` 91GDD@4@ @8A%SAVE "D:COLRWEEL.BASdnA+@%@3 (}(@ COrEl!A(@ozY(@HYOUR PATIENCE WILL BE REWARDED, AS THE gpH GRADUALLY C )}HANGESz(@ lO and ApE!pv^(@M Same Yet Different EA *}CH TIME!r-@A%v q+@%@x6-P:H:@,$@,6-P:H:@,$@@,--- +}A`+A@&&,'@ ##P:H:@,$@,%@,@@@##/@%$G:,@@%$E:, ,} H:@,!?0AOO0P:H:@,$@,P:H:@,$@,P:H:@,$@,$@  A -}GOTO 120 ě##0@@$+&@H,  AD:COLRWEEL.BAS  A gꮺUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU@@/}@UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUP@@@0}@TP@TP@P@P@1}TPEPT@P@@TU@@@TP@P@T2}P@TP@@@3}@UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUP@@4}UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU5}???<}TT@@@@PPPPPTPTP@PPP@@@?}T@@P@TT@P@P@TTPPPT@PPPTP@}@@A}*(*( (((* * * *(( ((B}((((((((( (((((( **(((*((((((((((((((((((* *(((( C} ((D}<<<?<<<??<E}<<<<<". These files are uY}nreadable on the "very old" ATARI drives, which is why programmers use DOS 2.0 to create working software under, and is why DZ}OS 2.0 has the widest circulation, i.e. they know beforehand that it will work on --EVERYTHING--.DOS XE -- DOS XE is the l[}atest, and probably the last, officially released ATARI DOS. It is a double sided, double density DOS, that was finally push\}ed late out the door, for use with the new ATARI XF551 disk drive. Unfortunately, as the name implies, for DOS XE to work cor]}rectly, it really needs to be run on an ATARI 130XE machine (grey case with slanty function keys across the top.) It only wo^}rks correctly on the ATARI XF551 disk drive if you have an ATARI 130XE connected to it. DOS XE is the first DOS released by _}ATARI to support the concept of subdirectories and date stamping. Unfortunately, when using DOS XE with any other combination`} besides an ATARI 130XE and an ATARI XF551 disk drive, you seem to end up with a single sided, single density DOS with all ofa} the overhead of subdirectories and date stamping thrown in. If I remember correctly, DOS XE was also divided into a three lb}evel tree of DOS menus: a directory menu, a utilities menu, and a file menu. DOS XE has the reputation of being an overly coc}mplicated dog of a DOS. I would tell you more about what DOS XE can do except I think I through the manual away (which came id}n the form of a paperback book). On the otherhand, I keep the ATARI DOS 2.5 and the MYDOS manuals close at hand. ATARI DOS Xe}E was written as a collaboration between ATARI INC., and Bill Wilkinson founder of O.S.S., programmer of ATARI BASIC and the f}ACTION! computer language. I have always wondered to this day what the heck was going on at ATARI that created DOS XE. Suffg}ice it to say, not many people find DOS XE useful. I think I have met maybe one programmer in fifty who uses it. Well, h}that's about it for all of the officially released ATARI DOSes. Suprisingly enough, although the naming convetion for the XF5i}51, like the designation for the 520STFM, implies that the disk drive unit is an XE Floppy Disk Drive 551 Unit, you do not nej}ed an ATARI 130XE to use a XF551 floppy disk drive in double sided (i.e. front and back), double density (double 128 or 256 bk}ytes per disk sector) mode. Several non-ATARI DOSes will do this. For example, I am using an XF551 floppy disk drive in doul}ble sided, double density mode from a stock, unexpanded ATARI 800XL under MYDOS 4.5... but more on that at another time. m} P.S. There is a RAM-disk driver built into ATARI DOS 2.5. If you own an unexpanded ATARI 800XL and have the DOS 2.5 RAM-dn}isk program for the 800XL, you can create a single density RAM-disk of 105 SECTORS for use with text editors and terminal proo}grams. (Even without this program it is possible to use the 800XL DOS 2.5 RAM-disk, but it is much harder to do so.)inal proud M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%q} DD˙`  }J)Lr J  ((  p L ()   Jr}L= ( L 0q A    IB JC;? D W s} LL  ` W )LA!  ߰")-݆ p" t} $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ`u}$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H v}p h  hyhy D L> L JJ    ! LA*` BFw}7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!Lx}EE !E^ ^ E E7EȩEdE/EȩE  Dy} .L }  ;F d  ;?F7F? ( .   Z D LL d z} . D  L    p  E` , d)  D L) 0BM݊L݉{} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G|} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G}} C8jJ3j2CD( C202C4 ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `8  ɐ     `TU } L ? .  t`GBJ ~DEHI B V0dV}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh}DEL8HI4 0 HI,0 0  9 .G VLO},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D8:MEM.SAV J y08 B|DEHI} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI} VY8 B V  @  /DE `E:D8:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO }STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu }d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ`}$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF}7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L}EE !E^ ^ E E7EȩEdE/EȩE  D} .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `8  ɐ     `TU } L ? .  t`GBJ ~DEHI B V0dV}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh}DEL8HI4 0 HI,0 0  9 .G VLO},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D8:MEM.SAV J y08 B|DEHI} V0 0`B;DEL`?<0LV` ʆ v s? F0Ξ05: [ BDEHI} VY8 B V  @  /DE `E:D8:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO }STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu }This is an article on various DOSs for the Atari. It was taken from the Unix newsnet system. Transferred by Mike Blenkiron. T}idied by Dean Garraghty.-----------------------------------Most of the Atari DOS's will be listed here:Atari DOS 1.0 ---}Similar to 2.0 but not as fancy. Disappeared early.2.0 ---Still a strong standard in the Atari world. Can't seem to shake t}his one.3.0 ---Died a nasty death. If you have it, get rid of it!2.5 ---Enhanced version of 2.0 with many added features }and extended storage capabilities with the 1050 and XF551 drives.XE ---DSDD dis for the XF551 drives. supports up to 360k.}MyDOS 5.x ---A very enhanced version and offshoot of AtariDOS 2.0. Somewhat mass compatible with other DOS's.SpartaDOS di}sc---MS-DOS type DOS. Probably the MOST all around compatible of all Atari 8-bit DOS's except for SDX CART---This has to be t}he best Atari 8-bit DOS available.TopDOS ---Don't know much about this one except that it is still available and supports u}p to 360k disc. There are others, but they are not very popular or wide spread.By-the-way, MyDOS, AtariDOS XE and SpartaDOS} all support multi-level directories. Unfortunately they don't all do it the same way.way, MyDOS, AtariDOS XE and SpartaDOSX 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. 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 SINGLEL !N' }#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx  }DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT } ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL }%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD }ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0. }  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC }COPY--FROM, TO?OPTION NOT ALLOWED697 FREE SECTORS COPYING---D8:COPY32.COMl# 0|D .L/%# }##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY }S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E }1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A }LLOWED IN DESTINATION 0 <.|K$H$R$\$f$p$z$$f!f!f!f!f!f!x!!!!!!!!!!"" "."<"J"X"f"t""""""""f!f!f!f(}!f!f!f!f!f!f!f!f!f!f!f!f!f!f!f!f!f!f!f!f!f!f!f!f!f!f!f!f!f!f!f!f!f!f!"""###,#:#H#V#h#v#############$$f!f!(}f!f!f!        (} (} !(}000(}0!"??30(}00 033 )}30 ? 0"#0 ??0 ??<0 )}000000003???0)} <??0#$?03?0  0??< )} ???????????)}00000?????????(FANCY FONT DISPLAY ROUTINES--------------------------- For so long now people have been after text display routines for-} graphic modes 7 & 15. These routines have been provided, but they always use a block copy technique which uses a standar-}d 8 by 8 bit character set. My routines throw away these principles and allow the programmer to define the individual c-}haracters in terms of their image, width, height and drop.Example: The word 'Tie' might be displayed as follows+-+-+-+-+- }-+-+-+-+-+-+-+-+-+-+-+|X|X|X|X|X|X| |X| | | | | | | |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| | |X| | | | | | | | | | | | |+-+-+-- }+-+-+-+-+-+-+-+-+-+-+-+-+| | |X| | | | |X| | |X|X|X| | |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| | |X| | | | |X| |X| | | |X| |+-+- }-+-+-+-+-+-+-+-+-+-+-+-+-+-+| | |X| | | | |X| |X|X|X|X|X| |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| | |X| | | | |X| |X| | | | | |- }+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| | |X| | | | |X| | |X|X|X|X| |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+The accompanying datato go - }along with theimage for the 'e' wouldbe as follows:Height = 5Width = 6Drop = 2Note that the gap shouldbe included-} in the width This produces output which is more pleasing to look at. It's difficult to do justice to this with wo-}rds, so run the program "D:EGFFDR.BAS" to see what is possible.HOW TO USE THE ROUTINES FROM BASIC---------------------}-------------- For ease of use, the routines are loaded upon booting the disk, the program being in an AUTORUN.SYS file-}. (Note: on the news-disk the program has been called FFDR.COM. It should be copied to a fresh disk and renamed AUTORUN.SYS).-} The code is loaded above DOS, then it protects itself from SYSTEM RESET by altering MEMLO and DOSINI addresses. The routi-}nes and example font (Taken from the ST game 'Paradroid 90' which inspired these routines) take up ^7.5K but this still leav-}es you with ^30K available for your BASIC program. There are 4 routines that you can use. In order to do this it is best-} that you set up the following variables within your program.e.g. 10 MESSAGE=7459:REM Address of Display routine-} vector. 20 SETXY=MESSAGE+3 30 COLOUR=SETXY+3 40 DRWLET=COLOUR+3 Definitions for each of these r-}outines now follow:SETXY-----Format : A=USR(SETXY,xpos,ypos)Limits : xpos between 0 and 159 ypos between 0 an-}d 191 (for graphics mode 15) ypos between 0 and 95 (for graphics mode 7)Desc. : this moves the -}current printing position to the coordinates (xpos,ypos). Important note - a SETXY must -} be executed before any printing is done (i.e. a MESSAGE or DRWLET).COLOUR------Format : A=USR(COLOUR-},col)Limits : col between 0 and 3 (Although MC routine will force any value of col to be between -}0 <-> 3 )Desc. : Sets the output colour as follows - 0 = COLOR4 (location 712) (Background-}) 1 = COLOR0 (location 708) 2 = COLOR1 (location 709) 3 = COLOR2 (location 710)DRWLET------Fo-}rmat : A=USR(DRWLET,ASC("A")) A=USR(DRWLET,char)Limits : char between 0 and 127Desc. : Outputs the character at-} the current screen position (which is updated accordingly). Spaces are always drawn - } in COLOR4, leaving the background intact.MESSAGE-------Format : A=USR(MESSAGE,ADR(M$)) A=USR(ME-!}SSAGE,ADR("An Example!"))Limits : Last character of string must be inverse.Desc. : Displays the strin-"}g on the screen at the current x,y position. The last character of the string must be inv-#}erse (in the example the '!' is inverse) in order to denote the end of string within the -$}display routine.ROUTINES FOR USE BY THE ASSEMBLY PROGRAMMER------------------------------------------- Calli-%}ng protocols are different within assembly language: SETXY -> LDX xpos LDY ypos JSR POSI-&}TION COLOUR -> LDA col JSR SETCOL DRWLET -> LDA char JSR ONELET MESSAGE -> LDX-'} # >string LDY # ' and '<' symbols as follows: # >name becomes #name/256 # Width = 6 (Remem-5}ber to include gap!) Remember too that in mode 7 & 15, each pixel is two bits wide, giving four possibl-6}e colours. So define the character for colour 3, i.e. both bits set per pixel, as the draw_letter routine simply AND'S -7} it with the current colour mask to produce the right colour. This is also why the image is two bytes wide, to allo-8}w for characters with widths up to 8 pixels wide. The data image is stored in the source listing as follows:1000 LG10-9}02 .DBYTE $3F00,$C0C0,$C0C0,$3FC0,$00C0,$C0C0,$3F00 All the characters are referenced in the character table (see -:}CHRTAB - line 1574). This is best left alone, and you should use the same labels for your images. All that's left to do -;}is to store the height, width and drop information in the correct positions in the relevant tables. So for our example:-<} Height = 7, Width = 6, Drop = 2 These are stored in position 4 of lines 1656, 1686 and 1716 respectively, correspo-=}nding to the LG entry in CHRTAB. Hope that's enough for you to be able to do your own thing, if you have any queries,->} or just want to discuss programming on the 8-bit Atari, then write to: Mark Keates, 24 Hayes Mead, Meadowcroft, H-?}olbury, Southampton, Hampshire, S04 1JZ, England.Enjoy!(This article was re-formatted and edited by Dean Garraghty.),}1000 ; ٠Ԡ٠ӛ1002 ; BY MARK KEATES1004 ; PROGRAMMING - SPRING 19911006 ;1008 ; FOR USE IN YOUR OWN P1A}ROGRAMS1010 ; BUT PLEASE CREDIT ROUTINES TO ME.1012 ;1014 ; ------------1016 ; DEFINITIONS1018 ; ------------1020 DOSIN1B}I = $0C1022 SCRNTO = $D01024 LOADADR = $1D001026 MEMLO = $02E71028 ; ------------1030 *= LOADADR1032 ;1034 ; HEAD1C}ER GET ADDED BY THE ASSEMBLER1036 ; FORMAT : $FF,$FF,LOAD ADR, END ADR1038 ;1040 INIT1042 LDA DOSINI ; Copy original1D} value1044 STA WARMST+1 ; of DOSINI into the1046 LDA DOSINI+1 ; operand of 'JSR OLDINIT'1048 STA WARMST+210501E} JMP WS_SKIP1052 ;1054 WARMST1056 JSR OLDINIT1058 WS_SKIP1060 LDA # FINISH ; just above DOS.1066 STA MEMLO+11068 LDA # WARMST ; wipe out the routines1074 S1H}TA DOSINI+11076 OLDINIT1078 RTS 1080 ; -------------1082 START1084 ; -------------1086 JMP MESSAGE1088 JMP1I} SETXY1090 JMP COLOUR1092 JMP DRWLET1094 ; ------------1096 ; INFO. REQ'D BY LETTER DRAWER1098 ; ------------111J}00 LETADR1102 .WORD 01104 BITROT1106 .BYTE 01108 LETTER1110 .BYTE 01112 LETCOL1114 .BYTE 01116 USECOL1K}1118 .BYTE 01120 LCTAB1122 .BYTE $00,$55,$AA,$FF1124 DRPVAL1126 .WORD 0,40,80,120,160,2001128 .WORD 2401L},280,320,360,4001130 HEIGHT1132 .BYTE 01134 WRKSPC1136 .BYTE 0,0,0,0,0,0,0,0,01138 .BYTE 0,0,0,0,0,0,0,0,011M}140 ; ------------1142 DRWLET ; BASIC ENTRY - A=USR(DRWLET,CHAR)1144 PLA ; # OF ARGS1146 PLA 1N} ; CHARACTER HIGH - DISREGARD1148 PLA ; CHARACTER LOW1150 ONELET ; MC ENTRY - A = CHARACTER TO DISPLAY1O}1152 CMP #961154 BCS LSKIP21156 CMP #321158 BCS LSKIP11160 ADC #641162 JMP LSKIP21164 LSKIP1111P}66 SBC #321168 LSKIP21170 STA LETTER ; STORE AFTER CONVERTING TO ASCII1172 TAX 1174 BEQ LD0 ; IF IT'1Q}S A SPACE THEN COLOUR=01176 LDX LETCOL ; OTHERWISE USE THE CURRENT COLOUR1178 LD01180 STX USECOL1182 TAX 111R}84 ASL A1186 TAY 1188 LDA HEITAB,X1190 ASL A1192 STA HEIGHT1194 LDA CHRTAB,Y1196 STA LD1+11S}1198 LDA CHRTAB+1,Y1200 STA LD1+2 ; COPY CHARACTER INFORMATION1202 LDX #01204 LD11206 LDA $FFFF,X1208 1T} STA WRKSPC,X1210 INX 1212 CPX HEIGHT1214 BNE LD1 ; COPY IMAGE INTO WORKSPACE1216 LDY BITROT1218 1U} BEQ LD4 ; SKIP IF WE DON'T NEED TO ROTATE1220 LD21222 LDX #01224 LD31226 LSR WRKSPC,X1228 ROR WRKSPC1V}+1,X1230 INX 1232 INX 1234 CPX HEIGHT1236 BNE LD31238 DEY 1240 BNE LD2 ; SHIFT INTO POSITIO1W}N1242 LD41244 LDY LETTER1246 LDA DRPTAB,Y1248 ASL A1250 TAY 1252 LDA LETADR1254 CLC 1256 1X}ADC DRPVAL,Y1258 STA SCRNTO1260 LDA LETADR+11262 ADC DRPVAL+1,Y1264 STA SCRNTO+1 ; ADD DROP VALUE*40 TO C1Y}URRENT SCREEN ADDRESS1266 LDY USECOL1268 LDA LCTAB,Y1270 STA USECOL1272 LDX #01274 LD51276 LDY #011Z}278 LD61280 LDA WRKSPC,X ; GET IMAGE1282 EOR #$FF ; INVERT1284 AND (SCRNTO),Y ; MASK OFF BACKGROUND1286 1[} STA (SCRNTO),Y ; REPLACE1288 LDA WRKSPC,X ; GET IMAGE1290 AND USECOL ; MAKE IT THE RIGHT COLOUR1292 ORA (SC1\}RNTO),Y ; ADD BACKGROUND1294 STA (SCRNTO),Y ; DISPLAY IT1296 INX 1298 INY 1300 CPY #21302 BNE LD6 1]} ; 2 BYTES WIDE1304 LDA SCRNTO1306 CLC 1308 ADC #401310 STA SCRNTO1312 LDA SCRNTO+11314 ADC #01^}1316 STA SCRNTO+11318 CPX HEIGHT1320 BNE LD5 ; FOR ALL OF HEIGHT1322 ;1324 LDY LETTER1326 LDA W1_}IDTAB,Y ; ADD CHARACTER WIDTH TO BITROT1328 ASL A ; *2 AS 1 COLOUR CLOCK = 2 BITS1330 ADC BITROT1332 TAY1`} 1334 AND #$F81336 BEQ LD9 ; SKIP IF IT DOESN'T ENTER NET BYTE1338 LSR A ; OTHERWISE UPDATE THE LETA1a}DR1340 LSR A1342 LSR A1344 CLC 1346 ADC LETADR1348 STA LETADR1350 LDA LETADR+11352 ADC #01b}1354 STA LETADR+11356 TYA 1358 AND #71360 TAY 1362 LD91364 STY BITROT1366 RTS 1368 ; ---------1c}---1370 ; INFO REQ'D BY MESSAGE WRITER1372 ; ------------1374 XPOS1376 .BYTE 01378 YPOS1380 .WORD 01382 YPOS81d}1384 .WORD 01386 ; ------------1388 SETXY ; BASIC ENTRY - A=(SETXY,XPOS,YPOS)1390 PLA ; # OF ARGS1e}1392 PLA ; XPOS HIGH - DISREGARD1394 PLA ; XPOS LOW1396 TAX 1398 PLA ; YPOS HIGH -1f} DISREGARD1400 STA YPOS+11402 PLA ; YPOS LOW1404 TAY 1406 POSITION ; MC ENTRY - X=XPOS, Y=YPOS11g}408 LDA #$001410 STA YPOS+11412 STY YPOS1414 STX XPOS1416 TXA 1418 AND #31420 ASL A1422 1q}BA1450XLDDOCBADVERTS DOCB%AUTORUN SYSB'COLRWEELBASB.COVERPICPICB#MDOS DOCBJpDOS SYSB DOS2 DOCB*DUP SYSBEGFFDR BASBFFDR COMB;FFDR DOCB@FFDR SRCBINTRO BASBINTRO DOCB'KEYBOARDDOCBMENU BASB(MODELS DOCB?PICLOAD BASB DPRINTER BASB5PPROTECT DOCBSPARTA BASB XF551MODDOCBXR40 DOC4XR40 OBJ STA BITROT ; BITROT=(XPOS&3)*21424 LSR XPOS1426 LSR XPOS ; XPOS = XPOS/41428 ASL YPOS1430 ROL YPOS+1r}1 ; *21432 ASL YPOS1434 ROL YPOS+1 ; *41436 ASL YPOS1438 ROL YPOS+1 ; *81440 LDA YPOS1442 ST1s}A YPOS81444 LDA YPOS+11446 STA YPOS8+11448 ASL YPOS1450 ROL YPOS+1 ; *161452 ASL YPOS1454 ROL 1t}YPOS+1 ; *321456 LDA YPOS1458 CLC 1460 ADC YPOS81462 STA YPOS1464 LDA YPOS+11466 ADC YPOS8+111u}468 STA YPOS+1 ; YPOS = (Y*32)+(Y*8)1470 LDA YPOS1472 CLC 1474 ADC XPOS1476 STA LETADR1478 LDA 1v}YPOS+11480 ADC #01482 STA LETADR+1 ; LETADR = YPOS + XPOS1484 LDA LETADR1486 CLC 1488 ADC $581490 1w} STA LETADR1492 LDA LETADR+11494 ADC $591496 STA LETADR+1 ; ADD SCREEN ADDRESS TO LETADR1498 RTS 1500 1x}; ------------1502 COLOUR ; BASIC ENTRY - A=USR(COLOUR,VAL)1504 PLA ; # OF ARGS1506 PLA ; C1y}OLOUR HIGH - DISREGARD1508 PLA ; COLOUR LOW1510 SETCOL ; MC ENTRY - A=COLOUR VALUE1512 AND #3 1z}; COLOURS 0-3 ONLY1514 STA LETCOL1516 RTS 1518 ; ------------1520 MESSAGE ; BASIC ENTRY - A=USR(MESSAGE,ADR1{}(MESSAGE$))1522 PLA ; # OF ARGS1524 PLA ; MESSAGE ADDRESS HIGH-BYTE1526 TAX 1528 PLA 1|} ; MESSAGE ADDRESS LOW-BYTE1530 TAY 1532 DOMSG ; MC ENTRY - X=MESSAGE ADDRESS HIGH BYTE, Y=LOW BYTE1534 1}} STX MLOOP+21536 STY MLOOP+11538 MLOOP1540 LDA $FFFF ; GET CHARACTER1542 PHA 1544 AND #$7F ; IGNORE1~} INVERSE1546 JSR ONELET ; DISPLAY IT1548 INC MLOOP+1 ; INCREMENT POINTER1550 BNE MSKIP1552 INC MLOOP+211}554 MSKIP1556 PLA 1558 BPL MLOOP ; IF LAST LETTER WAS INVERSE THEN STOP1560 RTS 1562 ; ------------1564 ; 1}END OF DISPLAY ROUTINES1566 ; ------------1568 ; ------------1570 ; START OF CHARACTER SET INFO.1572 ; ------------1574 1}CHRTAB1576 .WORD SPACE,XMARK,DQUOT,HASH1578 .WORD STRNG,PERC,AMPER,SQUOT1580 .WORD LBRAK,RBRAK,TIMES,PLUS15821} .WORD COMMA,MINUS,FSTOP,DIVD1584 .WORD N0,N1,N2,N3,N4,N5,N61586 .WORD N7,N8,N9,COLON,SEMI1588 .WORD LTHAN1},EQUAL,GTHAN1590 .WORD QUERY,AT,CA,CB,CC,CD1592 .WORD CE,CF,CG,CH,CI,CJ,CK1594 .WORD CL,CM,CN,CO,CP,CQ,CR15961} .WORD CS,CT,CU,CV,CW,CX,CY1598 .WORD CZ,OPSQR,BSLSH,CLSQR1600 .WORD CARAT,UNDER,CTL001602 .WORD CTL01,CTL1}02,CTL031604 .WORD CTL04,CTL05,CTL061606 .WORD CTL07,CTL08,CTL091608 .WORD CTL10,CTL11,CTL121610 .WORD CT1}L13,CTL14,CTL151612 .WORD CTL16,CTL17,CTL181614 .WORD CTL19,CTL20,CTL211616 .WORD CTL22,CTL23,CTL241618 .1}WORD CTL25,CTL26,ESC,CURUP1620 .WORD CURDN,CURLT,CURRT1622 .WORD DIAMD,LA,LB,LC,LD,LE1624 .WORD LF,LG,LH,LI,LJ1},LK,LL1626 .WORD LM,LN,LO,LP,LQ,LR,LS1628 .WORD LT,LU,LV,LW,LX,LY,LZ1630 .WORD SPADE,VBAR,CLR,BS,TAB1632 ; --1}----------1634 HEITAB1636 .BYTE 9,7,9,9,9,9,9,2,7,71638 .BYTE 9,9,2,1,1,9,5,5,5,51640 .BYTE 5,5,5,5,5,5,5,9,91},91642 .BYTE 9,9,9,7,7,7,7,7,7,71644 .BYTE 7,7,7,7,7,7,7,7,7,71646 .BYTE 7,7,7,7,7,7,7,7,7,91648 .BYTE 9,1}9,9,9,9,9,9,9,9,91650 .BYTE 9,9,9,9,9,9,9,9,9,91652 .BYTE 9,9,9,9,9,9,9,9,9,91654 .BYTE 9,9,9,9,9,9,9,5,7,5161}56 .BYTE 7,5,7,7,7,7,9,7,7,51658 .BYTE 5,5,7,7,5,5,7,5,5,51660 .BYTE 5,7,5,9,9,9,9,91662 ; ------------1664 W1}IDTAB1666 .BYTE 4,2,4,4,4,4,4,2,3,31668 .BYTE 4,4,2,6,2,4,6,6,6,61670 .BYTE 6,6,6,6,6,6,2,4,4,41672 .BYTE1} 4,4,4,6,6,6,6,6,6,61674 .BYTE 6,6,6,6,6,6,6,6,6,61676 .BYTE 6,6,6,6,6,6,6,6,6,41678 .BYTE 4,4,4,4,4,4,4,4,4,41}1680 .BYTE 4,4,4,4,4,4,4,4,4,41682 .BYTE 4,4,4,4,4,4,4,4,4,41684 .BYTE 4,4,4,4,4,4,4,6,6,61686 .BYTE 6,6,1}4,6,6,2,3,5,3,61688 .BYTE 6,6,6,6,4,6,3,6,6,61690 .BYTE 6,6,6,4,4,4,4,41692 ; ------------1694 DRPTAB1696 .B1}YTE 0,0,0,0,0,0,0,0,0,01698 .BYTE 0,0,6,3,6,0,2,2,2,21700 .BYTE 2,2,2,2,2,2,2,0,0,01702 .BYTE 0,0,0,0,0,0,0,0,1}0,01704 .BYTE 0,0,0,0,0,0,0,0,0,01706 .BYTE 0,0,0,0,0,0,0,0,0,01708 .BYTE 0,0,0,0,0,0,0,0,0,01710 .BYTE 01},0,0,0,0,0,0,0,0,01712 .BYTE 0,0,0,0,0,0,0,0,0,01714 .BYTE 0,0,0,0,0,0,0,2,0,21716 .BYTE 0,2,0,2,0,0,0,0,0,211}718 .BYTE 2,2,2,2,2,2,0,2,2,21720 .BYTE 2,2,2,0,0,0,0,01722 ; ------------1724 ; IMAGE DATA FOLLOWS1726 ; -------1}-----1728 ; PLACE UN-USED CHARACTER1730 ; LABELS HERE - THIS MAKES1732 ; EQUIVALENT TO SPACES1734 ; ------------1736 DQU1}OT1738 HASH1740 STRNG1742 PERC1744 AMPER1746 TIMES1748 PLUS1750 DIVD1752 SEMI1754 LTHAN1756 EQUAL1758 GTHAN1760 Q1}UERY1762 AT1764 OPSQR1766 BSLSH1768 CLSQR1770 CARAT1772 UNDER1774 CTL001776 CTL011778 CTL021780 CTL031782 CTL04171}84 CTL051786 CTL061788 CTL071790 CTL081792 CTL091794 CTL101796 CTL111798 CTL121800 CTL131802 CTL141804 CTL151806 C1}TL161808 CTL171810 CTL181812 CTL191814 CTL201816 CTL211818 CTL221820 CTL231822 CTL241824 CTL251826 CTL261828 ESC11}830 CURUP1832 CURDN1834 CURLT1836 CURRT1838 DIAMD1840 SPADE1842 VBAR1844 CLR1846 BS1848 TAB1850 ; ------------18521} ; DEFINITIONS START HERE1854 ; ------------1856 SPACE1858 .BYTE 0,0,0,0,0,0,0,0,01860 .BYTE 0,0,0,0,0,0,0,0,0181}62 ; ------------1864 ; CAPITALS1866 ; ------------1868 CA1870 .DBYTE $FC00,$C300,$C0C0,$CFC01872 .DBYTE $C0C0,$1}C0C0,$C0C01874 CB1876 .DBYTE $F000,$CC00,$C300,$FFC01878 .DBYTE $C0C0,$C300,$FC001880 CC1882 .DBYTE $0FC0,$31}000,$C000,$C0001884 .DBYTE $C000,$C000,$FFC01886 CD1888 .DBYTE $FC00,$C300,$C0C0,$C0C01890 .DBYTE $C0C0,$C3001},$CC001892 CE1894 .DBYTE $0FC0,$3000,$C000,$FC001896 .DBYTE $C000,$C000,$FFC01898 CF1900 .DBYTE $0FC0,$3000,1}$C000,$FC001902 .DBYTE $C000,$C000,$C0001904 CG1906 .DBYTE $0FC0,$3000,$C000,$CF001908 .DBYTE $C0C0,$C0C0,$FF1}001910 CH1912 .DBYTE $C0C0,$C0C0,$C0C0,$FFC01914 .DBYTE $C0C0,$C0C0,$C0C01916 CI1918 .DBYTE $C000,$C000,$C001}0,$C0001920 .DBYTE $C000,$C000,$C0001922 CJ1924 .DBYTE $C0,$C0,$C0,$C01926 .DBYTE $C0,$C0C0,$3FC01928 CK1931}0 .DBYTE $C000,$C0C0,$C300,$CC001932 .DBYTE $FC00,$C300,$C0C01934 CL1936 .DBYTE $C000,$C000,$C000,$C0001938 1} .DBYTE $C000,$C000,$3FC01940 CM1942 .DBYTE $3300,$CCC0,$CCC0,$CCC01944 .DBYTE $CCC0,$CCC0,$CCC01946 CN1948 1} .DBYTE $FC00,$C300,$C0C0,$C0C01950 .DBYTE $C0C0,$C0C0,$C0C01952 CO1954 .DBYTE $0FC0,$30C0,$C0C0,$C0C01956 .1}DBYTE $C0C0,$C0C0,$CFC01958 CP1960 .DBYTE $FFC0,$C0C0,$C300,$CC001962 .DBYTE $C000,$C000,$C0001964 CQ1966 .D1}BYTE $0FC0,$30C0,$C0C0,$C0C01968 .DBYTE $CCC0,$C3C0,$F0C01970 CR1972 .DBYTE $FFC0,$C0C0,$C300,$CC001974 .DBYT1}E $CC00,$C300,$C0C01976 CS1978 .DBYTE $0FC0,$3000,$C000,$FFC01980 .DBYTE $C0,$0300,$FC001982 CT1984 .DBYTE $1}FFC0,$0C00,$0C00,$0C001986 .DBYTE $0C00,$0C00,$0C001988 CU1990 .DBYTE $C0C0,$C0C0,$C0C0,$C0C01992 .DBYTE $C0C1}0,$30C0,$0FC01994 CV1996 .DBYTE $C0C0,$C0C0,$C300,$C3001998 .DBYTE $CC00,$CC00,$F0002000 CW2002 .DBYTE $CCC01},$CCC0,$CCC0,$CCC02004 .DBYTE $CCC0,$CCC0,$33002006 CX2008 .DBYTE $C0C0,$C0C0,$3300,$0C002010 .DBYTE $3300,$C1}0C0,$C0C02012 CY2014 .DBYTE $C0C0,$30C0,$0CC0,$03C02016 .DBYTE $C0,$C0,$3F002018 CZ2020 .DBYTE $FFC0,$C0,$031}00,$0C002022 .DBYTE $3000,$C000,$FFC02024 ; ------------2026 ; LOWER CASE2028 ; ------------2030 LA2032 .DBYTE 1}$FFC0,$C0C0,$C0C02034 .DBYTE $30C0,$0CC02036 LB2038 .DBYTE $C000,$C000,$FFC0,$C0C02040 .DBYTE $C0C0,$C300,$CC1}002042 LC2044 .DBYTE $3FC0,$C000,$C0002046 .DBYTE $C000,$3FC02048 LD2050 .DBYTE $C0,$C0,$FFC0,$C0C02052 1} .DBYTE $C0C0,$30C0,$0CC02054 LE2056 .DBYTE $3FC0,$C300,$CC002058 .DBYTE $C000,$3FC02060 LF2062 .DBYTE $3C001},$C000,$F000,$C0002064 .DBYTE $C000,$C000,$C0002066 LG2068 .DBYTE $FFC0,$C0C0,$C0C0,$30C02070 .DBYTE $0CC0,$C1}0,$FFC02072 LH2074 .DBYTE $C000,$C000,$FF00,$C0C02076 .DBYTE $C0C0,$C0C0,$C0C02078 LI2080 .DBYTE $C000,$00,$1}C000,$C0002082 .DBYTE $C000,$C000,$C0002084 LJ2086 .DBYTE $3000,$00,$30002088 .DBYTE $3000,$3000,$30002090 1} .DBYTE $3000,$3000,$C0002092 LK2094 .DBYTE $C000,$C000,$C300,$CC002096 .DBYTE $F000,$CC00,$C3002098 LL2100 1} .DBYTE $C000,$C000,$C000,$C0002102 .DBYTE $C000,$C000,$30002104 LM2106 .DBYTE $3300,$CCC0,$CCC02108 .DBYTE 1}$CCC0,$CCC02110 LN2112 .DBYTE $3F00,$C0C0,$C0C02114 .DBYTE $C0C0,$C0C02116 LO2118 .DBYTE $3F00,$C0C0,$C0C021}120 .DBYTE $C0C0,$3F002122 LP2124 .DBYTE $FFC0,$C0C0,$C0C0,$C3002126 .DBYTE $CC00,$C000,$C0002128 LQ2130 1} .DBYTE $FFC0,$C0C0,$C0C0,$30C02132 .DBYTE $0CC0,$C0,$C02134 LR2136 .DBYTE $3C00,$C000,$C0002138 .DBYTE $C0001},$C0002140 LS2142 .DBYTE $3FC0,$C000,$3F002144 .DBYTE $C0,$FF002146 LT2148 .DBYTE $C000,$C000,$F000,$C000211}50 .DBYTE $C000,$C000,$30002152 LU2154 .DBYTE $C0C0,$C0C0,$C0C02156 .DBYTE $C0C0,$3F002158 LV2160 .DBYTE1} $C0C0,$C300,$CC002162 .DBYTE $F000,$30002164 LW2166 .DBYTE $CCC0,$CCC0,$CCC02168 .DBYTE $CCC0,$33002170 LX1}2172 .DBYTE $C0C0,$C0C0,$3F002174 .DBYTE $C0C0,$C0C02176 LY2178 .DBYTE $C0C0,$C0C0,$30C0,$0CC02180 .DBYTE1} $03C0,$C0,$0FC02182 LZ2184 .DBYTE $FFC0,$0300,$0C002186 .DBYTE $3000,$FFC02188 ; ------------2190 ; NUMBERS2191}2 ; ------------2194 N02196 .DBYTE $3F00,$C3C0,$CCC02198 .DBYTE $F0C0,$3F002200 N12202 .DBYTE $3C00,$0C00,$01}C002204 .DBYTE $0C00,$0C002206 N22208 .DBYTE $FF00,$C0,$3F002210 .DBYTE $C000,$3FC02212 N32214 .DBYTE $1}FF00,$C0,$FF002216 .DBYTE $C0,$FF002218 N42220 .DBYTE $C000,$C300,$3FC02222 .DBYTE $0300,$03002224 N52226 1} .DBYTE $FFC0,$C000,$3F002228 .DBYTE $C0,$FF002230 N62232 .DBYTE $3FC0,$C000,$CF002234 .DBYTE $C0C0,$3F0021}236 N72238 .DBYTE $FF00,$C0,$C02240 .DBYTE $C0,$C02242 N82244 .DBYTE $3F00,$C0C0,$3F002246 .DBYTE $C0C0,1}$3F002248 N92250 .DBYTE $3F00,$C0C0,$3FC02252 .DBYTE $C0,$FF002254 ; ------------2256 ; EXTRAS2258 ; ----------1}--2260 FSTOP2262 .DBYTE $C0002264 COMMA2266 SQUOT2268 .DBYTE $C000,$C0002270 COLON2272 .DBYTE $C000,$00,$01}0,$00,$C0002274 MINUS2276 .DBYTE $FFC02278 XMARK2280 .DBYTE $C000,$C000,$C000,$C0002282 .DBYTE $C000,$00,$C01}002284 LBRAK2286 .DBYTE $F000,$C000,$C000,$C0002288 .DBYTE $C000,$C000,$F0002290 RBRAK2292 .DBYTE $F000,$3001}0,$3000,$30002294 .DBYTE $3000,$3000,$F0002296 ; ------------2298 ; END OF CHARACTER DEFINITIONS2300 ; ------------21}302 FINISH2304 ; ------------2306 *= $02E02308 .WORD INIT ; Insert disk initialisation adr.300 ; ------------20i  +AR@CC(;This brief introduction will now appear on all issues.--(%-----5}--------------------------------(rr(iFor the purpose of reading text files,a program called XR40.OBJ has been supplied.5} This also has a DOC2HH(@ file called XR40.DOC which explains how to use this program.7(<mm(dXR40 can be run fr5}om the menu, after pressing Y when asked if you wish to turn off Basic. When theFtt(l program starts, type D:XR40.5}DOC and press return. Press the space bar to advancethrough the pages.PC(C(8Also read D:INTRO.DOC which is the in5}troduction file.Z0(0(%PRESS THE START KEY TO CONTINUE......d F:B2y,@An% D:PICLOAD.BAS 5}D:INTRO.BASile.Z0(0(%PRESS THE START KEY TO CONTINUE......d F:B2y,@An% D:PICLOAD.BAS 4 Well, here it is! Issue 2 of the news-disk. This one has been just as difficult to put together as issue 1, main9}ly because of the lack of submissions. Since last issue I have received a massive ONE submission. The other articles on this 9}disk have again been taken from the Unix newsnet system. A big thank you goes to Mark Keates who wrote the Fancy Font Display9} Routine(FFDR), which is on this disk. If Mark can find time to write this sort of thing (he is also a student), then I'm sur9}e you can too. Don't forget, I have no long list of submission rules. I will include anything you write on the next issue. 9} And now a word about this year's All Micro Show (AMS5). I will be there, exhibiting as usual. This time I have booked a 29}4feet stand. Also with me will be Mark Keates and Mike Blenkiron. It is on the 9th November (Saturday) at Bingley Hall in Sta9}fford. I will have the PD library there and will be duplicating disks during the day. Prices will, as usual, be cheaper at th9}e show. How much cheaper hasn't been decided yet. I will also have all the used software, books, and possibly hardware there 9}as well, so you can buy some of that while you're there! Also, bring all your questions along to us during the day. We'll be 9}happy to answer them for you! We've got 24feet to use up so we'll probably have some demonstrations of something or other whi9}le we're there. Details will come later. Please come and support us. We need your help (and money!!) This issue has som9}ething for everyone. As mentioned earlier, there is the excellent Fancy Font Display Routine. This consits of various files: 9}FFDR.COM is the main file, EGFFDR.BAS is an example program, FFDR.SRC is the M/C source code, and FFDR.DOC is the article for9} it. Also on this issue is an article on disk protection techniques, two on the different Atari DOSs available, some on9} what machines were released by Atari, and those that weren't!, a program for SpartaDOS 3.2d users to change the sparta comma9}ns to your own choosing (docs. are in REM statements in the program itself), one on repairing keyboard faults, an one on modi9}fying the XF551 disk drive. There may be others added at the last minute, but as usual the filenames will give an indication 9}as to what they contain. I would now like to mention that this issue is dedicated to Frank Card, who died before issue 9}1 was sent. He was a good customer and certainly kept me on my toes. He was looking forward to reading the news-disk, but nev9}er got the chance to. And now a bit of a warning. You may have heard of a guy called Mike Halford who repairs Atari 8-b9}it hardware, and offers cash for your dead hardware. Well, having spoken to many "top people" in the Atari world, and through9} my own experiences, it seems that this guy is a little bit of a crook. He owes me a large sum of money (and has done for a l9}ong time now), and makes promises he cannot keep. His repair work has been described as "a bit dodgy". He advertises in the c9}ontact column in page 6, and in micro mart. Do not on any account send him anything without getting payment first. Oh y9}es, one other thing. The news-disk is being distributed in the States by Jeff Edwards, who is also my main supplier of PD, an9}d also is the official US distributer of DMS. My address for all correspondence is: DEAN GARRAGHTY 62 THOMSO9}N AVE BALBY DONCASTER DN4 0NU ENGLANDress for all correspondence is: DEAN GARRAGHTY 62 THOMSO8:This article has been taken from Z*MAG Atari on-line newsletter. It is a good article on fixing keyboards. File transferred b=}y Mike Blenkiron, and tidied by Dean Garraghty (with a bad cold!)----------------------------------- (Reprinted from the M=}id-Florida Atari Computer Club Bulletin)by Len SpencerThis is probably one of the last articles original to me for a whil=}e, but I will try to bring you some of the best fixes, modifications, and other projects of other authors in the coming month=}s. In this article however, I will try to give a little help on fixing one of the more common breakdowns, the keyboard. I'm=} sure quite a few of you have an Atari in the closet with a keyboard that has gone belly-up in one way or another. You woul=}d like to put that machine to use again, or would like to sell it for the best price as a working computer, so let's dig righ=}t in.The 400's membrane keyboard was a joke from the git-go. The only solution there is replacement, and a lot of people r=}eplaced them with third party keyboards. Since there were so many manufacturers, I can't even begin to cover them all here.=}With the 800's, as well as the 800XL, there were more than one design of keyboards, by far the most durable of which was th=}e full stroke, contact-switch type. Stackpole was one of the major manufacturers here. While I'm notsure about what percenta=}ge of 800's used this type, not many of the 800XL's had them. If you should happen to have an 800 or 800XL with a Stackpole =}keyboard, then you should have very little if any problems with it. If you lose function of a key here, a nice bath with a g=}ood tuner cleaner will take care of even the nastiest keys. If that doesn't work, then the keyswitch can be replaced.The o=}ther was the printed circuit contact sheet, where conductive paint traces were silkscreened onto plastic sheets. My 800 is o=}ne of these, manufactured by Mitsumi, and a lot of the 800XL's were made by Chelco. Here you must exercise a little more caut=}ion. DO NOT use any solvent type cleaner or you will wash the traces right off. The only thing you can use here is a little=} water and a soft cloth. Even alcohol will discolor the traces and raise the resistance. If a trace is broken, a little dab=} of conductive paint, available at any electronic supply store, will fix it up nicely. If the key still doesn't work, try gi=}ving the spring that presses against that contact a little stretch. Be careful here, as it is easy to go too far and have th>}e key stick on all the time. Remember, it is easier to stretch a spring than it is to shorten it, (cutting it is "NOT" an acc>}eptable alternative!!). If the problem is a key sticking on all the time, try it with the pressure spring removed. If it st>}ops repeating, then shorten the pressure spring by squeezing it down with gentle pressure. If it still sticks, then take the>} separator sheet (the one with all the holes in it), and add a piece of scotch tape over the corresponding hole, and cut out >}the tape where it covers the hole. Don't use masking tape or anything like that, as it is too thick. You should never use m>}ore than two layers of scotch tape for this type of repair. If it still sticks after two, then replace the keyboard or use t>}he computer for parts. There are quite a few 800XL's floating around that can be had for a more-than-reasonable price, and y>}ou should be able to find one with a working keyboard.The 130XE was a radical departure from the others, in it used only a >} single sheet of plastic, with a contact on the bottom of the keyshafts bridging two contacts on the sheet. Here if cleaning> } doesn't help, save yourself a lot of aggravation and replace the keyboard.If you've found everything to be fine and dandy > }with the keyboard itself, but you don't have function of a group of keys, check the ribbon connector where the keyboard conne> }cts to the computer. There may be a bad connection. On the 800 this shouldn't happen, as this is a full plastic-bodied 18-p> }in connector. On the 800XL, the ribbon is merely an extension of the silk-screened sheet that slips into a connector on the > }main board. If part of the conductive paint has been scrapped away, you can reach fresh trace by trimming down the ribbon a l>}ittle. If you find yourself having to go too far, then replace the keyboard.Sometimes the problem is on the main board its>}elf. The keyboard is read by two 4051 decoders and fed into the POKEY chip. Try swapping out the chips, one at a time, and >}eventually the keyboard should come back to life. If not, then there is a more serious problem that requires professional at>}tention.Hopefully, I have given you enough information here to enable you to do your own keyboard repairs and save a little>} money.Hopefully, I have given you enough information here to enable you to do your own keyboard repairs and save a little<  ABCDMXYLOOBBA(Bh@@ @B} @ S."D:MENU.SYS LOAD*IT BY KARL STIEFVATERREVISED 10/24B}/85BY CLAYTON WALNUMCOPYRIGHT (C) 1985(BY ANALOG COMPUTING2 Ap<&&;@ ,;@,;@@B},FA +AR@A6-F:A`,%F:Aa,$AVPk0@70@Q0B}@@k0@ZG%@@d%@3%@@G%@&@Hd70B}@@70@@@nd6-6-% Ap,(}R(! ӭ ISSB}UE #2d-@@x1@1@@D:*.*2@27@<@,4 FA`B}&&7@<@,4SYSA06-%@( 2@27@<@,4 FA`&&7@B}<@,4SYSAE( A0K-@(->.-@@!K(USE