TUCoPS :: Antique Systems :: hp2000-4.txt

Hacking The HP2000 Part 4

=======================================
=                                     =
=      HP 2000 PART 4 (FILES)         =
=                                     =
=             CAPTURED BY             =
=                                     =
=      BLITZIOD ?? & GALACTUS **      =
=                                     =
=                 of                  =
=                                     =
=       THE ELITE HACKERS GUILD       =
=                                     =
=======================================





* FILES *





BASIC FORMATTED FILES ARE ESSENTIALLY THE SAME AS

DATA STATEMENTS, THEY BOTH HAVE POINTERS THAT MOVE ALONG THE DATA

HERE IS AN EXAMPLE OF A PROGRAM USING THE DATA STATEMENT    :



10 READ X

20 PRINT X

30 DATA 1,2,3,4,5,6,7,8,9,10

40 GOTO 10

50 END




WHEN THIS PROGRAM IS RUN THE DATA IS READ IN LINE 10

FROM THE DATA STATEMENT IN LINE 30.

AFTER THE '1' IS READ FROM THE DATA STATEMENT THE POINTER IS

MOVED TO THE '2' AND SO ON.  WHEN THE FINAL PIECE OF DATA IS READ

AND THE POINTER IS MOVED BEYOND THE '10' THEN YOU WILL GET THE

ERROR MESSAGE:      OUT OF DATA IN LINE 10       

THIS IS ESSENTIALLY THE WAY FILES WORK.

BUT FILES HAVE MANY MORE CAPABILITIES THAN DO DATA STATEMENTS




LET'S LEARN HOW TO CREATE A FILE, OK?




TO CREATE A FILE ALL ONE MUST DO IS TYPE IN CRE- THEN THE

NAME OF THE FILE, AND HOW LONG IT MUST BE.  FOR EXAMPLE IF I WANTED

TO CREATE A FILE NAMED 'DAVID' THAT IS 5 RECORDS LONG I WOULD TYPE IN

CRE-DAVID,5

THEN HIT 'RETURN'



WHENEVER YOU CREATE A FILE THE COMPUTER RESERVES THE NUMBER OF

RECORDS YOU CREATED IT ON THE DISC.  SO IF YOU CREATE A FILE THAT

IS 50 RECORDS LONG, YOU HAVE USED 50 RECORDS OF DISC SPACE, WHETHER

YOU USE THE WHOLE FILE OR NOT.



NOW I WILL SHOW YOU A PROGRAM THAT WILL PRINT ON YOUR FILE.






 5 DIM A$(20), B$(20)

10 FILES FIL1

20 PRINT 'NAME';

30 INPUT A$

40 IF END#1 THEN 85

50 READ#1,1

60 READ#1;B$

70 GOTO 60

85 IF END#1 THEN 110

90 PRINT#1;A$,END

100 STOP

110 PRINT'FILE FULL'

120 END






BY THIS TIME YOU ARE WONDERING WHAT THAT MESS IS, RIGHT ?

HERE IS AN EXPLANATION  




STATEMENT #                       MEANING

10          OPENS THE FILE THAT IS TO BE USED, IN THIS CASE THE NAME OF

            THE FILE IS 'FIL1'.  THIS STATEMENT IS TELLING THE COMPUTER

            WHAT FILE WE WANT TO USE FOR THIS PROGRAM

            FIL1 IS REFERRED TO AS #1 AS SEEN IN LINES 40,50 & 60

            IF MORE THAN ONE FILE WAS USED LINE 10 WOULD LOOK LIKE

            THIS  FILES FIL1,FIL2.  THEN FIL2 WOULD BE REFERRED

            TO AS #2.  UP TO 16 FILES CAN BE USED IN ONE PROGRAM

30          INPUT NEW NAME TO BE PRINTED ON FILE.

40          THIS STATEMENT 'IF END' SETS UP THE IF END 

            CONDITION.  THIS MEANS THAT WHEN THE FILE PIONTER GETS

            TO THE END OF  DATA IN THAT FILE THEN GOTO 85

50          THIS MEANS TO READ THE FIRST RECORD AND THE

            FIRST ITEM OF THE FILE, IN OTHER WORDS THIS

            THIS SETS THE FILE POINTER BACK TO THE BEGINNING OF THE

            DATA.

            BY USING THIS STATEMENT YOU CAN BE ASSURED OF STARTING

            AT THE BEGINNING OF THE DATA IN THAT FILE

60          READS DATA FROM FILE#1, SOMEWHAT LIKE THE 'READ' USED

            WITH DATA STATEMENTS.

85          SETS UP ANOTHER IF END CONDITION TO CHECK FOR THE END OF

            FILE.  IF ANOTHER EOF MARKER IS ECOUNTERED THEN GOTO

            LINE 110.

            END-OF-FILE MARKERS ARE DEFINED MORE PRECISELY LATER.

90          THIS STATEMENT PRINTS THE NEW NAME (A$) ON THE FILE,

            THEN PRINTS AN END OF FILE MARKER ON THE FILE.

            THE END OF FILE MARKER ENABLES THE COMPUTER TO TELL

            THROUGH THE READ STATEMENT (LINE 60) WHEN THE END OF

            DATA IS REACHED





HERE IS A FLOW CHART OF THAT PROGRAM:



1.  INPUT NEW NAME -----------2.  READ DATA FROM FILE



3.  IF END OF FILE #1 THEN 4 -----GO BACK TO 2.

                                 !

                    4.  IF END#1 THEN 7

                                 !

5.  TRY TO PRINT NEW NAME ON FILE, IF SUCCESSFUL (MEANING FILE IS

    NOT FULL) THEN 6.  IF UNSECCESSFUL (MEANING FILE IS FULL) THEN 7.

                                 !                            !

                                                              !

                                 !            7.  PRINT'FILE FULL'

                             6.  STOP                         !

                                                          8. END




OK, LET'S MOVE ON TO GET A LISTING OF YOUR FILE



05 DIM A$(20)

10 FILES FIL1

20 IF END#1 THEN 70

30 READ#1,1

40 READ#1;A$

50 PRINT A$

60 GOTO 40

70 END




THIS IS A RATHER SIMPLE PROGRAM, IT GOES LIKE THIS;

YOU SET UP THE IF END CONDITION, THEN READ STARTING AT THE

BEGINNING OF THE FILE.  READ THROUGH THE FILE AND PRINT

EACH SEPARATE PIECE OF DATA (LINES 40 & 50). WHEN ALL THE

DATA HAS BEEN READ THROUGH, IT FALLS THROUGH TO LINE 70, BY

THE CONDITION SET UP IN LINE #20 AND AT THIS POINT

EXECUTION IS TERMINATED.






*  END OF FILE DISCUSSION  *





HERE IS SOME ELLABORATION ON WHAT YOU HAVE LEARNED SO FAR

ABOUT BASIC FORMATTED FILES.



 THE EOF MARKER IS WHAT THE IF END CONDITION IS USED 

WITH.  THE EOF MARKER DESIGNATES THAT THE END OF DATA HAS BEEN REACHED.

AS MORE DATA IS PUT INTO A FILE.

TUCoPS is optimized to look best in Firefox® on a widescreen monitor (1440x900 or better).
Site design & layout copyright © 1986-2024 AOH