@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@P!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr  ) 0ԍ- $ J`X=USR(8255) Jʍ ! G"0{ " #ЅMh߬} #~v! UP #ɪйL$, ,L@%,L$ L% BHILV L$ԍ !R $T J }l !`}POKE842,12:GR.0 Joystick-Lader N.Hagemann,Berlin OPTIONBASIC SELECTMenue STARTLad}en D:*.*DOS.SYS(5BP]jx %2@MZhu"0=JXer -:HUbp}!"R! $UTF! $` BLV "BqD!EJKLV &" `ͩ( }Ω̢͝DΝEHIB V0 "L"̅=ͩ(ΠUȄTˤ˱ ˥U' "۩ԅ y#`iͥ }i`X}}!ͥY}!"#Π I͈`xx~# ̈ եEՈ Ș80 }Ȅե̐Ո " "Յ`D|:} ~ͩ(Φ " ~.~͝ȱ͝ }ȱ͝` "B|D#$EJK V0D,EHIB VCH "h`} !!! BASIC ist nicht eingeschaltet }!!! } !!! Das Laden ist nicht moeglich !!! } !! File ist nicht auf der Diskette !! +$ T$}$UT $XiͥY}iΩϠ&I͈ $% "LS ϠˆͅΤ˱ E `ԍR(% $|L }POKE842,12:GR.0:RUN"R}} |DEHI,,H,H L R(% $|L }POKE842,12:GR.0:RUN"RN ORG $3000**************************** LABEL EQUATES***************************CLICK: EQU $FCD8}SDLSTL: EQU $230SDLSTH: EQU $231PCOLR3: EQU $2C7PCOLR4: EQU $2C8GPRIOR: EQU $26FCH: EQU $2F}CCONSOL: EQU $D01FPORTA: EQU $D300TRIG0: EQU $D010KBF: EQU $38KBC: EQU $12KBD: EQU $}3AKBL: EQU $00KBM: EQU $25KBS: EQU $3EKBE: EQU $2AKBR: EQU $28KBG: EQU $3DKB}B: EQU $15KBX: EQU $16KBV: EQU $10KBZ: EQU $17CONSTR: EQU $6CONOPT: EQU $3CONSEL: } EQU $5TEMP1: EQU $CFTEMP2: EQU $D0TEMP3: EQU $CDTEMP4: EQU $CETEMP5: EQU $CBTEMP6: EQU } $CCTEMP7: EQU $C9TEMP8: EQU $CAIC EQU $340SETVBV: EQU $E45CCIOV EQU $E456XITVB: EQU } $E462VVBLKD: EQU $224MENUF: EQU $3FBAMENUS: EQU $3FE2MENUE: EQU $407BMENUD: EQU $402BMENUM: } EQU $4032MENUFN: EQU $40CBFILE: EQU $40D4SHDR: EQU $40SHDG: EQU $C0SHDB: EQU $90 } EJECT*************************** MAINLINE KEYBOARD* ROUTINE. WORKS THRU THE* CH REGISTER AND CONSOLE* REGISTER}************************** JMP ERASE ;CLEAR THE PICTUREKEY2: LDA #$81 ;COMPLETE INITIALI}ZATION LDX #$63 ;SETUP THE MENU COLORS STA PCOLR3 STX PCOLR4 LDX } #LOW MENU ;POINT TO THE MENU SCREEN LDA #HIGH MENU STX SDLSTL STA SDLSTHKEYS: } LDY #$FF ;PARTIAL INITIALIZATION LDX #$7NOHIT: CPX CONSOL ;CHECK CONSOL REG. } BEQ ALPHA ;BRANCH IF CLEAR STY CH ;CLEAR THE CH REG. JMP PRIOR ;SERVICE CO}NSOLALPHA: CPY CH ;CHECK KEYBOARD BEQ NOHIT ;BRANCH IF CLEAR LDA CH  };GET CHAR STY CH ;CLEAR CH REG.RA1: CMP #KBR ;CHECK FOR R KEY BNE GA1 !} JMP RBO ;SERVICE RED LEVELGA1: CMP #KBG ;CHECK FOR G KEY BNE BA1 JM"}P GBO ;SEVCIVE GREEN LEVELBA1: CMP #KBB ;CHECK FOR B KEY BNE XKEY JMP #}BBO ;SERVICE BLUE LEVELXKEY: CMP #KBX ;CHECK FOR X KEY BNE FKEY JMP XIT $} ;SERVICE EXITFKEY: CPY VON ;CHECK IF IN VIEW BEQ KEYS ;DISABLE KEYS IF VIEW %} CMP #KBF ;CHECK FOR F KEY BNE LETT JMP FSET ;SERVICE FORMATLETT: CMP #K&}BC ;CHECK FOR C KEY BNE L2 JMP GETIT ;SERVICE RETRIEVEL2: CMP #KBD ;C'}HECK FOR D KEY BNE SSET JMP PUTIT ;SERVICE STORAGESSET: CMP #KBL ;CHECK FOR L(} KEY BNE S1 JMP SLOW ;SERVICE 24 SEC RATES1: CMP #KBM ;CHECK FOR M KEY )} BNE S2 JMP MED ;SERVICE 12 SEC RATES2: CMP #KBS ;CHECK FOR S KEY B*}NE ERA JMP FAST ;SERVICE 8.5 SEC RATEERA: CMP #KBE ;CHECK FOR E KEY BNE +} VKEY JMP ERASE ;SERVICE ERASEVKEY: CMP #KBV ;CHECK FOR V KEY BNE ZING ,} JMP VIT ;SERVICE VIEWZING: CMP #KBZ ;CHECK FOR Z KEY BNE KEYS ;BRANCH IF IN-}VALID KEY JMP FULL ;SERVICE FULL SCREEN EJECT*************************** SERVICE ROUTINE.}S* THESE ARE CALLED FROM THE* KEYBOARD HANDLER AND DO* THE REQUESTED SERVICES************************** * VIEW ME/}MORY SERVICEVIT: LDA #$FF ;SET THE VIEW SWITCH STA WING JSR CLICK ;SOUND TH0}E KEY JSR COLL ;JUMP TO THE COLLECTION JMP KEYS ;THEN RETURN TO KYBD* CONSOLE 1}SERVICEPRIOR: LDA VON ;CHECK FOR VIEW CMP #$FF ;OPERATION AND STOP BEQ PROU2}T ;IF IN PROGRESS LDA CONSOL ;SAVE THE CONSOLE SWITCH STX CONSOL ;THEN CLEAR THE REG3}. CMP #CONSTR ;CHECK FOR START BNE PROUT ;ONLY START IS ACTIVE NOW JSR COLL4} ;GO TO COLLECTIONPROUT: JMP KEYS ;THEN RETURN TO KYBD * FORMAT ROUTINEFSET: JSR CLICK 5} ;SOUND THE KEY LDA #$3 ;ALLOW 3 NUMBERS LDX #$0 ;OFFSET ON SCREEN STX6} TEMP2 STA TEMP1 LDA #$1 ;SET LOW BIT IN FORMAT STA FORMATN0: LDY7} #$FFN1: CPY CH ;CHECK FOR KEY BEQ N1 ;WAIT TIL STRUCK LDA CH 8} ;GET THE KEY STY CH ;AND CLEAR REG. LDX TEMP2 ;GET OFFSET CMP #$329} ;CHECK FOR # 0 BNE N2 LDA #$50 ;PUT 0 ON SCREEN STA MENUF,X :}INX ;MOVE POINTER INX ASL FORMAT ;SHIFT A 0 INTO FORMAT JMP NF ;} ;FINISHN2: CMP #$1F ;CHECK FOR # 1 BNE N3 LDA #$51 ;PUT 1 ON SCREEN <} STA MENUF,X INX ;MOVE POINTER INX SEC ;SHIFT A 1&0 INT=}O FORMAT ROL FORMAT ASL FORMAT BCC NF ;CHECK FOR OVERFLOW ROR >} FORMAT ;RESET VALUE JMP NFN3: CMP #$1E ;CHECK FOR # 2 BNE N0 ;KEEP ?}LOOKING LDA #$52 ;PUT A # 2 ON SCREEN STA MENUF,X INX INX LDA@} #$76 ;CHECK FOR 2X2X2 CMP FORMAT BNE G3 LDA #$FF ;SET FOR 2X2X2 A} STA FORMAT JMP NFG3: SEC ;SHIFT 1 1 INTO FORMAT ROL FORMAT B} SEC ROL FORMAT BCC G1 ;CHECK FOR OVERFLOW ROR FORMAT ;RESET C} JMP NFG1: ASL FORMAT BCC NF ROR FORMATNF: STX TEMP2 ;STORE POD}INTER JSR CLICK ;PUT OUT KEY CLICK DEC TEMP1 ;COUNT ONE KEY BNE N0 E} ;KEEP LOOKING LDA #$FF ;CHECK FOR 2X2X2 CMP FORMAT BNE G2 LDA F} #$DB ;STORE THE CORRECTION STA FORMAT JMP KEYS ;FINISHED SERVICEG2: CLC G} ;SHIFT 1 TO FRONTFILL: ROL FORMAT BCC FILL JMP KEYS ;FINISHED SERVICE*H} EXIT SERVICE ROUTINEXIT: JSR CLICK ;SOUND KEYBOARD LDA #$7 ;RESTORE VB INTR. I} LDY VBINT ;TO PRIOR VALUES LDX VBINT+1 ;AND STOP THE CYCLE JSR SETVBV J}LDA #$BF ;SHUT OFF GRAPHICS 9 AND GPRIOR STA GPRIOR LDA SCRPNT ;RESETK} SCREEN LDX SCRPNT+1 ;POINTER TO MENU STA SDLSTL STX SDLSTH LDY #$0L} ;SHUT OFF ANY VIEW STY WING ;OPERATIONS STY VON ;DISABLE VIEW CPY M} ZON ;CHECK FOR FULL SCREEN BNE ERASE ;GET RID OF FULL SCREEN JMP KEY2 ;FULLN} INITIALIZATION* SPEED SERVICE ROUTINESLOW: JSR CLICK ;SOUND KEY LDY #$3 ;POINT TO}O 24SEC VALUESP1: LDA SPD3-1,Y ;AND PUT ON SCREEN STA MENUS-1,Y DEY BNE SP1P} LDA #$B ;SET COUNTER FOR STA AVR+1 ;LONG AVERAGE STA COMP ;SET CQ}OMPOSITE JMP KEYS ;AND RETURNMED: JSR CLICK ;SOUND KEY LDY #$3 ;POINTR} TO 12SECSP2: LDA SPD2-1,Y ;VALUE AND PUT STA MENUS-1,Y ;ON SCREEN DEY BNE S} SP2 LDA #$5 ;SET COUNTER FOR STA AVR+1 ;MEDIUM AVERAGE STA COMP T};SET FOR COMPOSITE JMP KEYS ;AND RETURNFAST: JSR CLICK ;SOUND KEY LDY #$3 U} ;POINT TO 8.5SEC SP3: LDA SPD1-1,Y ;VALUE AND PUT STA MENUS-1,Y ;ON SCREEN DEY V} BNE SP3 LDA #$5 ;SET COUNTER FOR STA AVR+1 ;FAST AVERAGE LDA #W}$0 ;CLEAR COMPOSITE STA COMP ;FOR THIS SCAN JMP KEYS ;AND FINISH* ERASEX} MEMORY SERVICE ROUTINEERASE: JSR CLICK ;SOUND KEY LDY #$5 ;POINT TO ERASECL1: LDA Y} #$7F ;ON SCREEN AND AND MENUE-1,Y ;CHANGE COLOR STA MENUE-1,Y DEY BZ}NE CL1 LDA DLR1 ;POINT TO RED LDX DLR1+1 ;FRAME AND JSR CLEAR ;G[}O CLEAR LDA DLG1 ;POINT TO GREEN LDX DLG1+1 ;FRAME AND JSR CLEAR ;GO\} CLEAR LDA DLB1 ;POINT TO BLUE LDX DLB1+1 ;FRAME AND JSR CLEAR ;GO C]}LEAR LDY #$5 ;CHANGE ERASECL2: LDA #$80 ;BACK TO ORA MENUE-1,Y ;ORIGINAL^} STA MENUE-1,Y ;COLOR DEY BNE CL2 STY ZON ;STOP FULL SCREEN _} JMP KEY2 ;AND RETURNCLEAR: STA TEMP3 ;STORE POINTERS STX TEMP4 LDX #$C`}1 ;SET COUNTERCLGO3: LDA #$0 ;LOAD A BLANK LDY #$28 ;40 BYTES/LINECLGO1: STA a} (TEMP3),Y ;CLEAR A LINE DEY BNE CLGO1 STA (TEMP3),Y ;GET THE LAST CLC b} ;ADD ON A LINE LDA #$28 ADC TEMP3 BCC CLGO2 INC TEMP4CLGOc}2: STA TEMP3 DEX ;ONE LINE DONE BNE CLGO3 ;DO ANOTHER RTS d} ;DONE* COLOR LEVEL SERVICE ROUTINESRBO: JSR CLICK ;SOUND KYBD CLICK LDY RSHD e} ;GET THE LEVEL LDX #SHDR ;GET RED SHADE JSR CYCLE ;GO CHANGE VALUE STA f} RED ;STORE THE NEW VALUE STY RSHD ;STORE THE PRESENT SHADE JMP KEYS ;FINISHg}GBO: JSR CLICK ;SOUND KYBD CLICK LDY GSHD ;GET THE LEVEL LDX #SHDG ;GETh} GREEN SHADE JSR CYCLE ;GO CHANGE VALUE STA GREEN ;STORE NEW SHADE STY GSi}HD ;STORE THE PRESENT SHADE JMP KEYS ;FINISH BBO: JSR CLICK ;SOUND KYBD CLICK j} LDY BSHD ;GET PRESENT VALUE LDX #SHDB ;GET BLUE SHADE JSR CYCLE ;GO CHANk}GE VALUE STA BLUE ;STORE NEW SHADE STY BSHD ;STORE THE PRESENT SHADE JMP l} KEYS ;FINISH CYCLE: INY ;INCREASE LEVEL CPY #$8 ;CHECK FOR MAX BNEm} FROP LDY #$0 ;RESET IF MAXFROP: TYA ;MOVE VALUE AND ASL A n} ;DOUBLE STX TEMP3 ;WORK IN ORA TEMP3 ;HUE LDX #$C0 ;MAKE A NICEFo}TMP: DEX ;LITTLE DELAY BNE FTMP RTS ;DONE* SCAN SERVICE ROUp}TINECOLL: LDA SDLSTL ;POINT TO THE LDX SDLSTH ;MENU DISPLAY PATTERN STA SCRPNT q} ;AND STORE IT AWAY STX SCRPNT+1 ;FOR LATER LDA #HIGH DLST ;POINT TO THE LDX #r}LOW DLST ;RGB PATTERN STX TEMP5 ;AND STORE IT FOR STA TEMP6 ;LATER USE IN CYCLING s} STX SDLSTL ;NOW SET THE STA SDLSTH ;SCREEN TO THE RGB LDA #$40 ;AND SWITCt}H ON ORA GPRIOR ;THE GRAPHICS MODE STA GPRIOR ;FOR HI-RES LDA WING ;Cu}HECK IF THIS IS CMP #$FF ;A VIEW SERVICE BEQ NOGO LDA FORMAT ;GET THE FORv}MAT BNE BWOUT ;CHECK FOR B/W LDA #$80 ;ONE FRAMEBWOUT: LDX COMP ;CHECK w}FOR COMPOSITE BEQ COLT ;NOT A COMPOSITE LDA #$80 ;MAKE A 100 FORMATCOLT: STA x} FORM ;AND STORE IN TEMP.RGO: CLC ASL FORM ;CHECK FOR A BCC GGO ;1 TO COy}LL. RED JSR RSCR ;SET UP A RED FRAME JSR SSTV ;GET A RED FRAME JMP RGO z} ;ANOTHER RED?GGO: CLC ASL FORM ;CHECK FOR A BCC BGO ;1 TO COLL. GREEN {} JSR GSCR ;SET UP A GREEN FRAME JSR SSTV ;GET A GREEN FRAME JMP GGO |} ;ANOTHER GREEN?BGO: CLC ASL FORM ;CHECK FOR A BCC NOGO ;1 TO COLL. BLUE }} JSR BSCR ;SET UP A BLUE FRAME JSR SSTV ;GET A BLUE FRAME JMP BGO ;ANO~}THER BLUE?NOGO: LDY #$FF ;GET READY FOR STY VON ;VIEWING ENABLE LDY VVBLKD } ;FINISHED SCANNING LDX VVBLKD+1 ;SO SET UP THE STY VBINT ;VERT. BLANK INTR. }STX VBINT+1 ;FOR CYCLING LDA #$7 ;THE FRAME COLORS LDX #HIGH COLR ;BUT SAVE THE } LDY #LOW COLR ;PRESENT VALUES JSR SETVBV ;FOR RESETTING RTS ;RETURN TO} KYBD USE EJECT**************************** ACTUAL SCAN ROUTINE* THIS ROUTINE IS CALLED * FROM THE SCAN S}ERVICE* ROUTINE. IT WILL COLLECT* ONE FRAME OF VIDEO OF 120* LINES. IT WILL WAIT UNTIL* A VERTICAL SYNC IS DETECTED* O}R THE SELECT KEY IS STRUCK* IF THE ROUTINE FALSE STARTS* THE OPTION KEY WILL RESTART* THE CURRENT SCAN. IF ANY* KEY IS S}TRUCK DURING THE* SCAN THE COMPLETE SET OF* SCANS IS ABORTED.***************************SSTV: JSR BEGIN ;CH}ECK FOR VERT. SYNC LDX #$79 ;LOOKING FOR 120 LINESNEWL: LDY #$0 ;OFFSET POINTER ON LINES}AME: LDA CH ;CHECK IF A KEY STRUCK CMP #$FF ;IF SO ABORT BEQ NOBORT ;BY} SETTING LDA #$0 ;FORMAT TOTAL 0'S STA FORM ;AND RETURNING LDA #$FF } ;BLANK OUT THE STA CH ;KEY USED RTSNOBORT: LDA CONSOL ;CHECK IF THE }CMP #CONOPT ;OPTION KEY WAS USED BNE GOON ;IF SO RESET SEC ;THE FORMAT 1 }FRAME ROR FORM ;TO RECOLL. LDA #$7 ;CLEAR THE KEY STA CONSOL ;STRU}CK AND RTS ;RETURNGOON: JSR READ ;GET A NIBBLE FROM ASL A ;THE} A/D CONV. AND ASL A ;MAKE IT THE HIGH NIBBLE ASL A ASL A STA } TEMP2 ;STORE IT TIL LATER JSR READ ;GET ANOTHER NIBBLE ORA TEMP2 ;AND JOIN TO L}AST STA (TEMP3),Y ;PUT BYTE ON SCREEN INY ;POINT TO NEXT LINE BYTE CPY }#$28 ;CHECK FOR END OF LINE BNE SAME ;AND GO FOR MORE JSR WSYNC ;CHECK FOR HORZ.} SYNC DEX ;THEN ONTO NEXT LINE BNE NEWL ;IF ALL 120 LINES RTS } ;DONE WITH FRAME* READ AND AVERAGE ROUTINEREAD: STX ON ;SAVE THE X REG. STY OFF} ;AND Y REG. LDY #$11 ;TAKE 16 READINGS LDA #$0 ;AND SUM THEM STA } TEMP1 ;START WITH 0AVR: LDX #$5 ;SET THE DELAY/READ LDA PORTA ;GET A CONVERION } AND #$0F ;MASK OFF HI NIBBLE CLC ;AND ADD IT ADC TEMP1 ;TO PREV}IOUS READINGS STA TEMP1DLY: DEX ;WAIT BETWEEN READS BNE DLY ;CHANGES }FOR SCAN RATES DEY ;CHECK FOR 16 READINGS BNE AVR LDA TEMP1 ;GET TH}E 16 READINGS LSR A ;AND DIVIDE LSR A ;BY 16 TO GET LSR A } ;THE VALUE INTO LSR A ;LOWER NIBBLE LDY OFF ;RESTORE THE X AND LDX } ON ;Y REG. RTS* WAIT FOR VERT SYNC ROUTINEBEGIN: LDX #$0 ;RESET THE COUNTERS } LDY #$0 ;AND STORE INEGGN: STY ON ;TEMP. LOCATIONS STY OFF LDA #}$A0 ;STORE VALUE FOR STA TEMP1 ;VERT. SYNC LENGTHOUT: LDA TRIG0 ;READ SYNC LINE } BNE ONE ;IF SET BRANCH INC OFF ;IF LOW INC LOW JMP PRNT ;COUNTERONE}: INC ON ;ELSE THE HIGHPRNT: DEC TEMP1 ;DID ONE READ BNE OUT ;DONE? } LDA ON ;IF NOT COMPARE CMP OFF ;TIME ON TO TIME OFF BCC DWN ;SET T}HE X REG. DEX ;TO REFLECT IF MORE JMP PUFF ;TIME THE SYNC LINEDWN: INX } ;WAS ON OR OFFPUFF: CPX #$FF ;CHECK IF OVERFLOW BNE OK ;IS PENDING } LDX #$0 ;IF SO RESETOK: LDA CONSOL ;READ THE CONSOL CMP #CONSEL ;KEYS FOR SELECT} BNE OKAY ;IF IT IS SELECT RTS ;START SCAN NOWOKAY: CPX #$08 ;HAS }SYNC BEEN BNE EGGN ;MOSTLY ON IN 8 RTS ;TRIES IF SO GOT SYNCSYNCNT: LDA } #$A0 ;SET COUNTER FOR STA TEMP2 ;5 MSEC PULSENON: DEC TEMP2 ;START COUNTER } BNE NON ;AND RETURN AFTER RTS ;5 MSEC* WAIT FOR HORZ SYNC ROUTINEWSYNC: LD}A TRIG0 ;READ THE SYNC LINE BNE WSYNC ;WAIT FOR SYNC PULSE JSR SYNCNT ;DELAY 5 }MSEC LDA #$28 ;ADD A 40 BYTE LINE CLC ;TO PRESENT SCREEN ADC TEMP3} ;POINTER STA TEMP3 BCC PULSE INC TEMP4PULSE: LDA TRIG0 ;WAIT FOR} SYNC END BEQ PULSE ;THEN DO MORE RTS EJECT**************************** COLOR R}OUTINES THESE* ROUTINES ARE USED TO CYCLE* BETWEEN THE THREE COLOR * FRAMES, ONE FRAME FOR EACH* VERTICAL INTERUPT. SOME}* ROUTINES CHANGE THE NECESSARY* POINTS IN THE DISPLAY LIST,* OTHERS CHANGE THE SCREEN* COLOR AND ONE DOES THE* ACTUAL C}YCLING**************************** ROUTINES WHICH CHANGE* DISPLAY LIST FOR EACH* FRAMERSCR: LDA } RED ;GET PRESENT RED VALUE LDX FORMAT ;CHECK FOR B/W CPX #$0 ;IN FORMAT } BNE BLACK ;IF IS MAKE THE AND #$0F ;BLACKBLACK: STA PCOLR4 ;SET SCREEN COLOR } LDA DLR2+1 ;POINT TO RED FRAME LDX DLR2 ;ADDRESS AND LDY CNT ;CHANGE} DISPLAY LIST JSR SCRO ;AT KILO BOUNDARY LDA DLR1+1 ;NOW CHANGE IT LDX DL}R1 ;AT BEGINNING STA TEMP4 ;OF LIST AND STX TEMP3 ;STORE THE VALUE LDY } #$5 ;FOR SCREEN JSR SCRO ;POSITIONING RTSGSCR: LDA GREEN ;GET PRESEN}T GREEN STA PCOLR4 ;VALUE AND SET COLOR LDX DLG2 ;POINT TO GREEN FRAME LDA } DLG2+1 ;ADDRESS AND CHANGE LDY CNT ;THE KILO BOUNDARY JSR SCRO ;IN DISPLAY LIS}T LDA DLG1+1 ;POINT TO BEGINNING LDX DLG1 ;OF FRAME AND STORE STA TEMP4 } ;THE ADDRESS FOR STX TEMP3 ;SCREEN POSITIONING LDY #$5 ;THEN CHANGE THE } JSR SCRO ;DISPLAY LIST RTSBSCR: LDA BLUE ;GET PRESENT BLUE STA PCOLR4 } ;VALUE AND SET COLOR LDX DLB2 ;POINT TO ADDRESS OF LDA DLB2+1 ;KILO BOUNDARY IN } LDY CNT ;BLUE FRAME AND JSR SCRO ;SET IN DISPLAY LIST LDA DLB1+1 ;POIN}T TO BEGINNING LDX DLB1 ;OF BLUE FRAME AND STA TEMP4 ;STORE IT FOR SCREEN ST}X TEMP3 ;POSITIONING LDY #$5 ;THEN SET THE JSR SCRO ;DISPLAY LIST POINTER } RTSSCRO: STA (TEMP5),Y ;PUT THE VECTOR TXA ;IN PROPER PLACE DEY } ;IN DISPLAY STA (TEMP5),Y ;LIST AND RTS ;RETURN* ROUTINES TO CYCLE T}HE* COLOR ON EACH FRAMECOLR: JSR SCRR ;SET PROPER FRAME STA COLR+1 ;POINT TO NEXT } STX COLR+2 ;FRAME IN LOOP STY PCOLR4 ;SET FRAME'S COLOR JMP XITVB ;GO SET} INTERUPTSCRR: JSR RSCR ;GO SET RED SCREEN LDA FORMAT ;CHECK FOR B/W BNE BWSE}T ;IN FORMAT LDA RED ;IF IS MAKE THE AND #$0F ;SCREEN BLACK TAY } ;BY STRIPPING TOP LDA #LOW SCRR ;POINT BACK TO LDX #HIGH SCRR ;RED SCREEN RT}S ;AND QUITBWSET: LDA #LOW SCRG ;THEN SET POINTERS LDX #HIGH SCRG ;FOR GREEN SCREEN } LDY RED ;AND GET RED HUE RTSSCRG: JSR GSCR ;GO SET GREEN SCREEN LDA } #LOW SCRB ;THEN SET POINTERS LDX #HIGH SCRB ;FOR BLUE SCREEN LDY GREEN ;AND GET GREEN HUE} RTSSCRB: JSR BSCR ;GO SET BLUE SCREEN LDA #LOW SCRR ;THEN SET POINTERS LDX} #HIGH SCRR ;TO RED SCREEN LDY BLUE ;AND GET BLUE HUE RTS EJECT****************}************ DISK SERVICE ROUTINES* THESE ROUTINES WILL RETRIEVE* A PICTURE FROM DISK OR STORE* ONE ON DISK. THE PI}CTURES * ARE HANDLED IN THREE SEPERATE* FILES, ONE FOR EACH COLOR * FRAME**************************** STORE PICTUR}E ROUTINEPUTIT: JSR CLICK ;SOUND KEY LDA ZON ;CHECK FOR EXPAND BEQ PT0 } ;AND ABORT IF ON JMP KEYSPT0: LDY #$4 ;CHANGE THE COLORPT1: LDA #$7F ;OF THE} DISK AND MENUD-1,Y ;MESSAGE ON THE STA MENUD-1,Y ;MENU PATTERN DEY BNE } PT1 LDA #$8 ;SET THE COMMAND STA COM ;BYTE FOR WRITE LDA #$B };MAKE IT A PUT STA AUX ;CHARACTER TYPE JMP DISKO ;AND GO DO SERVICE* GET PICTU}RE ROUTINEGETIT: JSR CLICK ;SOUND KEY LDY #$6 ;CHANGE THE COLORGT1: LDA #$7F } ;OF THE MEMORY AND MENUM-1,Y ;LINE IN THE STA MENUM-1,Y ;MENU PATTERN DEY } BNE GT1 LDA #$C ;OPEN FILE STA COM ;FOR READ/WRITE LDA #$7 } ;AND MAKE IT A STA AUX ;GET CHARACTER TYPE* KEYBOARD AND DISK* HANDLER ROUITNESDISKO:} LDA #$5 ;SET POINTER FOR STA EXTN ;'.R' EXTENSION LDY #$8 ;CHANGE THE}PT2: LDA #$7F ;COLOR OF THE AND MENUFN-1,Y ;FILENAME LINE STA MENUFN-1,Y ;IN THE }MENU DEY ;PATTERN BNE PT2 LDY #$7 ;BLANK OUT ANY LDA } #$0 ;PRIOR NAME INKYBO: STA NAME+1,Y ;FILENAME STA FILE-1,Y DEY BNE } KYBO LDA #LOW DLR1 ;SET POINTERS STA TEMP3 ;TO LOOK AT RED LDA #HIGH DLR1 ;}FRAME FIRST STA TEMP4 LDX #$50 ;KYBD IS DEVICE 5 LDA #$3 ;OPEN COMMAND} STA IC+2,X ;IN CIO LIST LDA #LOW KCO ;DEVICE NAME IS STA IC+4,X ;'K:' IN} LDA #HIGH KCO ;CIO LIST STA IC+5,X LDA #$4 ;MAKE IT A READ STA } IC+10,X ;ONLY DEVICE LDA #$0 ;IN CIO LIST STA IC+11,X LDA #$FF ;}CLEAR ANY STA CH ;LINGERING KEYS JSR CIOV ;DO THE OPEN BPL K1 } ;CHECK FOR ERROR JMP WINDUPK1: LDY #$0 ;BLANK OUT A STY FORM ;SPARE AREA}K2: LDA #$7 ;MAKE A GET CHAR. STA IC+2,X ;COMMAND LDA #$0 ;WITH ONLY} 1 CHAR. STA IC+8,X ;PER OPERATION STA IC+9,X ;ONLY JSR CIOV ;GO GET }A KEY CMP #$9B ;CHECK FOR C/R BEQ K3 CMP #$30 ;MAKE SURE ITS }BCC K2 ;AN ALPHANUMERIC CMP #$5B ;CHARACTER BCS K2 ;ONLY LDY } FORM ;GET TEMP POINTER STA NAME+2,Y ;PUT CHAR IN NAME ORA #$20 ;CHANGE COLOR CH}AR STA FILE,Y ;AND PUT ON SCREEN INY ;POINT TO NEXT STY FORM ;}LOCATION CPY #$7 ;CHECK FOR 7 LETTERS BNE K2 ;AND RESET IF 7 JMP PUT}IT ;ELSE GET NEXT CHARK3: LDA #$0C ;PUT CLOSE COMMAND STA IC+2,X ;ON KYBD DEVICE } JSR CIOV ;AND CLOSEK5: LDA #$2 ;APPEND THE STA EXCNT ;EXTENSION ONTO } LDY FORM ;LAST OF NAME LDX EXTN ;'.R' '.G' ORK4: LDA EXTNAM,X ;'.B' } STA NAME+2,Y ;BUT KEEP TRACK INY ;OF HOW FAR DEX ;ALONG WE ARE } DEC EXCNT BNE K4 LDA #$9B ;PUT ON AN EOL STA NAME+2,Y ;AT END }OF NAME STX EXTN ;SAVE OFFSET OF LIST LDX #$60 ;MAKE DISK DEVICE LDA #$}3 ;#6 AND SET FOR STA IC+2,X ;OPEN COMMAND LDA #LOW NAME ;POINT TO THE STA} IC+4,X ;FILENAME JUST LDA #HIGH NAME ;ENTERED STA IC+5,X LDA COM ;G}ET THE TYPE OF STA IC+10,X ;ACCESS DESIRED LDA #$0 ;EITHER READ OR STA IC}+11,X ;WRITE JSR CIOV ;DO THE OPENING BPL D1 ;CHECK FOR ERROR JMP }ERRORD1: LDA AUX ;GET THE TYPE STA IC+2,X ;OF I/O DESIRED LDY #$0 ;G}ET/PUT CHAR LDA (TEMP3),Y ;POINT TO THE FRAME STA IC+4,X ;ADDRESS INY } ;FOR THIS LDA (TEMP3),Y ;FILE AND SET IT STA IC+5,X ;AS THE BUFFER LDA #$4 } ;INCREMENT THE CLC ;POINTER FOR THE ADC TEMP3 ;NEXT FRAME STA } TEMP3 ;AND STORE FOR BCC D10 ;NEXT FRAME FILE INC TEMP4D10: LDA #$D8 } ;EACH FRAME FILE STA IC+8,X ;SHOULD BE 5080 LDA #$13 ;BYTES LONG STA IC}+9,X JSR CIOV ;DO READ OR WRITE BPL D2 ;CHECK FOR ERRORS CPY #$88 } ;CHECK FOR END BEQ D2 ;OF FILE JMP ERRORD2: LDA #$0C ;SET FILE FOR } STA IC+2,X ;CLOSE COMMAND JSR CIOV ;AND CLOSE LDA EXTN ;CHECK TO SEE} THAT CMP #$FF ;ALL THE FRAMES BEQ WINDUP ;WERE SENT JMP K5 ;AND }GO FOR ANOTHERWINDUP: LDY #$4 ;RETURN THE WV1: LDA #$80 ;DISK LINE IN ORA MENUD}-1,Y ;MENU PATTERN TO STA MENUD-1,Y ;ORIGINAL COLOR DEY BNE WV1 LDY #$8} ;RETURN FILENAMEWV2: LDA #$80 ;LINE IN MENU ORA MENUFN-1,Y ;PATTERN TO STA } MENUFN-1,Y ;ORIGINAL COLOR DEY BNE WV2 LDY #$6 ;RESTORE MEMORYWV3: LDA } #$80 ;LINE IN MENU ORA MENUM-1,Y ;PATTERN TO STA MENUM-1,Y ;ORIGINAL COLOR } DEY BNE WV3 JMP KEYS ;DO KYBD SERVICEERROR: LDA #$FF ;SET HANDLER TO } STA EXTN ;END AND FOOL JMP D2 ;IT TO CLOSE EJECT**************************** } THIS ROUTINE IS USED* TO EXAPND THE FRAMES TO* FILL THE SCREEN. IT WILL* DROPOFF THE TOP AND BOTTOM* OF EACH FRAME I}N THE PROCESS***************************FULL: LDA #$FF ;CHECK FOR PRIOR CMP ZON ;EXPAN}SION AND BNE Z6 ;EXIT IF DONE JMP KEYS ;BEFOREZ6: STA ZON ;SET FO}R EXPANSION JSR CLICK ;SOUND KEY LDX DLR1+1 ;POINT TO THE RED LDY DLR1 } ;FRAME AND STORE STX TEMP2 ;THE POINTERS FOR STY TEMP1 ;LATER USE JSR }ZOT ;GO EXPAND LDX DLG1+1 ;POINT TO GREEN LDY DLG1 ;FRAME AND STORE ST}X TEMP2 ;THE POINTERS FOR STY TEMP1 ;LATER USE JSR ZOT ;GO EXPAND }LDX DLB1+1 ;POINT TO BLUE LDY DLB1 ;FRAME AND STORE STX TEMP2 ;THE POINTERS FO }R STY TEMP1 ;LATER USE JSR ZOT ;GO EXPAND JMP KEYS ;JUMP BACK AGA }INZOT: STY TEMP7 ;STORE ADDRESS STX TEMP8 ;FOR INDEXING LDA TEMP7 ;PICK  }UP THE CLC ;BEGINNING ADDRESS ADC #$8 ;AND ADD 13 LINES BCC Z1  } ;OF 40 BYTES INC TEMP8 ;TO STRIP OFF THEZ1: STA TEMP7 ;TOP PART OF THE I }NC TEMP8 ;FRAMES INC TEMP8 ;13X40=208H STY TEMP3 ;SAVE THE TOP STX } TEMP4 ;OF THE FRAME LDX #$79 ;TO 120 LINESZ5: LDY #$28 ;OF 40 BYTESZ2: LD}A (TEMP7),Y ;GET A BYTE STA (TEMP3),Y ;AND MOVE IT UP DEY ;KEEP TRACK }BNE Z2 ;OF EACH LINE LDA (TEMP7),Y ;GET THE LAST STA (TEMP3),Y ;OF EACH LINE } LDA #$28 ;SET FOR 40 BYTES CLC ;AND ADD TO THE ADC TEMP3 ;INDEX TO }POINT BCC Z3 ;TO THE NEXT INC TEMP4 ;LINEZ3: STA TEMP3 LDA }#$28 ;POINT TO THE CLC ;NEXT LINE OF ADC TEMP7 ;ACTUAL STORAGE }BCC Z4 ;TO MOVE THE FRAME INC TEMP8 ;UP Z4: STA TEMP7 DEX };IS THE FRAME DONE BNE Z5 ;DO MORE LDX TEMP1 ;RETRIEVEBEGINNING STX TE}MP3 ;OF THE FRAME LDA TEMP2 ;AND OFFSET IT CLC ;BY THE 96 LINES AD}C #$F ;WHICH WILL BE STA TEMP4 ;EXPANDED LDA TEMP1 ;ADJUST FOR THE } CLC ;EXTRA LINE ADC #$28 ;AT THE END BCC Z7 INC TEMP2Z7: } STA TEMP1 LDA TEMP2 ;NOW OFFSET THE CLC ;POINTER BY ADC #$1}E ;TWICE THE 96 STA TEMP2 ;LINES 192 LINES LDX #$61 ;COUNTER FOR STX } TEMP5 ;96 LINESF7: LDX #$2 ;DUP EACH LINEF5: LDY #$28 ;40 BYTES PER LINEF3: } LDA (TEMP3),Y ;GET A BYTE STA (TEMP1),Y ;AND STORE IT DEY ;LINE DONE? } BNE F3 LDA (TEMP3),Y ;DO END OF STA (TEMP1),Y ;EACH LINE LDA TEMP1 ;D}ROP BACK SEC ;ONE LINE SBC #$28 ;OF 40 BYTES BCS F4 ;AND }GETREADY DEC TEMP2 ;FOR MOREF4: STA TEMP1 DEX ;HAS LINE BEEN  } BNE F5 ;COPIED TWICE LDA TEMP3 ;DROP 40 BYES SEC ;FROM FULL !} SBC #$28 ;SCREEN AND GET BCS F6 ;READY FOR MORE DEC TEMP4F6: STA "}TEMP3 DEC TEMP5 ;CHECK IF ALL BNE F7 ;96 LINES ARE DONE RTS #} ;IF SO END EJECTRED: .BYTE $41GREEN: .BYTE $C1BLUE: .BYTE $91RSHD: .BYTE $1GSHD: $} .BYTE $1BSHD: .BYTE $1SPD1: .BYTE $58,$4E,$55SPD2: .BYTE $51,$52,$0SPD3: .BYTE $52,$54,$0FORM%}AT: .BYTE $A8FORM: .BYTE $0SCRPNT: .BYTE $0,$0VBINT: .BYTE $0,$0 WING: .BYTE $0CNT: .BYTE &} $65ON: .BYTE $0OFF: .BYTE $0VON: .BYTE $0ZON: .BYTE $0COMP: .BYTE $0DLR1: .BYT'}E $50,$81DLR2: .BYTE $00,$90DLG1: .BYTE $50,$61DLG2: .BYTE $00,$70DLB1: .BYTE $50,$41DLB2: (} .BYTE $00,$50EXTN: .BYTE $0EXTNAM: .BYTE 'B.G.R.'EXCNT: .BYTE $0COM: .BYTE $0AUX: .BYTE )}$0KCO: .BYTE 'K:'NAME: .BYTE 'D:' .BYTE 0,0,0,0,0,0,0 EJECT ORG $3E70DLST*}: .BYTE $70,$70,$70,$4F,$50,$81 .BYTE $0F,$0F,$0F,$0F,$0F,$0F,$0F .BYTE $0F,$0F,$0F,$0F,$0F,$0F,$0F .BYTE $0F,$+}0F,$0F,$0F,$0F,$0F,$0F .BYTE $0F,$0F,$0F,$0F,$0F,$0F,$0F .BYTE $0F,$0F,$0F,$0F,$0F,$0F,$0F .BYTE $0F,$0F,$0F,$0F,,}$0F,$0F,$0F .BYTE $0F,$0F,$0F,$0F,$0F,$0F,$0F .BYTE $0F,$0F,$0F,$0F,$0F,$0F,$0F .BYTE $0F,$0F,$0F,$0F,$0F,$0F,$0F-} .BYTE $0F,$0F,$0F,$0F,$0F,$0F,$0F .BYTE $0F,$0F,$0F,$0F,$0F,$0F,$0F .BYTE $0F,$0F,$0F,$0F,$0F,$0F,$0F .BYTE .}$0F,$0F,$0F,$0F,$0F,$0F,$0F .BYTE $0F,$0F,$4F,$00,$90,$0F,$0F .BYTE $0F,$0F,$0F,$0F,$0F,$0F,$0F .BYTE $0F,$0F,$0F/},$0F,$0F,$0F,$0F .BYTE $0F,$0F,$0F,$0F,$0F,$0F,$0F .BYTE $0F,$0F,$0F,$0F,$0F,$0F,$0F .BYTE $0F,$0F,$0F,$0F,$0F,$00}F,$0F .BYTE $0F,$0F,$0F,$0F,$0F,$0F,$0F .BYTE $0F,$0F,$0F,$0F,$0F,$0F,$0F .BYTE $0F,$0F,$0F,$0F,$0F,$0F,$0F .1}BYTE $0F,$0F,$0F,$0F,$0F,$0F,$0F .BYTE $0F,$0F,$0F,$0F,$0F,$0F,$0F .BYTE $0F,$0F,$0F,$0F,$0F,$0F,$0F .BYTE $0F,$02}F,$0F,$0F,$0F,$0F,$0F .BYTE $0F,$0F,$0F,$0F,$0F,$0F,$0F .BYTE $0F,$0F,$0F,$0F,$41,LOW DLST,HIGH DLST ORG 3} $3F3DMENU: .BYTE $70,$70,$70,$46,$60,$3F .BYTE $06,$06,$06,$06,$06,$06,$06 .BYTE $46,$00,$40,$06,$06,$06,$06 4}.BYTE $06,$06,$06,$06,$06,$06,$06 .BYTE $06,$06,$06,$06 .BYTE $41,LOW MENU,HIGH MENU ORG $3F76 .BYT5}E $61,$74,$61,$72,$69 ORG $3F80 .BYTE $73,$73,$74,$76 ORG $3F8A .BYTE $FF,$FF,$FF,$FF,$FF6},$FF,$FF .BYTE $FF,$FF,$FF,$FF,$FF,$FF,$FF ORG $3FB3 .BYTE $E6,$EF,$F2,$ED,$E1,$F4 ORG $37}FBA .BYTE $51,$F8,$51,$F8,$51 ORG $3FE2 .BYTE $58,$4E,$55,$0,$F3,$E5,$E3 ORG $402B .B8}YTE $E4,$E9,$F3,$EB,$0,$0,$0 .BYTE $ED,$E5,$ED,$EF,$F2,$F9 ORG $407B .BYTE $E5,$F2,$E1,$F3,$E5 9} ORG $4082 .BYTE $F6,$E9,$E5,$F7 ORG $40CB .BYTE $E6,$E9,$EC,$E5,$EE,$E1,$ED .BYTE $E5 wObP̄˩0΄ͱˑL0L1c=?01L0(L02=LD2LX2LS168 ;}L0L4:L4L1%L1>L1*L1L0ЉL66 2L06 Ў 2L0 Ѕϩ6 <}2 P?6L21Q?8.668n6L21©R?v66L218.68.6n6L216n6 Ћ6ۍ6L0.6 =}L0 66 \䩿-oo6601666PL0 6? T36L0 6?T36L0 6?T3 >}6L0 9z@z@66 266 266 2z@z@6L0͆΢(͈(e͐΅` 6@ l266L0 ?}6 l266L0 6 l266L0 ͢`0166>p˅̎01@ oo6>6666 3 3 @}L26 3 3L26 !4 3L26$%664J \` r3y 6` 8n6` G3 G3Б( A}3`66Ϣ)eυJJJJ66`66ϭ6L3666L3``` B} 3(e͐ͅέ`66)666 C466Ά͠ C4`6666 C466Ά͠ C4`6776 C466Ά C}͠ C4`ˊ` Y4K4L4Lb 36 6)Y4`t46` 346` !4Y46` 6L09*@*@ 7 7L4 91@ D}1@ 7 779@@7@ͩ6΢PB D7EJK VL56BHI Vɛ0 E}[67 @Ȍ6L4 B V 76777 7󩛙77`BD7E 7JK VL 6 7B͝Dȱ͝Ee F}͐Ω؝HI VL 6 B V7LW5*@*@@@1@1@L07L56L06 66Є M6 G}66Є M666Є M6L0Ɇʥiʅʄ͆΢y(ɑ͈ɑͩ(e͐΅ͩ(eɐʅڦφͥiΥi(ЅϥiТa H}(͑ψ͑ϥ8(Ѕ8(΅`AXNUQRRTePPapPAPB.G.R.K:D: I} J} K} L} M} N} O} P} Q} R} S} T} U} V} W}pppOP X}O Y}Ap>pppF`?F@A=?a Z}tarisstvQQQXNU [} \} ]} ^} _}OO%SSTV for Atari-------------- With this program, along with theproper hardware, your Atari computerwill be able to re a}ceive Slow Scan TVpictures in B&W and COLOR!Software: SSTV.OBJ - The main program. Torun, go to DOS and use Binary b}(L)oadcommand to load SSTV.OBJ. Commandsavailable: (F)ormat = Changes the RGB format.After pressing F, type 3 digits,co c}nsisting of 0,1,or 2. For B&W, type0,0,0. Normal RGB would use 1,1,1.Scan speed is set by (S)hort 8.5sec.frame rate, (M)e d}dium 12sec. and (L)ong24sec scan.(E)rase screen(Z)oom corrects SSTV picture forAtari's screen format.(V)iew the pictu e}re stored in memory.(D)isk = Stores the picture in memory to disk. Type in the filename, withoutthe extension. The progra f}m adds .R.G & .B extensions.(C)ore memory = Allows a scan stored ondisk to be loaded from the disk intothe computer. Aga g}in type in thefilename.Press (R)ed, (G)reen, or (B)lue tochange the brightness of that color.Press START to begin collec q}?b AUTORUN SYSb*COLSSTV ASMb&:COLSSTV COMb `COLSSTV DOCbvCOLSSTV P b%DOS SYSb*DUP SYSb[CONTACXLCOMtion of apicture.Press OPTION to reset scan to top ofscreen.Press SELECT to begin scan if syncpulse is missed. Mo r}re information concerning thesoftware (and hardware) is availablefrom the August 1985 issue of QST andfrom A&A Engineering s} 7970 Orchid Dr.Buena Park, CA 90620 (714)521-4160.(They also have a PC board & kit ofparts available.)(The article is c t}opyrighted by ARRL inQSL, so cannot be reprinted here.) The other programs on the diskcontain the source code for SS u}TV inAtari Macro Assembler source code.Have Fun!.) The other programs on the diskcontain the source code for SS 600L1c=?01L0(L02=LD2LX2LS168L0L4:L4L1%L1>w}L1*L1L0ЉL66 2L06 Ў 2L0 Ѕϩ62 P?6L21Q?8.x}668n016L21©R?v66L218.68.6n6L216n6 Ћ6ۍ6L0.6L0 66 \䩿-oo6y}601666PL0 6? T36L0 6?T36L0 6?T36L0 9z@z@66 z}266 26126 2z@z@6L0͆΢(͈(e͐΅` 6@ l266L0 6 l266L0 6 l2{}66L0 ͢`0166>p˅̎01@ oo6>6666 3 3L26 3 3L26 !4|} 3L26$%62364J \` r3y 6` 8n6` G3 G3Б( 3`66Ϣ)}}eυJJJJ66`66ϭ6L3666L3``` 3(e͐ͅέ`~}66)666 C43466Ά͠ C4`6666 C466Ά͠ C4`6776 C466Ά͠ C4`ˊ` Y4K}4L4Lb 36 6)Y4`t46` 346` !4Y46` 6L09*@*@ 7 7L4 91@1@ 7 7}79@@7@456΢PB D7EJK VL56BHI Vɛ0[67 @}6L4 B V 76777 7󩛙77`BD7E 7JK VL 6 7B͝Dȱ͝Ee͐ͅΩ؝HI} VL 6 B V7LW5*@56*@@@1@1@L07L56L06 66Є M666Є }M666Є M6L0Ɇʥiʅʄ͆΢y(ɑ͈ɑͩ(e͐΅ͩ(eɐʅڦφͥiΥi(ЅϥiТaˢ(͑ψ}͑ϥ8(Ѕ8(΅`AXNUQ67RRTePPapPAPB.G.R.K:D:p>9?pppOP}O}Ap>=?^?pppF`?F@A=?v?z?atari??sstv??}????QQQ??XNU+@7@{@@@@@@A=?v?z?atari??sstv??Ud 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`  `1  ɐ     `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.D1:MEM.SAV J y08 B|DEHI} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI} VY8 B V  @  /DE `E:D1: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 } 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 ALLOWED000 FREE SECTORS COPYING---D1:COLSSTV.P25l# 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 <.|KBJKDE V R D DD}! # L"(C) #L D C #D iD `E&&?&" #&U( # Cv#L" 8! } B `x X`x)LE"  e ԍ`0 ԍЩz`zЩM`L"L"/<0!1"/L"} /0!1*z"/ T"Lw,)?@BHI VA0Y #$8A &#r'#s ##L"lrw#}}#@CCB#m,w,ECH8Et:"`EqECD#D7DE"""E/014%ȍ"/` V#Ll9 V#L < V#L> ) B JK}DE V/;qƦ#>?"/` F#0$%}88|88888|8888&or!3#/-!coustic#oupler$ynamics}marketing'mb(#opyrightwrittenby4homas+otsch'2/%0!:k 6ersion%%?4ermi}nalmodus?3peicherausgeben?3peicherloeschen?$/3}?%ditorzur4exterstellung?&unktionstasten5ploadtext laden?%&&unktionsta}stenansehen?(ilfe?"inaerfilesendenmit0rotokoll ?"inaerfileempfa}ngenmit0rotokoll %choaus?%choan6ollduplex?(albduplex?&'}?4erminalmodus!3#))5ebertragung?!4!2) !3#))5ebertragu}ng"its7ortlaenge?"its7ortlaenge3topbit'(}?3topbits?0aritaetkeine?mark?odd?even?,&hinter#2anhaengen}?們() @"P B V䩛 BHI VL( Filename: D1:( B}HI VL( U BHI V BtDEHI V L"L[=htD BHI V`}nwPBJKtDE VL(PBtD)*EHI VL( BtDEHI VL)} j` BHI VLD*̠Π BD*E)HI} V4Lg*Hi%IiL楢K+$L + *++ %+9@ ++00!:H ,+h80 +7+8+ +L* %+L}* %+ ,+8夅ԩ奅 ؠ)_CʈC [C````K+L+`} BHI V V @"L+ +, B~D+E)HI VL+Bitte }gewuenschte Funktionstaste angeben BȝD+E)HI VN)?BHI V80 7+D8+EK+}HL+I B @" V L" 49 '"Ll9 V#L_+ V# L"L,}       ,-             , BHI} VL,UL,HELP B՝D,EHI VUL- BD,EHI VL2-