[HEA] _____________________ ___ _ |___ ______________| | | | | | | _ | | | | | || | | | | | | || | | | | | | || | | | ____ _ _ _ _ ______ | | | || | | | / __ \ | | / \_/ \ | ___ \ | | | || |__ ____ | | / / \ | | /\ /\ \ | | \ \ | | | || _ \ | _ \ | | \ \__/ | | | |_|| | | |__/ / | | | || | | || |_|| | | \___/|_| |_| |_| | ____/ |_| | || | | || |__ | |____________________ | | _ |__||_| |_|\____/ |________________________| | | |_| | | Lighting Your Apple II Path | | |_|----------------------------------- >>> WELCOME TO THE LAMP! <<< ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ THE BEST OF THE A2 BULLETIN BOARD ON A2Central "Teaching the Apple II user how to fish since 1998" :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: The Lamp! An Onipa'a Software Production Vol. 10, No. 2 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Publisher................................Ryan M. Suenaga, M.S.W., L.S.W. Editor.....................................................Lyle Syverson Internet Email, Publisher.........................thelamp@sheppyware.net Internet Email, Editor...............lutefisk at grex.cyberspace dot org :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: TABLE OF CONTENTS ~~~~~~~~~~~~~~~~~ February 15, 2007HIGH ABOVE THE ROCK RIVER---------------------------------------------[OPN] Gardener's DelightA2 BULLETIN BOARD at A2Central.com DISTILLATIONS----------------------[DAA] Retrieving The Lamp by FTP Using the IIgs------------------------[RTL] Old Computer Challenge 2007 Results------------------------------[OCC] gcc Support for 65816?-------------------------------------------[GCC] Orca/C Questions-------------------------------------------------[OCQ] Orca/C - Another Question----------------------------------------[OAQ] Orca/C Compile Command Problem-----------------------------------[CCP] Orca/c Tips------------------------------------------------------[OCT] Orca/C Exec File to Help me Compile Programs---------------------[HCP] Appleworks Word Processor to TXT Utility-------------------------[ATU] Apple II GEOS----------------------------------------------------[ATG] Ethernet Interface Code in Sweet16-------------------------------[EIC] Slot Expander 1--------------------------------------------------[SEO] Changes Suggested------------------------------------------------[CSD]LETTERS TO THE EDITOR-------------------------------------------------[LTE] No Letters to the Editor This Month An InvitationKFEST 2007------------------------------------------------------------[KF7] KansasFest 2007--------------------------------------------------[KFS]EXTRA INNINGS About The Lamp! ------------------------------------------------ [INN] [*] [*] [*]READING THE LAMP! The index system used by The Lamp! is designed to make""""""""""""""""" your reading easier. To use this system, load thisissue into any word processor or text editor. In the index you will findsomething like:EXTRA INNINGS About The Lamp! ------------------------------------------------ [INN]To read this article, simply use your search or find command to locate[INN]. There is a similar tag at the end of each article: [EOA].[OPN]------------------------------- HIGH ABOVE THE ROCK RIVER |------------------------------------From The Editor"""""""""""""""by Lyle Syverson email: lutefisk at grex.cyberspace dot org Gardener's Delight ~~~~~~~~~~~~~~~~~~ To a gardener tired of winter... receiving a seed catalog in the mailis quite refreshing... an invitation to start planning this year's garden.You will want to plant your favorites from past seasons... you will wantto try some of the new offerings. What changes you will make in the layoutof your garden space. Growing plants from seed is similar to booting a computer... place theseed where it is exposed to moisture, light, and the right temperature andit germinates and grows to be a mature plant... fulfilling the planprovided in the "ROM" (genes) of the seed. The plant breeder has "programed" the new varieties of seeds you aregrowing this year. (Introduced new characteristics... color, resistance todisease, shorter growing season, etc.) The gardener enables the good health of the plant by providingadequate moisture and eliminating competition from weeds, protection frominsects, and controlling diseases. The gardener is grateful to the plant breeder for developing the newvarieties of plants... the operator of the computer is grateful for theprogramers who develop and improve the software necessary to the use of thecomputer.[EOA]ASCII ART BEGINS_________ _ _ _|__ __| | | | | | | | | | | | | | | | | | |___ ____ | | _____ __ ___ _ _ _____ | | | | | ___ \ / __ \ | | /____ \ | v v | | v ___ \ | | | | | | | | | /__\ \ | | ____| | | /\ /\ | | / \ \ | | | | | | | | | _____| | | / ___ | | || || | | | | | |_| | | | | | | | |_____ | |____ | |__| | | || || | | \___/ / _ |_| |_| |_| \______| |______| \____^_| |_||_||_| | |\____/ |_| | | | | |_|ASCII ART ENDS[EOA][DAA]-------------------------------------------------------DISTILLATIONS FROM The A2 Bulletin Board at A2Central.com |------------------------------------------------------------by Lyle Syverson email: lutefisk at grex.cyberspace dot org[RTL]Retrieving The Lamp by FTP Using the IIgs"""""""""""""""""""""""""""""""""""""""""Lyle wrote:>> The January 2007 issue of _The Lamp!_ is now ready for your enjoymentand enlightenment.Access this issue, as well as all previous issues, at: <Ewen(Speccie, a2c.general_chat, Jan 16 2007)[EOA][OCC]Old Computer Challenge 2007 Results"""""""""""""""""""""""""""""""""""Feb 3, 2007The Old Computer Challenge is now well and truly finished... the number ofcompleted entries was slightly above my expectation, so I'm herebydeclaring the challenge an unqualified success. Here's a brief rundown ofwho did what:Bill Garber of Garberstreet Electronics distinguished himself by being thefirst entrant to complete his challenge. Bill's contribution to theretrocomputing world comes in the form of a slotless ROM switcher for theApple ][ and ][+. The ROM switcher can now be ordered from Bill's site.http://www.garberstreet.comDale Goodfellow (aka wgoodf) took a shot at creating a short "film" withhis Apple //c... Using images created in Dazzle Draw and music played onthe //c, Dale's production is definitely unique.http://80.192.34.202/Sample Files & Templates/rc07warmup.movMark Stock (aka mmphosis) endeavored to create a "one well written Apple IIprogram" and learned a bit about hacking along the way. Mark's hackeremblem program rocks, but his new-found hacker pride is the realaccomplishment.http://geocities.com/mmphosis/apple2/contest/2007/old-computer-challenge.htmlLorance Stinson stepped up to the plate with his Hermes BBS running on aMac IIci. Although not a very busy board, it provided a hangout for themore iron-willed of the challengers (mostly Dale and myself).telnet://lorance.no-ip.orgSimon Williams (aka Luddite) managed to cobble-together a bit of music onthe Apple ][+. It may well be the first time the Apple II has been used inDub.http://www.archive.org/details/Framebreaker-Serial_DubAs an additional project he also put together what is surely the"definitive" guide to authoring web content for the Contiki browser (on anApple II, of course).http://contiki.ld8.org/GUIDE/INDEX.HTMLBigD went back in time for a few weeks of hardcore 68K Mac action, and lefta well written and informative blog in his wake. BigD's conclusion that thechallenge wasn't so tough after all should serve as encouragement to thosewho are too timid to undertake such a test.http://www.dustinr.com/retrochallenge/In closing, I'd just like to thank all the contestants for theircontributions and I hope to see everyone back in the saddle for thisSummer's RetroChallenge! I mentioned at the start that there were noprizes involved in the Old Computer Challenge, but I've decided that at thevery least everyone who completed their challenge will get an official OldComputer Challenge T-shirt featuring Mark Stock's lo-res hacker emblemdesign... now don't you wish you would have entered?/help._____.|[LD8]! ====== 8-BIT SOUND & FURY ======| o. | APPLE ][ AUDIO & MUSIC RESOURCES!__!__! http://8bitsoundandfury.ld8.org/(Luddite, a2c.community, Feb 04 2007)[EOA][GCC]gcc Support for 65816?""""""""""""""""""""""A year or so ago there was some discussion about supporting the 65816processor with gcc for Apple II development. Was there any progress made onthat front?If not what are the choices?I am aware of: ORCA/C MPW IIgs ORCA/C MPW IIgs CAre there any known issues with the MPW IIgs tools?Glenn(a2retro, a2c.a2pro_developers, Jan 22 2007)>>>>>"""""gcc has had 65816 support for quite a while now--it doesn't look like thatthe 65816 is being distributed in the latest binutils releases since thereis no owner. The first step to have IIgs usability is to add OMF supportto ld in binutils (it is really neat that Kelvin has worked on an OMFlinker written in Java, but that won't integrate into binutils).If someone steps up to the plate to take ownership, I'll hack the 65816assembly routines to give it pseudo 32-bit support for better portabilityof existing applications. But without a portable linker, there is no pointto make any changes to the rest of binutils (I don't think any changes areneeded in gcc itself--binutils is where the cpu/os-specific code goes).The ownership of the 65816/OMF in binutils means that every time a newversion of binutils is to be released, the 65816 and OMF code gets checkedto make sure that nothing broke.Geoff(geoff, a2c.a2pro_developers, Jan 23 2007)>>>>>""""">> gcc has had 65816 support for quite a while now--it doesn't look likethat the 65816 is being distributed in the latest binutils releases sincethere is no owner. <>>>>"""""a2retro wrote:>> I am aware ofORCA/CMPW IIgs ORCA/CMPW IIgs C<>>>>"""""Hi Eric, does The MPW IIgs Collection come with source code for thosetools?Glenn(a2retro, a2c.a2pro_developers, Jan 24 2007)>>>>>""""">> MPW IIgs ORCA/C is good although it's not quite as current as ORCA/C isin terms of bug fixes. <>>>>"""""So both versions of the C complier were written in Pascal?Glenn(a2retro, a2c.a2pro_developers, Jan 26 2007)>>>>>"""""ORCA/C was written in ORCA/Pascal. MPW IIgs ORCA/C was written in MPW IIgsPascal, as a port from the IIgs version.The source code for ORCA/C and MPW IIgs ORCA/C are available on the OPUS][: The Works CD-ROM. The other compilers are not available in sourceform.Sheppy(Sheppy, a2c.a2pro_developers, Jan 29 2007)[EOA][OCQ]Orca/C Questions""""""""""""""""Hi I am trying to ramp up on Orca/C .. I am looking for someone who hasexperience writing Orca/C apps, who would be willing answer dumb and not sodumb questions over email, chat, whatever...Send me an email -> support@a2retrosystems.comThanksGlenn(a2retro, a2c.a2pro_developers, Jan 27 2007)>>>>>"""""Glenn,It's generally considered better value to post these type of questions in apublic forum so that other people who are reluctant to post questions (orwho start reading later) can still get answers. You can always move toemail later if things start getting too specific and technical.There are a lot of people around who can help out with Orca/C. I'm one butthere are many others. (However I may not be as useful as in the past sinceI don't have access to my GS as easily these days which makeschecking/trying things more difficult.)--Peter Watson-- Write to MSDOS disks on the Apple IIgs?-- Impossible! ;-)(peterw, a2c.a2pro_developers, Jan 27 2007)>>>>>"""""Okay - here goesI have an application that has many files. There is the main app and abunch of sub programs. They all can be compiled, linked and loaded in oneshot or the main app can be compiled and the rest of the sub programs couldbe compiled, linked then loaded in as needed and unloaded as they areexited.I understand there is a segment directive and I can specify dynamic (so thesegments are dynamic).Some of these sub programs as spread over several c source files. So whenthey are compiled they end up with there own object files.I am not sure how to use the segment directive so that each sub programends up in a common dynamic segment.Hopefully I have supplied enough info ...Glenn(a2retro, a2c.a2pro_developers, Jan 27 2007)>>>>>""""">> I am not sure how to use the segment directive so that each sub programends up in a common dynamic segment. <>>>>"""""AFAIK the Orca shell doesn't support redirecting command output into avariable. That is, there's no equivalent to the Unix script statement:VAR=`ls *.tmp`.I can't swear that you couldn't fake something similar by creating andexecuting EXEC file, but I doubt it.--Peter Watson-- Write to MSDOS disks on the Apple IIgs?-- Impossible! ;-)(peterw, a2c.a2pro_developers, Jan 30 2007)>>>>>""""">> AFAIK the Orca shell doesn't support redirecting command output into avariable. <> That is, there's no equivalent to the Unix script statement: VAR=`ls*.tmp`. <> I can't swear that you couldn't fake something similar by creating andexecuting EXEC file, but I doubt it. <>>>>"""""LOL! What the heck are you trying to feed to it!I don't know the actual line length limitation, but are you sure you needto do it the long way? It certainly wouldn't surprise me to learn that thecompiler itself couldn't handle a very long command line.You have to remember that the Orca shell isn't Unix/Linux. There's lots ofhidden limitations, and some things that are definitely legal are stillflaky under some circumstances. Try to keep things very simple, very short,etc. For example, try to cd to directories to avoid the need to specifyfull pathnames for multiple files. Leave object files in the currentdirectory. Etc, etc.--Peter Watson-- Write to MSDOS disks on the Apple IIgs?-- Impossible! ;-)(peterw, a2c.a2pro_developers, Jan 30 2007)>>>>>""""">> LOL! What the heck are you trying to feed to it! <> I don't know the actual line length limitation, but are you sure youneed to do it the long way? It certainly wouldn't surprise me to learn thatthe compiler itself couldn't handle a very long command line. <> You have to remember that the Orca shell isn't Unix/Linux. There's lotsof hidden limitations, and some things that are definitely legal are stillflaky under some circumstances. <> Try to keep things very simple, very short, etc. For example, try to cdto directories to avoid the need to specify full pathnames for multiplefiles. Leave object files in the current directory. Etc, etc. <>>>>""""">> I may try to set a variable in the exec file and supply the variablename on the command ... might work ... unless the compile command onlyaccepts 255 char <>>>>"""""I've never been able to get GNO/ME to run stably in an emulator. It alwayscrashes within just a few minutes, even on a fresh install with no extrasadded to it.Sheppy(Sheppy, a2c.a2pro_developers, Jan 31 2007)>>>>>"""""Speaking of running in an emulator - I find that when running the orca devtools in kegs I get the emulated system state suspect save work .. thatswhen thingss start acting flaky ...I have been meaning to try theenvironment on my accelerated IIgs to see it is more stable.Glenn(a2retro, a2c.a2pro_developers, Jan 31 2007)>>>>>"""""I seriously doubt that there is a problem with KEGS. Those invalid memoryaccess notices should give you an idea of how buggy Orca really is. KEGSwill always be better than a real IIgs to identify bad memory access (ithelps a lot when you are debugging your own code--sucks a lot using someoneelses). A real IIgs will gracefully use random values--making the problemmuch harder to track down. Too bad there is no option other than Orca.This is part of the reason why I had started to advocate that GNU toolswould be a good option for IIgs development. Orca can be dumped in favorof an environment which has a much higher active development community. Ifsomebody wants to debug Orca/C, I have some source code on a 10-30 meg diskimage that I would love to see get compiled. I looked at the Orca/C sourceand decided it wasn't worth my time to figure out (living in the world ofinstant gratification does that to you).Geoff(geoff, a2c.a2pro_developers, Feb 01 2007)>>>>>""""">> I've never been able to get GNO/ME to run stably in an emulator. Italways crashes within just a few minutes, even on a fresh install with noextras added to it. < {i}.log else echo {i} "Up to Date" echo {i} > uptodate end else echo {i} "Was not found" echo {i} > notfound endendso if the .c file exists and the .c or .h files are newer then the .afile then compile the .c fileelse print up to date or file not foundI get mixed results every time I run it- some times it says the .c file is not found when it really is there- sometimes it says it's up to date - which is what it should say everytime i run it after the first time if nothing else is modified- most times it just compiles it anyway even if the .c or .h are not neweranyone have any ideas on what is going on?Glenn(a2retro, a2c.a2pro_developers, Jan 29 2007)[EOA][ATU]Appleworks Word Processor to TXT Utility""""""""""""""""""""""""""""""""""""""""Does anyone know of a utility, macro, or script - for ProDOS, GS/OS,Classic, or OS X - that will batch convert AWP files to TXT?(kgagne, a2c.appleworks, Jan 28 2007)>>>>>"""""If you mean AppleWorks Text files, to standard Text files, it can be donewith a Spectrum script, as Spectrum will read AppleWorks Text files intomemory...I don't have one written offhand, but it would just be a matter of opening,reading, and saving as Text, from within a loop...Ewen(Speccie, a2c.appleworks, Jan 29 2007)>>>>>"""""There's lots of utilities that will do it, with lots of variations. Whatare you trying to achieve? (Apart from the obvious!)And do you actually want TXT files? Or do you want to preserve theformatting?--Peter Watson-- Write to MSDOS disks on the Apple IIgs?-- Impossible! ;-)(peterw, a2c.appleworks, Jan 30 2007)>>>>>"""""Peter: I don't care much for preserving formatting, as I don't think thereis much of it in the source files. The main thing is that the content bereadable from Microsoft Word. Almost any utility will do.Ewen: Using a Spectrum script occurred to me, but it's been so long since Idid any scripting, I would almost have to learn the language from scratch.If I don't have to reinvent the wheel, I'd rather not.(OTOH, if I was half the scripter I was a decade ago, I'd have written thescript more quickly than I did this message!)-Ken(kgagne, a2c.appleworks, Jan 29 2007)[EOA][ATG]Apple II GEOS"""""""""""""Aside from geoCalc, geoFile, and geoPublish (plus geoWrite included withGEOS itself), is anyone aware of any other "geo" apps that made it to theApple II?Wikipedia lists several, but they may all have been on the Commodore...http://en.wikipedia.org/wiki/GEOS_(8-bit_operating_system)I'm looking for more definitive info of what was available for the Apple IIand would like to get copies if they exist of these other apps.I think I have the last versions of calc, file, publish and geos itself...Thanks in advance.(sfahey, a2c.operating_systems, Feb 07 2007)>>>>>"""""I'm not aware of any offhand, although I have a niggling feeling in theback of my mind that there was one, maybe there were two. But I have noclue what they might have been, or if they even existed.Sheppy(Sheppy, a2c.operating_systems, Feb 07 2007)[EOA][EIC]Ethernet Interface Code in Sweet16""""""""""""""""""""""""""""""""""My intention is to write a link layer for Sweet16 at some point in thefuture, although I don't yet have an estimate as to when that will happen.It won't happen for version 2.0, which I'm hoping to release in the latewinter or early spring.The publicly-shipping version of Sweet16 for BeOS actually hooks into theethernet layer and receives packets -- it just never had a link layerwritten, and has no ability to send packets.That code's been removed because it was very BeOS specific. However,getting the basic ethernet interface code into Sweet16 won't beridiculously hard.Sheppy(Sheppy, a2c.network_telecomm, Jan 24 2007)>>>>>""""">> However, getting the basic ethernet interface code into Sweet16 won't beridiculously hard. <>>>>""""">> My intention is to write a link layer for Sweet16 at some point in thefuture, although I don't yet have an estimate as to when that will happen.<>>>>"""""That's true, but it's more work than I feel like going through, I expect.Well... tell me this, what would be involved in emulating the Uther card,for example? I don't know the I/O interface for it.Sheppy(Sheppy, a2c.network_telecomm, Jan 29 2007)>>>>>"""""Hi Eric,I would recommend you start by reading the application note for the 8bitmode of the cs8900a. http://www.cirrus.com/en/pubs/appNote/an181.pdfIt gives you an idea of how the chip is used from an application point ofview and 8 bit data path.That coupled with the Uther Link Layer source you can see what the minimumpart of the interface is that is required.Init, receive packet and send packet.There is source available in the Applewin project but again it is gpl and Iam not sure what license your sweet16 code is under ....Glenn(a2retro, a2c.network_telecomm, Jan 29 2007)>>>>>""""">> There is source available in the Applewin project but again it is gpland I am not sure what license your sweet16 code is under .... <>>>>"""""I still think it's the best approach even if you can't leverage off of thecode in VICE/Applewin.You might be able to get the authors permission to use the code anyway ifyou ask... explaining it is for an application that is Freeware - no sourcedistribution due to other considerations.I am sure *any* form of Ethernet support in Sweet16 would be great...Glenn(a2retro, a2c.network_telecomm, Jan 30 2007)[EOA][SEO]Slot Expander 1"""""""""""""""I just received the Slot Expander 1 boards I ordered from Vince Briel. Goodsolid construction, and he thoughtfully included the IDE cable (nice touch)all packaged up in a ziplock baggie. Now that's retro!(sfahey, a2c.apple_1, Jan 22 2007)>>>>>"""""What is a Slot Expander 1 and how do they work?-- Mark(Mark Percival, a2c.apple_1, Jan 22 2007)>>>>>"""""It's a 3 slot expansion board for the Apple 1, Replica 1 and clones. Iposted an article on it awhile back -http://www.a2central.com/portal/?p=1285Cool cards are coming for the Apple 1 crowd:http://www.a2central.com/portal/?p=1301and the CFFA1(sfahey, a2c.apple_1, Jan 22 2007)[EOA][CSD]Changes Suggested"""""""""""""""""Would it be possible to add another item to this list? I would prefer toknow the last day that I visited A2Central.com, and not instead seeconfirmation that yes I am actually here on this date.If that is a bit unclear, I refer to the top right corner that currentlysays that I last visited on Thursday, December 21, 2006.Also, is there going to be any way to see the unread messages?David R. Pierce(David R. Pierce, a2c.system_announcements, Dec 21 2006)>>>>>"""""David R. Pierce wrote:>> Would it be possible to add another item to this list? I would preferto know the last day that I visited A2Central.com, and not instead seeconfirmation that yes I am actually here on this date. <> Also, is there going to be anyway to see the unread messages? <>>>>"""""I was reading through HTTP, but now I have MacSOUP up and running so now Ionly see the unread messages. :)David R. Pierce(David R. Pierce, a2c.system_announcements, Dec 29 2006)>>>>>"""""That is the best advice I can give anyone. The NNTP is sooo much nicer. Iprefer to view the telnet side as being the backwards compatibility modefor people who want to connect using a real II, but newer technologyoptions exist that are certainly more efficient and convenient.(sfahey, a2c.system_announcements, Jan 01 2007)>>>>>"""""As a general rule, I hate NNTP clients. Even the "nice" ones get on mynerves. I much prefer a nice web interface. I've finally caved and am setup to use NNTP for this, because the web interface here is sadly not allthat great. :)Sheppy(Sheppy, a2c.system_announcements, Jan 03 2007)[EOA][LTE]------------------------------- LETTERS TO THE EDITOR |------------------------------------NO LETTERS TO THE EDITOR THIS MONTH"""""""""""""""""""""""""""""""""""The mail box for Letters to the Editor remained empty this month.[EOA]AN INVITATION~~~~~~~~~~~~~Express your opinions about the comings and goings in the world of theApple II computers.Send your comments to Lyle Syverson, lutefisk at grex.cyberspace dot orgThe Editor reserves the right to edit any material submitted.The Editor reserves the right to reject any material he considersunsuitable for publication in _The Lamp!_.[EOA][KF7]------------------------------ KFest 2007 |-----------------------------------[KFS]KansasFest 2007"""""""""""""""is scheduled for July 17-22, 2007.Go to for details.[EOA][INN]------------------------------ EXTRA INNINGS |-----------------------------------About The Lamp! The Lamp! is published on the fifteenth of every month on""""""""""""""" the WEB at: http://lamp.a2central.com/This publication produced entirely with real or emulated Apple II computersusing Appleworks 5.1 and Hermes. Apple II Forever! * The Lamp! is (c) copyright 2007 by Ryan M. Suenaga, M.S.W. All rights reserved. * To reach The Lamp! on Internet email send mail to thelamp@sheppyware.net * All issues of The Lamp! are available at: ftp://www.a2central.com/the.lamp!/>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Opinions expressed herein are those of the individual authors, and do notnecessarily represent the opinions of A2Central.com, Ryan M. Suenaga, orLyle Syverson. Forum messages are reprinted verbatim and are included inthis publication with permission from the individual authors.A2Central.com, Ryan M. Suenaga, and Lyle Syverson do not guarantee theaccuracy or suitability of any information included herein. We reserve theright to edit all letters and copy.Material published in this edition may not be reprinted without theexpressed written consent of the publisher. Registered computer usergroups, not for profit publications , and other interested parties maywrite the publisher to apply for permission to reprint any or all material.<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<[EOF] .