home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: Alpha / Whiteline Alpha.iso / progtool / forth / doc / files.doc < prev    next >
Encoding:
Text File  |  1994-09-22  |  16.9 KB  |  455 lines

  1. 0660000020266
  2. 1
  3. 2Seite #
  4. 9[....................................................]
  5. êFileinterfacefürdasVoksforth83
  6. ÇêaufdemAtariST
  7.  
  8. ÇêGettingstartedÇ
  9.  
  10. BevorSiedasGlossarlesen,solltenSiediesekleineEinführung
  11. lesenundaufeinerleerenDiskettedieBeispieleausprobieren.
  12.  
  13. êWieerzeugeicheinFile,indasicheinProgrammeingebenkann?Ç
  14.  
  15. GebenSiebittefolgendesein:
  16.  
  17. MAKEFILEtest.scr
  18.  
  19. DasFiletest.scrwirdaufdemLaufwerkerzeugt,aufdemSie
  20. dasForthgebootethaben.
  21. AlsnächstesschätzenSiebitteab,wielangIhrProgramm
  22. etwawird.BeachtenSiedabeibitte,daßderScreen0eines
  23. FilesfürHinweisezurHandhabungihresProgrammsundder
  24. Screen1füreinensog.Loadscreen(dasisteinScreen,der
  25. denRestdesFileslädt)reserviertsind.WollenSiealso
  26. z.B.3ScreensProgrammeingeben,somußdasFile5Screens
  27. langsein;Siegebenalsoein:
  28.  
  29. 5MORE
  30.  
  31. Fertig!SiehabenjetzteinFile,dasdieScreens0..4
  32. enthält.GebenSiejetzt
  33.  
  34. 1L
  35.  
  36. ein.SieeditierenjetztdenScreen1IhresneuenFiles
  37. test.scr.Siekönnen,fallsderPlatznichtausreicht,Ihr
  38. FilespätereinfachmitMOREverlängern.EinFilekann
  39. leidernichtverkürztwerden.
  40.  
  41. ê
  42. WiesprecheicheinbereitsaufderDiskettevorhandenesFilean?
  43.  
  44. ÇDasgehtnocheinfacher.GebenSieeinfachdenFilenamenein.
  45. ReagiertdasSystemmitderMeldung"Haeh?",sokenntdas
  46. ForthdiesesFilenochnicht.SiemüssenindiesemFalldas
  47. WortUSEvordemFilenameneingeben,alsoz.B.
  48.  
  49. USEtest.scr
  50.  
  51. JetztkönnenSiewieobenbeschriebenmit1L(odereiner
  52. anderenZahl)dasFileeditieren.DasWortUSEerzeugt
  53. übrigensimForthsystemdasWortTEST.SCR,fallsesnoch
  54. nichtvorhandenwar.WissenSiealsonichtmehr,obSieein
  55. Fileschonbenutzthaben,sokönnenSiemitWORDS
  56. nachsehenoderdasWort USE voranstellen.
  57.  
  58. ê
  59. ♪≈WieerzeugeichFilesaufeinemvorgegebenemLaufwerk,z.B.A:?
  60.  
  61. ÇEntwederdurchVoranstellendesPfadnamensoderdurchEingabe
  62. von:
  63.  
  64. A:
  65.  
  66. HierbeiwirdA:zumaktuellenLaufwerkgemacht.
  67.  
  68. êWiesprecheichDirectoriesan?
  69. Ç
  70. HierbeigibtesverschiedeneMethoden.FürdenAnfang
  71. versuchenwir,FilesineinemDirectory"test.dir"zusuchen
  72. bzw.zuerzeugen.DazugebenSieein:
  73.  
  74. dirtest.dir
  75.  
  76. Jetztwerdenintest.diralleFilesundDirectorieserzeugt
  77. undgesucht.IstdasDirectory"test.dir"nochnicht
  78. vorhanden,soerzeugenSieesmit:
  79.  
  80. makedirtest.dir
  81.  
  82. AnschließendkönnenSiewiederDIRbenutzen.
  83.  
  84.  
  85. ê0)Allgemeines
  86. Ç
  87. ImfolgendenwirddieBenutzungdesFileinterfacesbeschrieben.
  88. DiesesFileinterfacebenutztdieFilesdesGEM-Dosunddessen
  89. Subdirectories.
  90.  
  91. BenutztmaneinFilevonForthaus,sowirdesinBlöckezuje
  92. 1024Bytesaufgeteilt,dieingewohnterWeiseanzusprechensind.
  93. DiestrifftauchfürFileszu,dienichtvomForthauserzeugt
  94. wurden.AlsKonventionwirdvorgeschlagen,daßFiles,dieForth-
  95. Screens,alsoQuelltexte,enthalten,mit.SCRerweitertwerden.
  96. Files,dieDatenenthalten,dienichtunmittelbarlesbarsind,
  97. solltenauf.BLKenden.
  98.  
  99. ZumUmschaltenvomFilesystemaufDirektzugriffundumgekehrtgibt
  100. esdasWort
  101.  
  102. DIRECT              (--)
  103. schaltetaufDirektzugriffum.AufdenFilezugriffschalten
  104. wirdurchdasNenneneinesFilenamensum.
  105.  
  106.  
  107. 1)êDerDirectory-MechanismusÇ
  108.  
  109. DieVerwaltungvonDirectoriesentsprichtinetwaderdesGEM-Dos
  110. Command-interpretersCOMMAND.PRG
  111.  
  112. PATH(--)
  113. DiesesWortgestattetes,mehrereDirectoriesnacheinemzu
  114. öffnendenFiledurchsuchenzulassen.Dasistdann
  115. praktisch,wennmanmitmehrerenFilesarbeitet,diesichin
  116. verschiedenenDirectoriesoderDiskstationenbefinden.Es
  117. wirdindenfolgendenFormenbenutzt:
  118.  
  119. PATHdir1;dir2;....
  120.  
  121. Hierbeisind<dir1>,<dir2>etc.Pfadnamen.WirdeinFileauf
  122. demMassenspeichergesucht,sowirdzunächst<dir1>,dann
  123. <dir2>etc.durchsucht.ZumSchlußwirddasFiledannim
  124. aktuellenDirectory(sieheDIR)gesucht.BeachtenSiebitte,
  125. daßkeineLeerzeicheninderReihederPfadnamenauftreten
  126. dürfen.
  127.  
  128. Beispiel:PATHA:\;B:\COPYALL.DEM;\AUTO\
  129. IndiesemBeispielwirdzunächstdieDiskstationA,dann
  130. dasDirectoryCOPYALL.DEMaufDiskstationBund
  131. schließlichdasDirectoryAUTOaufdemaktuellen
  132. Laufwerk(sieheSETDRIVE,A:undB:)gesucht.Beachten
  133. SiebittedasZeichen"\"vorundhinterAUTO.Das
  134. vordereZeichen"\"stehtfürdasHauptdirectory.Wird
  135. esweggelassen,sowird AUTO\ andasmit DIR 
  136. gewählteDirectoryangehängt.DashintereZeichen"\"
  137. trenntdenFilenamenvomPfadnamen.
  138.  
  139. AußerdemkönnenSieeingeben:
  140.  
  141. PATH;
  142.  
  143. IndiesemFallwerdenallePfadegelöschtundeswirdnur
  144. nochdasaktuelleDirectorydurchsucht.
  145. Schließlichgehtnoch:
  146.  
  147. PATH
  148.  
  149. DanndrucktPATHdieReihederPfadnamenaus.
  150. DiesesWortentsprichtdemKommandoPATHdesKommando-
  151. inteters.
  152.  
  153. MAKEDIR  cccc       (--)
  154. ErzeugtimaktuellenDirectory(sieheDIR)einDirectorymit
  155. NamenCCCC.
  156. DiesesWortentsprichtdemKommandoMDdesKommando-
  157. interpreters.
  158.  
  159. A:                  (--)
  160. MachtdieDiskstationA:zumaktuellenLaufwerk(siehe
  161. SETDRIVE).
  162. DiesesWortentsprichtdemKommandoA:desKommando-
  163. interpreters.
  164.  
  165. B:                  (--)
  166. MachtdieDiskstationB:zumaktuellenLaufwerk(siehe
  167. SETDRIVE).
  168. DiesesKommandoentsprichtdemKommandoB:desKommando-
  169. interpreters.
  170.  
  171. SETDRIVE  (n--)
  172. MachtdieDiskstationmitderNummernzuaktuellenLaufwerk.
  173. Hiebeientsprichtn=0derDiskstationA,n=1derDiskstation
  174. Busw.
  175. AufdemaktuellenLaufwerkwerdenFilesundDirectories
  176. erzeugt(undnachDurchsuchenvonPATHgesucht).Das
  177. Directory,indemFileserzeugtwerden,wirdmitDIR
  178. angegeben.
  179.  
  180. ♪≈DIR              (--)
  181. WirdindenfolgendenFormenbenutzt:
  182.  
  183. DIRcccc
  184.  
  185. <cccc>isteinPfadname,andenneuzuerzeugendeFilesund
  186. Directoriesangehängtwerden.
  187. Beispiel:
  188.  
  189. A:DIRAUTO
  190.  
  191. erzeugtallefolgendenFilesimDirectoryAUTOaufder
  192. DiskstationA.In<cccc>könnenallevomGEM-Dos
  193. zugelassenenZeichenaußerLeerzeichenverwendetwerden.
  194.  
  195. Außerdemgehtnoch
  196.  
  197.           DIR
  198.  
  199. ohneweitereEingabenwirdderaktuelleSuchpfad
  200. einschließlichdesLaufwerksangezeigt.
  201. DiesesWortentsprichtdemKommandoCDdesKommando-
  202. interpreters.
  203.  
  204. FILES               (--)
  205. ListetdenInhaltdesaktuellenDirectories(sieheDIRund
  206. SETDRIVE)aufdemBildschirmauf.Verweiseaufandere
  207. DirectorieswerdendurchdasvomGEM-DesktopbekannteSymbol
  208. dargestellt.
  209. DiesesWort,zusammenmitdemWortFILES"entsprichtdem
  210. KommandoDIRdesKommandointerpreters.
  211.  
  212. FILES"             (--)
  213. BenutztinderForm
  214.  
  215. FILES"cccc"
  216.  
  217. ListetdieFilesauf,derenNameCCCCist.DerStringCCCC
  218. darfdiebekanntenWildcardssowieeinenPfadnamenenthalten.
  219. WirdkeinPfadnamebzw.Laufwerkangegeben,sowerdendie
  220. FilesdesaktuellenDirectoriesbzw.Laufwerksausgegeben.
  221.  
  222.  
  223. SAVESYSTEM(--)
  224. BenutztinderForm
  225.  
  226. SAVESYSTEM<name>
  227.  
  228. DamitläßtsicheinFORTH-SystemimgegenwärtigenZustand
  229. unterdemNamen<name>abspeichern.DiesesWortwirdbenutzt,
  230. umfertigeApplikationenzuerzeugen.IndiesemFallsollte
  231. dasWort,dasdieApplikationausführt,in'COLDgepatched
  232. werden.EinBeispiel:SiehabeneinKopierprogramm
  233. geschrieben;dasobersteausführendeWortheißtCOPYDISK.Mit
  234. derSequenz
  235.  
  236. 'COPYDISKIS'COLD<Return>
  237. SAVESYSTEMCOPY.PRG<Return>
  238.  
  239. erhaltenSieeinProgammnamensCOPY.PRG,dassofortbeim
  240. StartCOPYDISKausführt.
  241.  
  242.           ê2)FilesÇ
  243.  
  244. FilesbestehenauseinemForthnamenundeinemGEM-Dos-Namen,die
  245. nichtübereinstimmenmüssen.
  246. IstdasForthwort,unterdemeinFilezugreifbarist,gemeint,so
  247. wirdimfolgendenvomêForthfileÇgesprochen.IstdasFileaufder
  248. Diskettegemeint,dasvomGEM-Dosverwaltetwird,sowirdvomêGEM-
  249. FileÇgesprochen.DurchdasNennendesForthnamenswirddas
  250. Forthfile(unddaszugeordneteGEM-File)zumêaktuellenFileÇ,auf
  251. dassichalleOperationenwieLIST,LOAD,CONVEYusw.beziehen.
  252. BeimÖffneneinesFileswirddiemitPATHangegebeneFolgevon
  253. Pfadnamendurchsucht.IsteinFileeinmalgeöffnet,sokanndiese
  254. Folgebeliebiggeändertwerden,ohnedaßderZugriffaufdasFile
  255. behindertwird.AusSicherheitsgründenempfiehltessichaber,
  256. Filessooftundsolangewieirgendmöglichgeschlossenzu
  257. halten.DannkanneineÄnderungderFolgevonPfadnamendazu
  258. führen,daßeinFilenichtmehrgefundenwird.
  259.  
  260.  
  261. FILE                (--)
  262. WirdinderForm:
  263.  
  264. FILE<name>
  265.  
  266. benutzt.
  267. ErzeugteinForthwortmitNamen<name>.Wird<name>später
  268. ausgeführt,sovermerktessichalsaktuellesFile..Ebenso
  269. vermerktessichalsFROMFILE,wasfürCONVEYwichtigist.
  270. EinemForthfilewirdmitMAKEoderASSIGNeinGEM-File
  271. zugeordnet.
  272.  
  273. MAKE                (--)
  274. WirdinderForm:
  275.  
  276. MAKEcccc
  277.  
  278. benutzt.ErzeugteinGEM-FilemitNamenccccim
  279. aktuellenDirectoryundordnetesdemaktuellenForthfilezu.
  280. DasFilewirdauchgleichgeöffnet.EshatdieLängeNull
  281. (sieheMORE).
  282.  
  283. Beispiel:FILEtest.scr
  284. test.scrMAKEtest.scr
  285.  
  286. erzeugteinForthwortTEST.SCRundeinFilegleichenNamens.
  287. AlleOperationenwieLOAD,LISTusw.beziehensichnunauf
  288. denentsprechendenScreeninTEST.SCR.BeachtenSiebitte,
  289. daßdiesesFilenochleeristunddahereineFehlerbedingung
  290. besteht,wennZugriffsoperationenausgeführtwerdensollen.
  291.  
  292. ♪≤MAKEFILE            (--)
  293. WirdinderfolgendenFormbenutzt:
  294.  
  295. MAKEFILE<name>
  296.  
  297. ErzeugteinForthfilemitNamen<NAME>underzeugt
  298. anschließendeinGEM-FilemitdemselbenNamen.DieSequenz
  299.  
  300. FILE<name>
  301. <name>MAKE<name>
  302.  
  303. würdegenaudasselbebewirken.
  304.  
  305. ASSIGN              (--)
  306. WirdinderForm
  307.  
  308. ASSIGNcccc
  309.  
  310. benutzt.OrdnetdemaktuellenFiledasGEM-FilemitNamen
  311. CCCCzu.EineFehlerbedingungbesteht,wenndasFilenicht
  312. gefundenwerdenkann.
  313.  
  314. USE                 (--)
  315. êDiesesWortistdaswichtigsteWortzumAuswählenvonFiles.
  316. Ç
  317. EswirdinderfolgendenFormbenutzt:
  318.  
  319. USE<name>
  320.  
  321. DiesesWortmachtdasFilemitNamen<NAME>zumaktuellen
  322. File,aufdassichLOAD,LISTusw.beziehen.Eserzeugtein
  323. ForthfilemitNamen<NAME>,fallsderNamenochnicht
  324. vorhandenwar.
  325. AnschließendwirddasFileindenDirectories,diemitPATH
  326. angegebenwurden,gesucht.Wirdesdortnichtgefunden,wird
  327. dasmitSETDRIVE(bzw.A:undB:)undDIRangegebene
  328. Directorydurchsucht.WirdauchdortkeinGEM-DosFilemit
  329. demNamen<NAME>gefunden,sowirddieFehlermeldungFILE
  330. NOTFOUNDausgegeben.Das(automatisch)erzeugteForthfile
  331. verbleibtimDictionaryundmußggf.mit FORGET  vergessen
  332. werden.
  333.  
  334. CLOSE               (--)
  335. SchließtdasaktuelleFile.Dabeiwirddas
  336. InhaltsverzeichnisderDisketteaktualisiertunddiesog.
  337. Handlenummerwiederfreigegeben.Eswerdendiezudiesem
  338. FilegehörendengeändertenBlöckeaufdieDiskette
  339. zurückgeschriebenundallezudiesemFilegehörendenBlöcke
  340. gelöscht.
  341.  
  342. OPEN                (--)
  343. ÖffnetdasaktuelleFile.EineFehlerbedingungbesteht,wenn
  344. dasFilenichtgefundenwerdenkann.DieBenutzungdieses
  345. WortesistindenmeistenFällenüberflüssig,daFiles
  346. automatischbeieinemZugriffgeöffnetwerden.
  347.  
  348. ♪⌠FROM                (--)
  349. WirdinderfolgendenFormbenutzt:
  350.  
  351. FROM<name>
  352.  
  353. <NAME>istderNameeinesForthfiles,ausdembeimAufruf
  354. vonCONVEYundCOPYBlöckeherauskopiertwerdensollen.
  355.  
  356. Beispiel:filea1FROMfileb3copy
  357.  
  358. KopiertdenBlock1ausFILEBaufdenBlock3vonFILEA.
  359. DiesesWortbenutzt  USE  umdasFileauszuwählen.Das
  360. bedeutet,daß  fileb  automatischalsForthfileangelegtwird,
  361. wennesnochnichtimSystemvorhandenist.
  362.  
  363. LOADFROM(n--)
  364. WirdinderfolgendenFormbenutzt:
  365.  
  366. LOADFROM<name>
  367.  
  368. <NAME>istderNameeinesForthfiles,ausdemderBlockn
  369. geladenwird.
  370.  
  371. Beispiel:15LOADFROMfilea
  372.  
  373. LädtdenBlock15ausFILEA.DiesesWortistwichtig,wenn
  374. währenddesLadenseinesFilesTeileeinesanderenFiles
  375. geladenwerdensollen.DamitkanndieFunktioneinesLinkers
  376. imitiertwerden.DiesesWortbenutzt  USE  ,um  filea  zu
  377. selektieren.Dasbedeutet,daßautomatischeinForthfilemit
  378. Namen filea erzeugtwird,fallsesimSystemnochnicht
  379. vorhandenwar.
  380. BeachtenSiebitte,daßdiesesWortnichtsmitFROModer
  381. FROMFILEzutunhat,obwohlesähnlichheißt!
  382.  
  383. INCLUDE             (--)
  384. WirdinderfolgendenFormbenutzt:
  385.  
  386. INCLUDE<name>
  387.  
  388. <NAME>istderNameeinesForthfiles,dasvollständiggeladen
  389. wird.DabeiistVoraussetzung,daßaufScreen1diesesFiles
  390. Anweisungenstehen,diezumLadenallerScreensdiesesFiles
  391. führen.SieheauchLOADFROM.
  392.  
  393. CAPACITY           (--u)
  394. uistdieLängedesaktuellenFiles.BeachtenSiebitte,daß
  395. dieLängedesFilesumeinsgrößeristalsdieNummerdes
  396. letztenBlocks,daderBlock0mitgezähltwird.
  397.  
  398. FORTHFILES          (--)
  399. DruckteineListeallerForthfiles,zusammenmitdenNamen
  400. derzugehörigenGEM-Files,derenLängeundHandlenummeraus.
  401.  
  402. FROMFILE            (--addr)
  403. AddristdieAdresseeinerVariablen,dieaufdasForth-File
  404. zeigt,ausdemCONVEYundCOPYBlöckelesen.Sieheauch
  405. FROM.BeiNenneneinesForth-FileswirddieseVariable
  406. gesetzt.
  407.  
  408. ♪ⁿLOADFILE            (--addr)
  409. AddristdieAdresseeinerVariablen,dieaufdasForth-File
  410. zeigt,dasgeradegeladenwird.DieseVariablewirdbei
  411. AufrufvonLOAD,THRUusw.aufdasaktuelleFilegesetzt.
  412.  
  413. ISFILE              (--addr)
  414. addristdieAdresseeinerVariablen,dieaufdasaktuelle
  415. Forth-Filezeigt.SiewirdbeiAusführeneinesForth-Files
  416. gesetzt.
  417.  
  418. FILE?               (--)
  419. DrucktdenNamendesaktuellenForthfiles.
  420.  
  421. MORE                (n--)
  422. VerlängertdasaktuelleFileumnScreens.DieScreens
  423. werdenhintenangehängt.AnschließendwirddasFile
  424. geschlossen.
  425.  
  426. (MORE(n--)
  427. WieMORE,jedochwirddasFilenichtgeschlossen.
  428.  
  429. EOF(--f)
  430. fisteinFlag,daswahrist,fallsüberdasEndedesFiles
  431. hinausgelesenwurde.fistfalsch,fallsaufdaszuletzt
  432. geleseneByteimFilenochweitereBytesfolgen.
  433.  
  434.  
  435.  
  436.  
  437. ê3)VerschiedenesÇ
  438.  
  439.  
  440. BeimVergesseneinesForth-FilesmitHilfevonFORGET,EMPTYusw.
  441. werdenautomatischalleBlockpuffer,dieausdiesemFilestammen,
  442. gelöscht,und,wennsiegeändertwaren,aufdieDiskette
  443. zurückgeschrieben.DasFilewirdanschließendgeschlossen.
  444.  
  445. BeiVerwendungvonFLUSHwerdenalleFilesgeschlossen.FLUSH
  446. sollteüVORÇjedemDiskettenwechselausgeführtwerden,undzwar
  447. nichtnur,umdiegeändertenBlöckezurückzuschreiben,sondern
  448. auchdamitalleFilesgeschlossenwerden.SindnämlichFiles
  449. gleichenNamensaufderneuenDiskettevorhanden,sowirdsonst
  450. eineabweichendeLängedesneuenFilesvomForthnichterkannt.
  451.  
  452. BeiVerwendungvonVIEWwirdautomatischdasrichtigeFile
  453. geöffnet.
  454.  
  455.