Zedcor ZBasic v4.02
This commit is contained in:
parent
5684a37d8f
commit
c79505a93c
384
Zedcor ZBasic v402/CONFIG.BAS
Normal file
384
Zedcor ZBasic v402/CONFIG.BAS
Normal file
@ -0,0 +1,384 @@
|
||||
'------------------------------------------------------------------------
|
||||
' Array declarations
|
||||
'------------------------------------------------------------------------
|
||||
DIM ADRS%(15), BYTES(15)
|
||||
DIM 30 MENU$(5), 7 LEP$(10), 40 MENU1$(5)
|
||||
DIM 40 MENU2$(12), 7 SEP1$(10), SEP2$(10)
|
||||
|
||||
'------------------------------------------------------------------------
|
||||
' Function declarations
|
||||
'------------------------------------------------------------------------
|
||||
LONG FN MENUKY$(ht,inc,top,P$)
|
||||
COLOR ,&70 : PRINT @(ht,Line*inc+top-2) P$ ' Inverse text
|
||||
DO
|
||||
A$ = INKEY$
|
||||
UNTIL LEN(A$) ' Wait for a keypress
|
||||
A$ = RIGHT$(A$,1)
|
||||
COLOR ,7 : PRINT @(ht,Line*inc+top-2) P$ ' Restore normal text
|
||||
END FN = A$
|
||||
|
||||
LONG FN MAINMENU ' Used to put main menu on screen
|
||||
CLS : LOCATE ,,0
|
||||
FOR I = 1 TO 4
|
||||
PRINT @(27,I*2+3) MENU$(I)
|
||||
NEXT I
|
||||
END FN
|
||||
|
||||
LONG FN Increment(X) ' Increment color attribute byte
|
||||
X = (X AND &0F) + 1 : IF X > 15 THEN X = 0
|
||||
X = X OR (BYTES(2) << 4) ' Combine with border color background
|
||||
END FN = X
|
||||
|
||||
'------------------------------------------------------------------------
|
||||
' Main program initialization
|
||||
'------------------------------------------------------------------------
|
||||
MODE 2 : CLS
|
||||
PRINT "PLEASE ENTER COMPLETE PATHNAME TO FILE TO BE PATCHED:"
|
||||
INPUT "-> "; FILE$
|
||||
A$ = MID$(FILE$,2,1) ' Check for drive specifier
|
||||
LONG IF A$ = ":"
|
||||
DR$ = LEFT$(FILE$,2) ' Get drive specifier from string
|
||||
FILE$ = RIGHT$(FILE$, LEN(FILE$)-2)
|
||||
XELSE
|
||||
A$ = PATH$(0) : DR$ = LEFT$(A$,2) ' Else use default
|
||||
END IF
|
||||
FOR I = LEN(FILE$) TO 1 STEP -1 ' Parse filename from full pathname
|
||||
A$ = MID$(FILE$,I,1)
|
||||
IF A$ = "\" THEN PSN = I : I = 1
|
||||
NEXT I
|
||||
LONG IF PSN <> 0
|
||||
PTH$ = LEFT$(FILE$,PSN-1)
|
||||
XELSE
|
||||
PTH$ = PATH$(0)
|
||||
END IF
|
||||
OLDPTH$ = PATH$(0) : CHDIR PTH$ ' Save current path and set new
|
||||
FILE$ = DR$ + FILE$ ' Build file specifier
|
||||
OPEN "R", 1, FILE$, 1 ' Open the file
|
||||
NUM_OF_BYTES = 0
|
||||
|
||||
DO
|
||||
READ ADRS%(NUM_OF_BYTES) ' Get the addresses of the current values
|
||||
NUM_OF_BYTES = NUM_OF_BYTES + 1
|
||||
UNTIL ADRS%(NUM_OF_BYTES-1) = 0
|
||||
DATA &6860 'COLOR1
|
||||
DATA &6865 'COLOR2
|
||||
DATA &6E6F 'COLOR3
|
||||
DATA &6E85 'COLOR4
|
||||
DATA &6EA7 'COLOR5
|
||||
DATA &6ECD 'COLOR6
|
||||
DATA &6EEF 'COLOR7
|
||||
DATA &6EF0 'COLOR8
|
||||
DATA &88DB 'COLOR9
|
||||
DATA &88E4 'COLOR10
|
||||
DATA &88EE 'COLOR11
|
||||
DATA &8A49 'COLOR12
|
||||
DATA &8A69 'COLOR13
|
||||
DATA &89F6 'COLOR14
|
||||
DATA 0
|
||||
|
||||
' Fill menu arrays
|
||||
NUM_OF_BYTES = NUM_OF_BYTES - 2
|
||||
FOR I = 1 TO 4
|
||||
READ MENU$(I)
|
||||
NEXT I
|
||||
DATA " Line Editor Prompt Line "
|
||||
DATA " Screen Editor Colors "
|
||||
DATA " Abandon Changes and Exit "
|
||||
DATA " Save Changes and Exit "
|
||||
|
||||
FOR I = 1 TO 10
|
||||
READ LEP$(I)
|
||||
NEXT I
|
||||
DATA "LIST* ","RUN ","LOAD ","SAVE ","FIND "
|
||||
DATA "EDIT ","CONFIG","COMPILE","KEY ","EDITOR"
|
||||
|
||||
FOR I = 1 TO 5
|
||||
READ MENU1$(I)
|
||||
NEXT I
|
||||
DATA " Increment Text Color "
|
||||
DATA " Increment Background Color "
|
||||
DATA " Increment Numeric Color "
|
||||
DATA " Increment Numeric Background Color "
|
||||
DATA " Return to Main Menu "
|
||||
|
||||
FOR I = 1 TO 10
|
||||
READ SEP1$(I)
|
||||
READ SEP2$(I)
|
||||
NEXT I
|
||||
DATA "LOAD ","SAVE ","CUT ","PASTE "
|
||||
DATA "COPY ","REPLACE","INSERT ","DELETE "
|
||||
DATA "FIND ","FIND N ","TABS ","AUTOTAB"
|
||||
DATA "RESTORE","LLIST ","SCROLL","SCROLL"
|
||||
DATA "FREEZE","FREEZE","EXIT ","NEW "
|
||||
|
||||
FOR I = 1 TO 12
|
||||
READ MENU2$(I)
|
||||
NEXT I
|
||||
DATA " Increment Border Color "
|
||||
DATA " Increment Current Line Color "
|
||||
DATA " Increment Non-Current Line Color "
|
||||
DATA " Increment Warning Message Color "
|
||||
DATA " Increment Load/Save Prompt Color "
|
||||
DATA " Increment Load/Save Response Color "
|
||||
DATA " Increment Function Key Text Color "
|
||||
DATA " Increment ALT-Function Key Text Color "
|
||||
DATA " Increment Function Key Numeral Color "
|
||||
DATA " Increment FILE: Color "
|
||||
DATA " Increment Memory Remaining Value Color "
|
||||
DATA " Return to Main Menu "
|
||||
|
||||
FOR I = 0 TO NUM_OF_BYTES
|
||||
RECORD #1, ADRS%(I)-&100 ' Get current values from file
|
||||
READ #1, A$;1
|
||||
BYTES(I) = ASC(A$)
|
||||
NEXT I
|
||||
CLOSE #1
|
||||
|
||||
'------------------------------------------------------------------------
|
||||
' Main menu
|
||||
'------------------------------------------------------------------------
|
||||
Line = 1
|
||||
FN MAINMENU ' Put up the first menu screen
|
||||
QUIT = 0
|
||||
DO
|
||||
A$ = FN MENUKY$(27,2,5,MENU$(Line)) ' Get a keypress
|
||||
SELECT ASC(A$)
|
||||
CASE 72, 75 ' Up arrow or left arrow
|
||||
Line = Line - 1 : IF Line < 1 THEN Line = 4
|
||||
CASE 80, 77 ' Down arrow or right arrow
|
||||
Line = Line + 1 : IF Line > 4 THEN Line = 1
|
||||
CASE 13, 32 ' Return or Space
|
||||
LineSave = Line
|
||||
ON Line GOSUB "LINE","SCREEN","ABANDON","DONE"
|
||||
IF QUIT THEN "SKIP"
|
||||
Line = LineSave
|
||||
FN MAINMENU ' Refresh the main menu screen
|
||||
"SKIP"
|
||||
END SELECT
|
||||
UNTIL QUIT
|
||||
COLOR ,7 : CLS
|
||||
CHDIR OLDPTH$ ' Restore previous path
|
||||
END
|
||||
|
||||
'------------------------------------------------------------------------
|
||||
' Line editor function key prompt colors
|
||||
'------------------------------------------------------------------------
|
||||
"LINE"
|
||||
COLOR ,7 : CLS : GOSUB "PUT FNKEYS" ' Simulate function key prompts
|
||||
COLOR ,7
|
||||
FOR I = 1 TO 5 : ' Put menu on screen
|
||||
PRINT @(22,I*2+3) MENU1$(I)
|
||||
NEXT I
|
||||
Line = 1
|
||||
QUIT = 0
|
||||
DO
|
||||
A$ = FN MENUKY$(22,2,5,MENU1$(Line)) ' Get a keypress
|
||||
SELECT ASC(A$)
|
||||
CASE 72, 75 ' Up arrow or left arrow
|
||||
Line = Line - 1 : IF Line < 1 THEN Line = 5
|
||||
CASE 80, 77 ' Down arrow or right arrow
|
||||
Line = Line + 1 : IF Line > 5 THEN Line = 1
|
||||
CASE 13, 32 ' Return or Space
|
||||
ON Line GOSUB "LINE1","LINE2","LINE3","LINE4","LINE EXIT"
|
||||
END SELECT
|
||||
UNTIL QUIT
|
||||
QUIT = 0 : RETURN
|
||||
|
||||
"LINE1" ' Increment function key text color
|
||||
Y = BYTES(0) AND &0F
|
||||
Y = Y + 1 : IF Y > 15 THEN Y = 0
|
||||
BYTES(0) = (BYTES(0) AND &F0) OR Y
|
||||
GOSUB "PUT FNKEYS"
|
||||
RETURN
|
||||
|
||||
"LINE2" ' Increment function key background color
|
||||
Y = (BYTES(0) AND &F0) >> 4
|
||||
Y = Y + 1 : IF Y > 15 THEN Y = 0
|
||||
BYTES(0) = (BYTES(0) AND &0F) OR (Y << 4)
|
||||
GOSUB "PUT FNKEYS"
|
||||
RETURN
|
||||
|
||||
"LINE3" ' Increment function key number color
|
||||
Y = BYTES(1) AND &0F
|
||||
Y = Y + 1 : IF Y > 15 THEN Y = 0
|
||||
BYTES(1) = (BYTES(1) AND &F0) OR Y
|
||||
GOSUB "PUT FNKEYS"
|
||||
RETURN
|
||||
|
||||
"LINE4" ' Increment function key number background color
|
||||
Y = BYTES(1) AND &F0
|
||||
Y = Y + 16 : IF Y > 256 THEN Y = 0
|
||||
BYTES(1) = (BYTES(1) AND &0F) OR Y
|
||||
GOSUB "PUT FNKEYS"
|
||||
RETURN
|
||||
|
||||
"LINE EXIT" ' Back to the main menu
|
||||
QUIT = 1 : RETURN
|
||||
|
||||
"PUT FNKEYS" ' Simulate line editor function key prompt
|
||||
LOCATE 0,24,0
|
||||
FOR I = 1 TO 10
|
||||
A$ = RIGHT$(STR$(I),1)
|
||||
COLOR ,BYTES(1)
|
||||
PRINT A$;
|
||||
COLOR ,BYTES(0)
|
||||
PRINT LEP$(I);
|
||||
NEXT I
|
||||
RETURN
|
||||
|
||||
'------------------------------------------------------------------------
|
||||
' Full screen editor screen colors
|
||||
'------------------------------------------------------------------------
|
||||
"SCREEN"
|
||||
COLOR ,7 : CLS
|
||||
GOSUB "PAINT SCREEN" ' Simulate screen editor screen
|
||||
COLOR ,7
|
||||
FOR I = 1 TO 12 : ' Print the menu
|
||||
PRINT @(20,I+2) MENU2$(I)
|
||||
NEXT I
|
||||
Line = 1 : QUIT = 0
|
||||
DO
|
||||
A$ = FN MENUKY$(20,1,4,MENU2$(Line))
|
||||
SELECT ASC(A$)
|
||||
CASE 72, 75 ' Up arrow or left arrow
|
||||
Line = Line - 1 : IF Line < 1 THEN Line = 12
|
||||
CASE 80, 77 ' Down arrow or right arrow
|
||||
Line = Line + 1 : IF Line > 12 THEN Line = 1
|
||||
CASE 13, 32 ' Return or Space
|
||||
ON Line GOSUB "S1","S2","S3","S4","S5","S6","S7","S8","S9","S10","S11","S12"
|
||||
END SELECT
|
||||
UNTIL QUIT
|
||||
QUIT = 0 : RETURN
|
||||
|
||||
"S1" ' Increment border color
|
||||
BYTES(2) = BYTES(2) + 1
|
||||
IF BYTES(2) > 7 THEN BYTES(2) = 0
|
||||
GOSUB "PAINT SCREEN"
|
||||
RETURN
|
||||
|
||||
"S2" ' Increment current line color
|
||||
BYTES(3) = BYTES(3) + 1
|
||||
IF BYTES(3) > 15 THEN BYTES(3) = 0
|
||||
COLOR ,BYTES(3) : PRINT @(0,19) "10 REM This is the current cursor line"
|
||||
COLOR ,7 : RETURN
|
||||
|
||||
"S3" ' Increment non-current line color
|
||||
BYTES(4) = BYTES(4) + 1
|
||||
IF BYTES(4) > 15 THEN BYTES(4) = 0
|
||||
COLOR ,BYTES(4) : PRINT @(0,20) "20 REM This is not the current line"
|
||||
COLOR ,7 : RETURN
|
||||
|
||||
"S4" ' Increment warning message color
|
||||
BYTES(5) = FN Increment(BYTES(5))
|
||||
COLOR ,BYTES(5) : PRINT @(60,21) "Warning message"
|
||||
COLOR ,7 : RETURN
|
||||
|
||||
"S5" ' Increment Load/Save prompt color
|
||||
BYTES(6) = FN Increment(BYTES(6))
|
||||
COLOR ,BYTES(6) : PRINT @(0,21) "Enter filename to load [.BAS]:";
|
||||
COLOR ,7 : RETURN
|
||||
|
||||
"S6" ' Increment Load/Save response color
|
||||
BYTES(7) = FN Increment(BYTES(7))
|
||||
COLOR ,BYTES(7) : PRINT @(31,21) "CONFIG.BAS";
|
||||
PRINT @(6,22) "CONFIG.BAS";
|
||||
COLOR ,7 : RETURN
|
||||
|
||||
"S7" ' Increment function key text color
|
||||
BYTES(8) = FN Increment(BYTES(8))
|
||||
GOSUB "PUT KEYS"
|
||||
COLOR ,7 : RETURN
|
||||
|
||||
"S8" ' Increment ALT-function key text color
|
||||
BYTES(9) = FN Increment(BYTES(9))
|
||||
GOSUB "PUT ALTKEYS"
|
||||
COLOR ,7 : RETURN
|
||||
|
||||
"S9" ' Increment function key number color
|
||||
BYTES(10) = FN Increment(BYTES(10))
|
||||
GOSUB "PUT KEYS" : GOSUB "PUT ALTKEYS"
|
||||
COLOR ,7 : RETURN
|
||||
|
||||
"S10" ' Increment "FILE:" message color
|
||||
BYTES(11) = FN Increment(BYTES(11))
|
||||
COLOR ,BYTES(11) : PRINT @(0,22) "FILE:";
|
||||
PRINT @(66,22) "MEMORY:";
|
||||
COLOR ,7 : RETURN
|
||||
|
||||
"S11" ' Increment memory remaining color
|
||||
BYTES(12) = FN Increment(BYTES(12))
|
||||
COLOR ,BYTES(12) : PRINT @(74,22) "65535";
|
||||
COLOR ,7 : RETURN
|
||||
|
||||
"S12" ' Back to the main menu
|
||||
QUIT = 1 : RETURN
|
||||
|
||||
"PAINT SCREEN"
|
||||
COLOR ,,BYTES(2) : BACKGROUND = BYTES(2)
|
||||
FOR I = 5 TO 12
|
||||
BYTES(I) = (BYTES(I) AND &0F) OR (BACKGROUND << 4)
|
||||
NEXT I
|
||||
GOSUB "PUT ALTKEYS"
|
||||
GOSUB "PUT KEYS"
|
||||
LOCATE 0,22,0
|
||||
COLOR ,BYTES(11)
|
||||
PRINT SPACE$(80);
|
||||
PRINT @(0,22) "FILE: ";
|
||||
PRINT @(66,22) "MEMORY: ";
|
||||
COLOR ,BYTES(7) : PRINT @(6,22) "CONFIG.BAS";
|
||||
COLOR ,BYTES(12) : PRINT @(74,22) "65535";
|
||||
COLOR ,BYTES(6) : PRINT @(0,21) SPACE$(80);
|
||||
PRINT @(0,21) "Enter filename to load [.BAS]: ";
|
||||
COLOR ,BYTES(7) : PRINT "CONFIG.BAS";
|
||||
COLOR ,BYTES(5) : PRINT @(60,21) "Warning message";
|
||||
COLOR ,BYTES(3) : PRINT @(0,19) "10 REM This is the current cursor line"
|
||||
COLOR ,BYTES(4) : PRINT @(0,20) "20 REM This is not the current line"
|
||||
RETURN
|
||||
|
||||
"PUT KEYS"
|
||||
COLOR ,BYTES(8) : PRINT @(0,23) SPACE$(80);
|
||||
LOCATE 0,23,0
|
||||
FOR I = 1 TO 10
|
||||
COLOR ,BYTES(10)
|
||||
A$ = RIGHT$(STR$(I),1)
|
||||
PRINT A$;
|
||||
COLOR ,BYTES(8)
|
||||
PRINT SEP1$(I);
|
||||
NEXT I
|
||||
RETURN
|
||||
|
||||
"PUT ALTKEYS"
|
||||
LOCATE 0,24,0
|
||||
FOR I = 1 TO 10
|
||||
COLOR ,BYTES(10)
|
||||
A$ = RIGHT$(STR$(I),1)
|
||||
PRINT A$;
|
||||
COLOR ,BYTES(9)
|
||||
PRINT SEP2$(I);
|
||||
NEXT I
|
||||
RETURN
|
||||
|
||||
'------------------------------------------------------------------------
|
||||
' Abandon changes and quit program
|
||||
'------------------------------------------------------------------------
|
||||
"ABANDON"
|
||||
QUIT = 1 : RETURN
|
||||
|
||||
'------------------------------------------------------------------------
|
||||
' Save changes and quit program
|
||||
'------------------------------------------------------------------------
|
||||
"DONE"
|
||||
OPEN "R", 1, FILE$, 1 ' Open the file with 1-byte long records
|
||||
FOR I = 0 TO NUM_OF_BYTES
|
||||
RECORD #1, ADRS%(I) - &100
|
||||
A$ = CHR$(BYTES(I))
|
||||
WRITE #1, A$;1
|
||||
NEXT I
|
||||
CLOSE #1
|
||||
QUIT = 1 : RETURN
|
||||
|
||||
'------------------------------------------------------------------------
|
||||
' End of program
|
||||
'------------------------------------------------------------------------
|
||||
|
||||
|
29
Zedcor ZBasic v402/E.BAS
Normal file
29
Zedcor ZBasic v402/E.BAS
Normal file
@ -0,0 +1,29 @@
|
||||
100 DIGITS% = 200
|
||||
110 DIM A%( 200 )
|
||||
120 HIGH% = DIGITS%
|
||||
130 X% = 0
|
||||
140 N% = HIGH% - 1
|
||||
150 IF N% <= 0 GOTO 200
|
||||
160 A%( N% ) = 1
|
||||
170 N% = N% - 1
|
||||
180 GOTO 150
|
||||
200 A%( 1 ) = 2
|
||||
210 A%( 0 ) = 0
|
||||
220 IF HIGH% <= 9 GOTO 400
|
||||
230 HIGH% = HIGH% - 1
|
||||
235 N% = HIGH%
|
||||
240 IF N% = 0 GOTO 300
|
||||
250 A%( N% ) = X% MOD N%
|
||||
260 X% = ( 10 * A%( N% - 1 ) ) + ( X% / N% )
|
||||
270 N% = N% - 1
|
||||
280 GOTO 240
|
||||
300 IF X% >= 10 GOTO 330
|
||||
310 PRINT USING "#"; X%;
|
||||
320 GOTO 220
|
||||
330 PRINT USING "##"; X%;
|
||||
340 GOTO 220
|
||||
400 PRINT ""
|
||||
410 PRINT "done"
|
||||
420 SYSTEM
|
||||
|
||||
|
BIN
Zedcor ZBasic v402/HERC.COM
Normal file
BIN
Zedcor ZBasic v402/HERC.COM
Normal file
Binary file not shown.
BIN
Zedcor ZBasic v402/NULLFIX.BAS
Normal file
BIN
Zedcor ZBasic v402/NULLFIX.BAS
Normal file
Binary file not shown.
26
Zedcor ZBasic v402/PATCHTBL.TXT
Normal file
26
Zedcor ZBasic v402/PATCHTBL.TXT
Normal file
@ -0,0 +1,26 @@
|
||||
Patch Locations for ZBasic v4.02
|
||||
|
||||
Initial
|
||||
Name Address Value Description
|
||||
|
||||
LISTFLG &H5345 &H00 Set to 2Ah to highlight tokens during
|
||||
list
|
||||
INSRTFLG &H6F40 &H82 Set to 02h to default screen editor
|
||||
to insert mode
|
||||
|
||||
COLOR1 &H6860 &H79 Line editor function key text
|
||||
COLOR2 &H6865 &H07 Line editor function key number
|
||||
COLOR3 &H6E6F &H01 Full Screen Editor (FSE) border
|
||||
COLOR4 &H6E85 &H0F FSE current line
|
||||
COLOR5 &H6EA7 &H03 FSE non-current line
|
||||
COLOR6 &H6ECD &H1C FSE warning messages
|
||||
COLOR7 &H6EEF &H1F FSE load/save filename prompt
|
||||
COLOR8 &H6EF0 &H17 FSE load/save filename response
|
||||
COLOR9 &H88DB &H1B FSE function key text
|
||||
COLOR10 &H88E4 &H1A FSE ALT-function key text
|
||||
COLOR11 &H88EE &H16 FSE function key number
|
||||
COLOR12 &H8A49 &H1E FSE "File:" message
|
||||
COLOR13 &H8A69 &H12 FSE memory remaining message
|
||||
COLOR14 &H89F6 &H00 FSE exit border color
|
||||
|
||||
|
308
Zedcor ZBasic v402/READ.ME
Normal file
308
Zedcor ZBasic v402/READ.ME
Normal file
@ -0,0 +1,308 @@
|
||||
ZBasic Version 4.02 - December 7, 1987
|
||||
|
||||
This file contains items of interest that didn't make it into the manual.
|
||||
Anything not specified in the manual, or changed since the manual has been
|
||||
printed, can be found in this file.
|
||||
|
||||
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
|
||||
|
||||
The HERC.COM (and it's batch file loader, ZHERC.BAT) are only required if you
|
||||
wish to intermix text and graphics on the Hercules graphics screen. If you
|
||||
are only producing graphics, these files are not required. Just remember
|
||||
that the HERC.COM driver is a software emulation of text on the graphics
|
||||
screen. It works by actually drawing the characters on the screen from a
|
||||
predefined software font. Therefore, there is a great speed difference
|
||||
between text in MODE 2 and MODE 20.
|
||||
|
||||
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
|
||||
|
||||
There are a couple of additional sample programs included on the disk which
|
||||
are not mentioned in the program. One of them deserves mention here. The
|
||||
ZCALC.BAS file contains the ZBasic source code to produce a spreadsheet with
|
||||
a very familiar command structure. Try it out! If you don't like it, modify
|
||||
it until you do!
|
||||
|
||||
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
|
||||
|
||||
The method used to store null (blank) lines in the tokenized source program
|
||||
has been changed, since the full screen editor would go totally FUNGUS
|
||||
(Fouled-Up, No Good, and generally UnSatisfactory) with the old way. Version
|
||||
4.00 stored null lines as a single null byte within the tokenized program.
|
||||
Version 4.02 and later stores null lines in the same format as the other
|
||||
tokenized lines. The full screen editor is much happier now. This does
|
||||
cause a problem with the programs that you've saved using version 4.0,
|
||||
though. If the program was saved in tokenized format (using the SAVE
|
||||
command), and it contained null lines, then that program will have to be
|
||||
converted to the new tokenized format. There are two methods for doing
|
||||
this. First method: Use version 4.00 to save the program in ASCII format
|
||||
(using SAVE*), and then reload it into version 4.02. Second method: Use the
|
||||
supplied conversion program which will translate any null lines into the new
|
||||
format. The name of this program is "nullfix.bas", and can be found on this
|
||||
distribution diskette. Run this program as you would any other ZBasic
|
||||
program. Any old tokenized programs that do not contain null lines will not
|
||||
cause any problems, and can be loaded normally.
|
||||
|
||||
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
|
||||
|
||||
Many people requested a way to change the colors of the screen in the line
|
||||
and screen editors. There is an additional file on the diskette titled
|
||||
"PATCHTBL.TXT" which lists the addresses within ZBasic which can be changed
|
||||
to customize the screen colors. Simply use the Patch option on the ZBasic
|
||||
startup screen to change the various attribute bytes. If you wish to save
|
||||
the changes that you've made, select Save from the same menu.
|
||||
|
||||
In addition, the program "CONFIG.BAS" will allow you interactively alter the
|
||||
colors used in the line and screen editor. Simply load the program into
|
||||
ZBasic, and then RUN it. It will first ask you to specify the pathname of
|
||||
the ZBASIC.COM file that you wish to alter. Next, you will be presented with
|
||||
the main menu. Use the keypad arrow keys to move the cursor to the menu item
|
||||
that you want, then press either the RETURN key or the space bar. This same
|
||||
method is used to change the various colors within the submenus. When done,
|
||||
select the SAVE option to save the changes in your ZBasic file on disk, or
|
||||
select ABANDON to discard the changes.
|
||||
|
||||
This program is supplied in source code format so that you can modify it to
|
||||
your own liking. Feel free to use the programming techniques in your own
|
||||
programs.
|
||||
|
||||
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
|
||||
|
||||
To maintain compatibility with our other machine versions, the LIST command
|
||||
has reverted back to a normal screen display (no more highlighted tokens).
|
||||
LIST* still will highlight the tokens for you though. F1 in the line editor
|
||||
has been pre-defined as LIST* so that you can use it if you prefer the
|
||||
highlighted tokens. If that`s still not good enough, you can patch the
|
||||
location LISTFLG to 2ah to default to token highlighting. See the file
|
||||
"PATCHTBL.TXT" for the current address of LISTFLG.
|
||||
|
||||
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
|
||||
|
||||
A couple of additions have been added to the KEY command in the line editor.
|
||||
Typing KEY without any parameters will toggle the current display state of
|
||||
the function key prompt at the bottom of the screen. (turning it off if it
|
||||
was on, and visa-versa).
|
||||
|
||||
The second new addition has the following syntax:
|
||||
|
||||
KEY x {,|=} ["]command["]
|
||||
|
||||
This will allow you to customize the actions of the function keys in the line
|
||||
editor. For example, if you seldom use the CONFIG command, but frequently
|
||||
use the RENUM command, you can use the following statement to change the
|
||||
definition of the F7 key:
|
||||
|
||||
KEY 7 = RENUM
|
||||
|
||||
The symbol represents a carriage return at the end of the command. It is
|
||||
entered into the command string by pressing the ESC key. The editor will
|
||||
translate it appropriately. The "command" can be optionally surrounded by
|
||||
quotes, and must be a valid line editor command. It can be no longer than 15
|
||||
characters. You can not use a string variable (as with some other BASIC's),
|
||||
since this is not a program statement. This is ONLY a line editor command.
|
||||
|
||||
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
|
||||
|
||||
If you happen to get to the LOAD prompt by mistake (for example, if you press
|
||||
F1 in the screen editor instead of Alt-F1), you can press CTRL-C to exit the
|
||||
prompt and then try again. Same goes for the SAVE prompt.
|
||||
|
||||
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
|
||||
|
||||
Many people have asked for a way to change the color of the text produced on
|
||||
the EGA graphics screens. The COLOR statement can't be used, since it
|
||||
affects the graphics colors while in graphics modes, and the MODE statement
|
||||
resets the default character attribute to 7 whenever you change into a
|
||||
graphics mode. The solution is to sidestep the system by POKEing into the
|
||||
ZBasic data area. The character color attribute is stored at 033Bh in the
|
||||
data segment. To change the attribute so that any characters will be printed
|
||||
in blue (attribute = 1), use the following statement:
|
||||
|
||||
POKE &33B, 1
|
||||
|
||||
Any attribute value from 0 to 255 can be used, and follows the attribute
|
||||
rules as outlined on page A-37, table 2, of the ZBasic reference manual.
|
||||
|
||||
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
|
||||
|
||||
As stated in the manual, the CALL statement (pg. A-31), and the DEF USR
|
||||
statement (pg. A-47) allow a segment specifier in addition to the address.
|
||||
This way, the machine language routine can be anywhere in memory. The
|
||||
segment specifier is optional, and I just wanted to clarify what happens with
|
||||
and without the segment value.
|
||||
|
||||
If you use the statement
|
||||
|
||||
CALL LINE 100
|
||||
or
|
||||
DEF USR 0 = LINE 100
|
||||
|
||||
the compiler will generate the necessary code to perform a NEAR call (which
|
||||
means that it must be within the current code segment). Therefore, your
|
||||
subroutine must end with a NEAR RET (MACHLG &C3). If, on the other hand, one
|
||||
of the following statements is used
|
||||
|
||||
CALL LINE 100, MEMC
|
||||
or
|
||||
DEF USR 0 = LINE 100, MEMC
|
||||
|
||||
then the compiler will generate a FAR call, and the subroutine MUST terminate
|
||||
with a FAR RET (MACHLG &CB). These two examples would effectively accomplish
|
||||
the same thing, except that the second examples would take a little longer to
|
||||
execute.
|
||||
|
||||
One way to keep this all straight is this: if you are CALLing a MACHLG line
|
||||
that is located somewhere within your ZBasic program, don't specify the
|
||||
segment. The compiler will automatically assume that it is in the code
|
||||
segment. If, on the other hand, you DIMension a dummy array, and then BLOAD
|
||||
a machine language subroutine into that area of memory, then use the segment
|
||||
specifier whenever you access that subroutine (and make sure that it
|
||||
terminates with a FAR RET).
|
||||
|
||||
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
|
||||
|
||||
The EOF function behaves differently, depending on how you are accessing the
|
||||
file. If you are using INPUT# or LINE INPUT#, then the EOF function will
|
||||
return true (-1) if an end-of-file mark (1Ah) is encountered in the file. If
|
||||
you are using the READ# statement to retrive data from the file, then the
|
||||
function will not return true until the physical end-of-file is reached (i.e.
|
||||
when MS-DOS returns an EOF error). Keep in mind that MS-DOS does not know
|
||||
what your program's record length is. Therefore, it's physical end-of-file
|
||||
error will occur when it has reached the end of the last allocated sector of
|
||||
your file (which will probably be past the actual end of your file).
|
||||
|
||||
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
|
||||
|
||||
If you prefer to have the full screen editor default to insert mode (as
|
||||
opposed to overwrite mode, as shipped), simply patch the INSRTFLG location
|
||||
from 82H to 02H. Instructions for using the patch command can be found on
|
||||
page B-15 of your ZBasic manual. The current address of INSRTFLG can be
|
||||
found in the PATCHTBL.TXT file included on your master disk.
|
||||
|
||||
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
|
||||
|
||||
We have discovered that ZBasic will run just fine within a Microsoft (R)
|
||||
Windows window, as long as you follow a few simple rules. First, make sure
|
||||
that your ZBasic is configured to be NOT IBM text compatible. This way,
|
||||
Windows can intercept any text output and convert it to the necessary
|
||||
graphical representation of the characters. Also, make sure that you don't
|
||||
try to do any graphics while Windows is active. It won't hurt anything, but
|
||||
it won't accomplish anything either (the graphics are invisible).
|
||||
|
||||
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
|
||||
|
||||
The TIMER function now returns the number of seconds since midnight down to
|
||||
the nearest hundredth of a second. This matches BASICA's function.
|
||||
|
||||
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
|
||||
|
||||
There have been numerous reports of little inconsistencies in the fourth
|
||||
edition manual, so get your pen ready and follow along while I make
|
||||
corrections.
|
||||
|
||||
Pg 77-
|
||||
Line 9 of the "QUICK SORT" subroutine has a typographical error. The
|
||||
variable 'R1' in the second statement should be 'RI'.
|
||||
|
||||
Pg 108, 111, 112, 117, 118-
|
||||
The variable NAME$ contains an MS-DOS version reserved word. Change the
|
||||
variable to NM$.
|
||||
|
||||
Pg 168-
|
||||
The list of reserved words on the page pertain to the standard version
|
||||
of the language. Due to the many enhancements made to the MS-DOS version,
|
||||
the following are also reserved words for this version only. Page number
|
||||
following the reserved word shows which page the word is referenced on.
|
||||
|
||||
' - 316 ARR - A58 AS - 278 BCD - A58 BEEP - 178
|
||||
BLOAD - A29 BSAVE - A30 CARDTYPE - A33 CASE - 183 CHDIR - A34
|
||||
CINT - A35 COM - A40,A66 COMBUFF - A38 COMMAND$ - A41 COMMON - 192
|
||||
COORDINATE - 195 CSRLIN - 197 EOF - 220 FCB -
|
||||
FILES - A50 FRE - A52 GET - 232 IS - KEY -
|
||||
MKDIR - A60 NAME - 278 OFF - A40 PAINT - A72 PALETTE - A73
|
||||
PATH$ - A74 PRESET - 306 PSET - 306 PUT - 306 RANDOMIZE - 309
|
||||
RESET - 319 RMDIR - A79 SCREEN - A80,A81 SEG - A58
|
||||
SELECT - 328 SHELL - A82 STR - A58 SYSTEM - 339 TFORMAT - A83
|
||||
TIMER - A85 VARSEG - A91 VIEW - A92 WAIT - A93 WINDOW - 195
|
||||
|
||||
Pg 172-
|
||||
The example run erroneously shows comma's between the printed numbers.
|
||||
Those commas would not be printed by the example program.
|
||||
|
||||
Pg 201-
|
||||
DATE$ function: In the remarks section, mention is made that the MSDOS
|
||||
version can set the date from within a program. The example given is
|
||||
incorrect (the slashes aren`t allowed in the string). See page A-42 for the
|
||||
correct syntax.
|
||||
|
||||
Pg 232-
|
||||
The formula for calculating the memory requirements for the GET
|
||||
statement has an extra ")" character at the end.
|
||||
|
||||
Pg 255, 256-
|
||||
The LINE INPUT statement is actually two words. The manual incorrectly
|
||||
shows the command as one word, and the system will not parse the words as
|
||||
keywords if SPACES BETWEEN KEYWORDS is selected in the configuration.
|
||||
|
||||
Pg 263-
|
||||
The second word in the second line of DEFINITION should be "useful".
|
||||
|
||||
Pg 327-
|
||||
The description for SAVE+ says to be sure that your program doesn't use
|
||||
label references. This is exactly opposite from what it should say. Since
|
||||
this command does not save the line numbers with the text of the program, the
|
||||
program SHOULD use label references so that it will still run correctly when
|
||||
reloaded.
|
||||
|
||||
Pg A-20-
|
||||
The entry and exit parameters for address &118 are incorrect. On entry,
|
||||
ES:SI should point to the destination string. On exit, ES:SI will point to
|
||||
the standard ZBasic string.
|
||||
|
||||
Pg A-38-
|
||||
The printed syntax shows that the command is made up of two words. This
|
||||
is incorrect. It should read:
|
||||
|
||||
COMBUFF (port)
|
||||
|
||||
Pg A-61-
|
||||
In the description for MODE 20, the address and size of the Hercules
|
||||
graphics buffer is incorrect. Page 0 starts at &HB000 and is 32K bytes long.
|
||||
Page 1 starts at &HB800 and is also 32K bytes long. Also, reference is made
|
||||
to a HERC.BIN file on the diskette. This should read HERC.COM.
|
||||
|
||||
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
|
||||
|
||||
The MOUSE(1) and MOUSE(2) functions normally return values using the
|
||||
standard ZBasic coordinates of 1024 x 768. If your program uses a
|
||||
COORDINATE statement to alter the screen coordinate system, the mouse
|
||||
functions will return values to match your new coordinate system.
|
||||
|
||||
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
|
||||
|
||||
For the mouse to operate properly on the Hercules Graphics Screen, your
|
||||
program must perform it's MODE 20 statement prior to initializing the mouse
|
||||
with the MOUSE(0) function.
|
||||
|
||||
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
|
||||
|
||||
We have included a ZBasic cross-reference program on this master disk. It
|
||||
can be found in the XREF subdirectory. Documentation is included in the same
|
||||
subdirectory.
|
||||
|
||||
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
|
||||
|
||||
We want to make this the best BASIC available on MS-DOS computers. We can't
|
||||
do that without your feedback, though. If you have any comments,
|
||||
suggestions, complaints, etc, please write us a letter and let us know your
|
||||
thoughts. Try to be as specific as possible when suggesting something, or
|
||||
complaining about something. We can't implement a suggestion, or fix a
|
||||
complaint, unless we know exactly what you're talking about.
|
||||
|
||||
And lastly, thank you for purchasing ZBasic. We sincerely hope that we can
|
||||
have a long and fruitful relationship!
|
||||
|
||||
Zedcor, Inc.
|
||||
4500 E. Speedway, Suite 22
|
||||
Tucson, AZ 85712
|
||||
|
||||
|
BIN
Zedcor ZBasic v402/SAMPLES/APPLE.BAS
Normal file
BIN
Zedcor ZBasic v402/SAMPLES/APPLE.BAS
Normal file
Binary file not shown.
BIN
Zedcor ZBasic v402/SAMPLES/CALL.BAS
Normal file
BIN
Zedcor ZBasic v402/SAMPLES/CALL.BAS
Normal file
Binary file not shown.
BIN
Zedcor ZBasic v402/SAMPLES/CALL1.BAS
Normal file
BIN
Zedcor ZBasic v402/SAMPLES/CALL1.BAS
Normal file
Binary file not shown.
BIN
Zedcor ZBasic v402/SAMPLES/COLOR.BAS
Normal file
BIN
Zedcor ZBasic v402/SAMPLES/COLOR.BAS
Normal file
Binary file not shown.
BIN
Zedcor ZBasic v402/SAMPLES/CRITERR.BAS
Normal file
BIN
Zedcor ZBasic v402/SAMPLES/CRITERR.BAS
Normal file
Binary file not shown.
21
Zedcor ZBasic v402/SAMPLES/DISKFREE.FN
Normal file
21
Zedcor ZBasic v402/SAMPLES/DISKFREE.FN
Normal file
@ -0,0 +1,21 @@
|
||||
'Long Function to determine amount of free space on a drive
|
||||
'Parameter to function is the drive specifier.
|
||||
'0 = default drive, 1 = A:, 2 = B:, etc.
|
||||
'Returns # of bytes free as a double-precision #
|
||||
'Returns -1 if drive specifier is invalid
|
||||
:
|
||||
LONG FN GetSpace#(DRIVE)
|
||||
MACHLG &B4, &36 : ' MOV AH,36H
|
||||
MACHLG &8A, &16, DRIVE : ' MOV DL,[DRIVE]
|
||||
MACHLG &CD, &21 : ' INT 21H
|
||||
MACHLG &3D, &FFFF : ' CMP AX,FFFFH
|
||||
MACHLG &75, &06 : ' JNE +6
|
||||
MACHLG &BB, &01, &00 : ' MOV BX,1
|
||||
MACHLG &B9, &01, &00 : ' MOV CX,1
|
||||
MACHLG &A3, AX : ' MOV [AX],AX
|
||||
MACHLG &89, &1E, BX : ' MOV [BX],BX
|
||||
MACHLG &89, &0E, CX : ' MOV [CX],CX
|
||||
Free# = AX * BX * CX * 1.0
|
||||
END FN = Free#
|
||||
:
|
||||
|
BIN
Zedcor ZBasic v402/SAMPLES/DTEST.BAS
Normal file
BIN
Zedcor ZBasic v402/SAMPLES/DTEST.BAS
Normal file
Binary file not shown.
BIN
Zedcor ZBasic v402/SAMPLES/EGACOLOR.BAS
Normal file
BIN
Zedcor ZBasic v402/SAMPLES/EGACOLOR.BAS
Normal file
Binary file not shown.
BIN
Zedcor ZBasic v402/SAMPLES/GEDIT.BAS
Normal file
BIN
Zedcor ZBasic v402/SAMPLES/GEDIT.BAS
Normal file
Binary file not shown.
BIN
Zedcor ZBasic v402/SAMPLES/GETSPACE.BAS
Normal file
BIN
Zedcor ZBasic v402/SAMPLES/GETSPACE.BAS
Normal file
Binary file not shown.
BIN
Zedcor ZBasic v402/SAMPLES/HOUSE.BAS
Normal file
BIN
Zedcor ZBasic v402/SAMPLES/HOUSE.BAS
Normal file
Binary file not shown.
BIN
Zedcor ZBasic v402/SAMPLES/KILLER.BAS
Normal file
BIN
Zedcor ZBasic v402/SAMPLES/KILLER.BAS
Normal file
Binary file not shown.
BIN
Zedcor ZBasic v402/SAMPLES/LIFE.BAS
Normal file
BIN
Zedcor ZBasic v402/SAMPLES/LIFE.BAS
Normal file
Binary file not shown.
BIN
Zedcor ZBasic v402/SAMPLES/MODE.BAS
Normal file
BIN
Zedcor ZBasic v402/SAMPLES/MODE.BAS
Normal file
Binary file not shown.
47
Zedcor ZBasic v402/SAMPLES/PRNTEST.APP
Normal file
47
Zedcor ZBasic v402/SAMPLES/PRNTEST.APP
Normal file
@ -0,0 +1,47 @@
|
||||
'PRNTEST.APP
|
||||
' by Chan Shippy
|
||||
' Rt. 1 Box 87
|
||||
' Colome, SD 57528
|
||||
' For IBM/MS-DOS ZBasic ONLY!
|
||||
'
|
||||
' Modified to include check for printer selected
|
||||
' Greg Branche, 10/21/87
|
||||
'
|
||||
CLS : MODE 3
|
||||
GOSUB "Test Prn"
|
||||
IF V$ = CHR$(27) THEN END 'Abort printing
|
||||
LPRINT "Yep, the printer's ready!"
|
||||
END
|
||||
|
||||
LONG FN Testprn(PRNum)
|
||||
' PRNum should usually be 0
|
||||
tst% = 0
|
||||
MACHLG &8B,&16,PRNum
|
||||
MACHLG &B4,&02,&CD,&17,&F6,&C4,&6F
|
||||
MACHLG &75,&04,&FF,&06,tst%
|
||||
' 1 = Printer Ready, 0 = Not Ready
|
||||
END FN = tst%
|
||||
|
||||
"Test Prn"
|
||||
LONG IF FN Testprn(0)
|
||||
RETURN 'printer is ready!
|
||||
XELSE
|
||||
SOUND 800,50 : SOUND 600,50 : SOUND 800,50
|
||||
LOCATE 0,24 : CLS LINE
|
||||
LOCATE 10,24 : COLOR 15,0
|
||||
PRINT "Printer NOT READY! ";
|
||||
PRINT "<R> Retry, <ESC> Abort Printing";
|
||||
COLOR 7,0
|
||||
"Try Again"
|
||||
DO
|
||||
V$ = INKEY$
|
||||
UNTIL LEN(V$)
|
||||
V$ = UCASE$(V$)
|
||||
LONG IF V$ = "R"
|
||||
GOTO "Test Prn"
|
||||
XELSE
|
||||
IF V$ = CHR$(27) THEN RETURN
|
||||
END IF
|
||||
SOUND 800,130 : GOTO "Try Again"
|
||||
END IF
|
||||
|
BIN
Zedcor ZBasic v402/SAMPLES/PYRAMID.BAS
Normal file
BIN
Zedcor ZBasic v402/SAMPLES/PYRAMID.BAS
Normal file
Binary file not shown.
BIN
Zedcor ZBasic v402/SAMPLES/QSORT2.BAS
Normal file
BIN
Zedcor ZBasic v402/SAMPLES/QSORT2.BAS
Normal file
Binary file not shown.
42
Zedcor ZBasic v402/SAMPLES/QUICK.APP
Normal file
42
Zedcor ZBasic v402/SAMPLES/QUICK.APP
Normal file
@ -0,0 +1,42 @@
|
||||
"QUICK SORT"
|
||||
L(1)=1:R(1)=NI:P2=1
|
||||
DO
|
||||
LONG IF L(P2)<R(P2)
|
||||
Z=L(P2):J=R(P2)
|
||||
SA=SA(J):M4=(Z+J)>>1
|
||||
LONG IF J-Z>=6
|
||||
SZ=SA(Z):SM=SA(M4)
|
||||
LONG IF SA<= SZ OR SA>=SM OR SA>=SZ OR SA<= SM
|
||||
LONG IF SZ>=SM OR SZ<= SA OR SZ<=SM OR SZ>=SA
|
||||
SWAP SA(M4),SA(J)
|
||||
XELSE
|
||||
SWAP SA(Z),SA(J)
|
||||
END IF
|
||||
SA = SA(J)
|
||||
END IF
|
||||
END IF
|
||||
WHILE Z<J
|
||||
WHILE SA(Z) < SA
|
||||
Z=Z+1
|
||||
WEND
|
||||
DO
|
||||
J=J-1
|
||||
UNTIL Z>= J OR SA>= SA(J)
|
||||
LONG IF Z<J
|
||||
SWAP SA(Z),SA(J)
|
||||
END IF
|
||||
WEND
|
||||
J=R(P2):SWAP SA(Z),SA(J)
|
||||
LONG IF Z-L(P2)<R(P2)-Z
|
||||
L(P2+1)=L(P2): R(P2+ÿ1ÿ)=Z-1:L(P2)=Z+1
|
||||
XELSE
|
||||
L(P2+1)=Z+1:R(P2+1)=R(P2):R(P2)=Z-1
|
||||
END IF
|
||||
P2=P2+1
|
||||
XELSE
|
||||
P2=P2-1
|
||||
END IF
|
||||
UNTIL P2<=0
|
||||
RETURN : REM SORT FINISHED HERE
|
||||
END
|
||||
|
56
Zedcor ZBasic v402/SAMPLES/SCIFN.APP
Normal file
56
Zedcor ZBasic v402/SAMPLES/SCIFN.APP
Normal file
@ -0,0 +1,56 @@
|
||||
REM *****************************************************
|
||||
REM **** ZBasic 3.0 Scientific Functions 09/25/85 ****
|
||||
REM **** Accuracy up to 50 digits, DBL & SCI set=54 ****
|
||||
REM *****************************************************
|
||||
REM ************ Constants used by Functions ************
|
||||
Log10v# = LOG(10.) : e# = EXP(1.)
|
||||
Pid4# = ATN(1.) : Pid2# = Pid4# << 1 : Pi# = Pid2# << 1
|
||||
REM ********** Sub-function used by functions ***********
|
||||
DEF FN Sqrxx#(x#) = SQR(x#*x#-1.)
|
||||
REM ******************* Other TRIG Functions ************
|
||||
DEF FN Sec#(x#) = 1. \ COS(x#)
|
||||
DEF FN Csc#(x#) = 1. \ SIN(x#)
|
||||
DEF FN Cot#(x#) = 1. \ TAN(x#)
|
||||
REM ************** Inverse TRIG Functions ***************
|
||||
DEF FN ArcSin#(x#) = ATN( x# \ SQR( 1. - x# * x# ) )
|
||||
DEF FN ArcCos#(x#) = Pid2# - FN ArcSin#(x#)
|
||||
DEF FN ArcCsc#(x#) = ATN(1\FN Sqrxx#(x#))+(x#<0) * Pi#
|
||||
DEF FN ArcSec#(x#) = ATN(FN Sqrxx#(x#))+(SGN(x#)-1.)*Pid2
|
||||
DEF FN ArcCot#(x#) = Pid2# - ATN(x#)
|
||||
REM ************* Hyperbolic TRIG Functions *************
|
||||
DEF FN SinH#(x#) = (EXP(x#)-EXP(-x#)) >> 1.
|
||||
DEF FN CosH#(x#) = (EXP(x#)+EXP(-x#)) >> 1.
|
||||
DEF FN TanH#(x#) = 1.-2.*EXP(-x#)/(EXP(x#)+EXP(-x#))
|
||||
DEF FN SecH#(x#) = 2./(EXP(x#)+EXP(-x#))
|
||||
DEF FN CscH#(x#) = 2./(EXP(x#)-EXP(-x#))
|
||||
DEF FN CtnH#(x#) = (EXP(x#)+EXP(-x#))\(EXP(x#)-EXP(-x#))
|
||||
REM ********* Inverse Hyperbolic TRIG Functions *********
|
||||
DEF FN AsinH#(x#)= LOG(x#+SQR(x#*x#+1.))
|
||||
DEF FN AcosH#(x#)= LOG(x#+SQR(x#*x#-1.))
|
||||
DEF FN AtanH#(x#)= LOG((1.+x#)\(1.-x#)) >> 1.
|
||||
DEF FN AsecH#(x#)= LOG((SQR(1.-x#*x#)+1.)\x#)
|
||||
DEF FN AcscH#(x#)= LOG((SGN(x#)*SQR(x#*x#+1.)+1.)\x#)
|
||||
DEF FN AcotH#(x#)= LOG((x#+1.)\(x#-1.)) >> 1.
|
||||
REM **** Angle Conversions for RADIANS,DEGREES,BRADs ****
|
||||
DEF FN DegRad#(x#) =x#*Pid4#\90.
|
||||
DEF FN RadDeg#(x#) =x#*90\Pid4#
|
||||
DEF FN DegBrad#(x#)=x#*Pid4#\64.
|
||||
DEF FN BradDeg#(x#)=x#*64.\Pid4#
|
||||
DEF FN BradRad#(x#)=x#*1.40625 : REM * 1.40625 = 90/64 *
|
||||
DEF FN RadBrad#(x#)=x#*64.\90.
|
||||
REM ***************** LOG base 10 ***********************
|
||||
DEF FN Log10#(x#)= LOG(x#)/Log10v#
|
||||
REM ************Test Routine For Accuracy ***************
|
||||
DEFDBL A-Z
|
||||
FOR I=.01 TO .76 STEP .25
|
||||
TRON X : PRINT"Should be:";I#
|
||||
PRINT FN ArcSin#(SIN(FN ArcCos#(COS(ATN(TAN(I#))))))
|
||||
PRINT FN ArcCot#(FN Cot#(FN AcotH#(FN CtnH#(I#))))
|
||||
PRINT FN AsecH#(FN SecH#(FN AcscH#(FN CscH#(I#))))
|
||||
PRINT FN AtanH#(FN TanH#(FN ArcCot#(FN Cot#(I#))))
|
||||
PRINT FN AcosH#(FN CosH#(FN ArcSec#(FN Sec#(I#))))
|
||||
PRINT FN AsinH#(FN SinH#(FN ArcCsc#(FN Csc#(I#))))
|
||||
PRINT FN DegRad(FN RadDeg(FN DegBrad(FN BradDeg(I#))))
|
||||
PRINT FN RadBrad(FN BradRad(10^FN Log10(I#)))
|
||||
NEXT
|
||||
|
26
Zedcor ZBasic v402/SAMPLES/SCROLL.FN
Normal file
26
Zedcor ZBasic v402/SAMPLES/SCROLL.FN
Normal file
@ -0,0 +1,26 @@
|
||||
' These two functions can be used to scroll a window either up or down.
|
||||
' X1,Y1 are the coordinates of the upper left corner of the window.
|
||||
' X2,Y2 are the coordinates of the lower right corner of the window.
|
||||
' ATTRIB is the color attribute for the new blank line
|
||||
' Experiment with them a little to get a feel for them.
|
||||
:
|
||||
LONG FN Scrollup(X1,Y1,X2,Y2,ATTRIB)
|
||||
MACHLG &B8,1,6
|
||||
MACHLG &8A,&3E,ATTRIB
|
||||
MACHLG &8A,&2E,Y1
|
||||
MACHLG &8A,&0E,X1
|
||||
MACHLG &8A,&36,Y2
|
||||
MACHLG &8A,&16,X2
|
||||
MACHLG &CD,&10
|
||||
END FN
|
||||
:
|
||||
LONG FN Scrolldown(X1,Y1,X2,Y2,ATTRIB)
|
||||
MACHLG &B8,1,7
|
||||
MACHLG &8A,&3E,ATTRIB
|
||||
MACHLG &8A,&2E,Y1
|
||||
MACHLG &8A,&0E,X1
|
||||
MACHLG &8A,&36,Y2
|
||||
MACHLG &8A,&16,X2
|
||||
MACHLG &CD,&10
|
||||
END FN
|
||||
|
15
Zedcor ZBasic v402/SAMPLES/SHELL.APP
Normal file
15
Zedcor ZBasic v402/SAMPLES/SHELL.APP
Normal file
@ -0,0 +1,15 @@
|
||||
"SHELL SORT" Y=NI
|
||||
"Z1" Y = Y/2
|
||||
IF Y = 0 THEN RETURN: REM SORT COMPLETE
|
||||
Z99=NI-Y
|
||||
FOR K9 = 1 TO Z99
|
||||
I = K9
|
||||
"X2" E2 = I+Y
|
||||
REM: IN LINE BELOW CHANGE <= TO >= FOR DESCENDING ORDER
|
||||
IF SA(I) <= SA(E2) THEN "X3" ELSE SWAP SA(I),SA(E2)
|
||||
I=I-Y
|
||||
IF I>0 THEN "X2"
|
||||
"X3" NEXT K9
|
||||
GOTO "Z1"
|
||||
END
|
||||
|
BIN
Zedcor ZBasic v402/SAMPLES/SHOWTYME.BAS
Normal file
BIN
Zedcor ZBasic v402/SAMPLES/SHOWTYME.BAS
Normal file
Binary file not shown.
BIN
Zedcor ZBasic v402/SAMPLES/SIEVE.BAS
Normal file
BIN
Zedcor ZBasic v402/SAMPLES/SIEVE.BAS
Normal file
Binary file not shown.
BIN
Zedcor ZBasic v402/SAMPLES/SORT.BAS
Normal file
BIN
Zedcor ZBasic v402/SAMPLES/SORT.BAS
Normal file
Binary file not shown.
BIN
Zedcor ZBasic v402/SAMPLES/TABINSRT.BAS
Normal file
BIN
Zedcor ZBasic v402/SAMPLES/TABINSRT.BAS
Normal file
Binary file not shown.
BIN
Zedcor ZBasic v402/SAMPLES/ZROSE.BAS
Normal file
BIN
Zedcor ZBasic v402/SAMPLES/ZROSE.BAS
Normal file
Binary file not shown.
BIN
Zedcor ZBasic v402/SAMPLES/ZROSE2.BAS
Normal file
BIN
Zedcor ZBasic v402/SAMPLES/ZROSE2.BAS
Normal file
Binary file not shown.
20
Zedcor ZBasic v402/SIEVE.BAS
Normal file
20
Zedcor ZBasic v402/SIEVE.BAS
Normal file
@ -0,0 +1,20 @@
|
||||
1 SIZE% = 8190
|
||||
2 DIM FLAGS%(8191)
|
||||
3 PRINT "10 iterations"
|
||||
4 FOR X% = 1 TO 10
|
||||
5 COUNT% = 0
|
||||
6 FOR I% = 0 TO SIZE%
|
||||
7 FLAGS%(I%) = 1
|
||||
8 NEXT I%
|
||||
9 FOR I% = 0 TO SIZE%
|
||||
10 IF FLAGS%(I%) = 0 THEN 18
|
||||
11 PRIME% = I% + I% + 3
|
||||
12 K% = I% + PRIME%
|
||||
13 IF K% > SIZE% THEN 17
|
||||
14 FLAGS%(K%) = 0
|
||||
15 K% = K% + PRIME%
|
||||
16 GOTO 13
|
||||
17 COUNT% = COUNT% + 1
|
||||
18 NEXT I%
|
||||
19 NEXT X%
|
||||
20 PRINT COUNT%," PRIMES"
|
118
Zedcor ZBasic v402/TTT.BAS
Normal file
118
Zedcor ZBasic v402/TTT.BAS
Normal file
@ -0,0 +1,118 @@
|
||||
1 REM Tic Tac Toe solving app that learns what WOPR learned: you can't win
|
||||
2 REM Only three starting positions are examined. Others are just reflections of these
|
||||
3 REM b% -- The board
|
||||
4 REM al% -- Alpha, for pruning
|
||||
5 REM be% -- Beta, for pruning
|
||||
6 REM l% -- Top-level loop iteration
|
||||
7 REM wi% -- The winning piece (0 none, 1 X, 2, O )
|
||||
8 REM re% -- Resulting score of 4000/minmax board position. 5 draw, 6 X win, 4 Y win
|
||||
9 REM sx% -- Stack array for "recursion" X can be P, V, A, or B for those variables.
|
||||
10 REM v% -- Value of a board position
|
||||
11 REM st% -- Stack Pointer. Even for alpha/beta pruning Minimize plys, Odd for Maximize
|
||||
12 REM p% -- Current position where a new piece is played
|
||||
14 REM rw% -- Row in the Winner function (2000)
|
||||
15 REM cw% -- Column in the Winner function (2000)
|
||||
18 REM mc% -- Move count total for debugging. Should be a multiple of 6493
|
||||
19 REM Note: Can't use real recursion with GOSUB because stack is limited to roughly 5 deep
|
||||
20 REM BASIC doesn't support goto/gosub using arrays for target line numbers
|
||||
30 DIM b%(9)
|
||||
32 DIM sp%(10)
|
||||
34 DIM sv%(10)
|
||||
36 DIM sa%(10)
|
||||
37 DIM sb%(10)
|
||||
38 mc% = 0
|
||||
39 PRINT "start time: "; TIME$
|
||||
40 FOR l% = 1 TO 100
|
||||
41 mc% = 0
|
||||
42 al% = 2
|
||||
43 be% = 9
|
||||
44 b%(0) = 1
|
||||
45 GOSUB 4000
|
||||
58 al% = 2
|
||||
59 be% = 9
|
||||
60 b%(0) = 0
|
||||
61 b%(1) = 1
|
||||
62 GOSUB 4000
|
||||
68 al% = 2
|
||||
69 be% = 9
|
||||
70 b%(1) = 0
|
||||
71 b%(4) = 1
|
||||
72 GOSUB 4000
|
||||
73 b%(4) = 0
|
||||
74 REM print "mc: "; mc%; " l is "; l%
|
||||
80 NEXT l%
|
||||
85 PRINT "for "; l% - 1; " iterations"
|
||||
86 PRINT "end time: "; TIME$
|
||||
87 PRINT "final move count "; mc%
|
||||
88 SYSTEM
|
||||
100 END
|
||||
|
||||
2000 wi% = b%(0)
|
||||
2010 IF 0 = wi% GOTO 2100
|
||||
2020 IF wi% = b%(1) AND wi% = b%(2) THEN RETURN
|
||||
2030 IF wi% = b%(3) AND wi% = b%(6) THEN RETURN
|
||||
2100 wi% = b%(3)
|
||||
2110 IF 0 = wi% GOTO 2200
|
||||
2120 IF wi% = b%(4) AND wi% = b%(5) THEN RETURN
|
||||
2200 wi% = b%(6)
|
||||
2210 IF 0 = wi% GOTO 2300
|
||||
2220 IF wi% = b%(7) AND wi% = b%(8) THEN RETURN
|
||||
2300 wi% = b%(1)
|
||||
2310 IF 0 = wi% GOTO 2400
|
||||
2320 IF wi% = b%(4) AND wi% = b%(7) THEN RETURN
|
||||
2400 wi% = b%(2)
|
||||
2410 IF 0 = wi% GOTO 2500
|
||||
2420 IF wi% = b%(5) AND wi% = b%(8) THEN RETURN
|
||||
2500 wi% = b%(4)
|
||||
2510 IF 0 = wi% THEN RETURN
|
||||
2520 IF wi% = b%(0) AND wi% = b%(8) THEN RETURN
|
||||
2530 IF wi% = b%(2) AND wi% = b%(6) THEN RETURN
|
||||
2540 wi% = 0
|
||||
2550 RETURN
|
||||
|
||||
4000 REM minmax function to find score of a board position
|
||||
4010 REM recursion is simulated with gotos
|
||||
4030 st% = 0
|
||||
4040 v% = 0
|
||||
4060 re% = 0
|
||||
4100 mc% = mc% + 1
|
||||
4102 REM gosub 3000
|
||||
4104 IF st% < 4 THEN GOTO 4150
|
||||
4105 GOSUB 2000
|
||||
4106 IF 0 = wi% THEN GOTO 4140
|
||||
4110 IF wi% = 1 THEN re% = 6: GOTO 4280
|
||||
4115 re% = 4
|
||||
4116 GOTO 4280
|
||||
4140 IF st% = 8 THEN re% = 5: GOTO 4280
|
||||
4150 IF st% AND 1 THEN v% = 2 ELSE v% = 9
|
||||
4160 p% = 0
|
||||
4180 IF 0 <> b%(p%) THEN GOTO 4500
|
||||
4200 IF st% AND 1 THEN b%(p%) = 1 ELSE b%(p%) = 2
|
||||
4210 sp%(st%) = p%
|
||||
4230 sv%(st%) = v%
|
||||
4245 sa%(st%) = al%
|
||||
4246 sb%(st%) = be%
|
||||
4260 st% = st% + 1
|
||||
4270 GOTO 4100
|
||||
4280 st% = st% - 1
|
||||
4290 p% = sp%(st%)
|
||||
4310 v% = sv%(st%)
|
||||
4325 al% = sa%(st%)
|
||||
4326 be% = sb%(st%)
|
||||
4328 b%(p%) = 0
|
||||
4330 IF st% AND 1 THEN GOTO 4340
|
||||
4331 IF re% = 4 THEN GOTO 4530
|
||||
4332 IF re% < v% THEN v% = re%
|
||||
4334 IF v% < be% THEN be% = v%
|
||||
4336 IF be% <= al% THEN GOTO 4520
|
||||
4338 GOTO 4500
|
||||
4340 IF re% = 6 THEN GOTO 4530
|
||||
4341 IF re% > v% THEN v% = re%
|
||||
4342 IF v% > al% THEN al% = v%
|
||||
4344 IF al% >= be% THEN GOTO 4520
|
||||
4500 p% = p% + 1
|
||||
4505 IF p% < 9 THEN GOTO 4180
|
||||
4520 re% = v%
|
||||
4530 IF st% = 0 THEN RETURN
|
||||
4540 GOTO 4280
|
||||
|
BIN
Zedcor ZBasic v402/XREF/XREF.BAS
Normal file
BIN
Zedcor ZBasic v402/XREF/XREF.BAS
Normal file
Binary file not shown.
76
Zedcor ZBasic v402/XREF/XREF.DOC
Normal file
76
Zedcor ZBasic v402/XREF/XREF.DOC
Normal file
@ -0,0 +1,76 @@
|
||||
Well, you've been screaming for a cross-reference utility for your ZBasic
|
||||
programs, so here it is! XREF was originally written by Jeff Moore on the
|
||||
Apple //e in ZBasic, and then ported to the IBM and modified slightly (to
|
||||
take advantage of the IBM's special features) by Greg Branche. This .DOC
|
||||
file contains a little bit of information on how to use the darn thing!
|
||||
|
||||
The first thing you need to do is save the program that you want cross-
|
||||
referenced in ASCII format, using the SAVE* command from within ZBasic. XREF
|
||||
will only work with ASCII format source files. Once you've got the ASCII file
|
||||
on disk, execute XREF (either from within ZBasic, or as a .COM file after
|
||||
you've created one). The first thing you'll see is a prompt asking you for
|
||||
the file name of the source file to cross- reference. This file MUST be in
|
||||
the currently logged directory (if you want the program to support pathnames,
|
||||
modify XREF!). After entering the filename, the program will ask you which
|
||||
items you'd like a cross- reference listing on.
|
||||
|
||||
|
||||
Line label definitions
|
||||
This option will list every label defined in the program, and the line
|
||||
number associated with that label.
|
||||
|
||||
String constants
|
||||
This option will list every string constant used in the program, as well
|
||||
as every line label reference. For example, the line
|
||||
|
||||
00010 GOSUB "INIT"
|
||||
|
||||
will be parsed by XREF and an entry will appear in the string constants
|
||||
listing.
|
||||
|
||||
Numeric constants
|
||||
This option will list every numeric constant used in the program. Again,
|
||||
this includes line # references in GOSUB, GOTO, etc. statements.
|
||||
|
||||
Variables
|
||||
This option will list the variables used in the program, and the line #
|
||||
of each reference to the variable.
|
||||
|
||||
Keywords
|
||||
This option will produce a listing of ZBasic keywords and the program
|
||||
line that each keyword is used in.
|
||||
|
||||
Display parsing actions
|
||||
Turning this option ON will have XREF display each line as it is read
|
||||
in, and then each item within the line as the program parses the line. If
|
||||
this option is turned off, XREF will display a dot for each line processed
|
||||
(so that you know that it's at least doing SOMEthing!). At any time during
|
||||
the parsing phase of operation, you can press the space bar to pause the
|
||||
output. Once paused, the space bar will single step through each line. Any
|
||||
other key will allow the program to continue. CTRL-C will abort the
|
||||
process.
|
||||
|
||||
Require spaces between keywords
|
||||
This option is the same as the one on the ZBasic configure page, and
|
||||
should be set the same as ZBasic when the program was saved.
|
||||
|
||||
Printer on for X-Ref listing
|
||||
This option simply routes output of the final XREF report to the
|
||||
printer. If this option is turned off, the report is produced on the screen,
|
||||
one screenful at a time. The program will pause at the end of each screenful
|
||||
of information and wait for you to press a key to continue.
|
||||
|
||||
The default answer for each of these options is "N". If you just press
|
||||
<RETURN> at each of the questions, the default will be accepted. At least
|
||||
ONE of the first five questions must be answered as "Y". The program will
|
||||
not continue until at least one of the report options has been selected (if
|
||||
you didn't want a cross reference listing, you wouldn't have run the program
|
||||
in the FIRST place).
|
||||
|
||||
|
||||
This XREF utility is supplied in source code format so that you can modify it
|
||||
to your own liking. If you make any modifications that you feel are
|
||||
worthwhile, drop us a line! We'll put your fix in the newsletter (and our
|
||||
copy of XREF) for all to enjoy.
|
||||
|
||||
|
BIN
Zedcor ZBasic v402/ZBASIC.COM
Normal file
BIN
Zedcor ZBasic v402/ZBASIC.COM
Normal file
Binary file not shown.
BIN
Zedcor ZBasic v402/ZBASIC.HLP
Normal file
BIN
Zedcor ZBasic v402/ZBASIC.HLP
Normal file
Binary file not shown.
BIN
Zedcor ZBasic v402/ZBASIC.PIF
Normal file
BIN
Zedcor ZBasic v402/ZBASIC.PIF
Normal file
Binary file not shown.
BIN
Zedcor ZBasic v402/ZBASIC.pdf
Normal file
BIN
Zedcor ZBasic v402/ZBASIC.pdf
Normal file
Binary file not shown.
BIN
Zedcor ZBasic v402/ZCALC/ZCALC.BAS
Normal file
BIN
Zedcor ZBasic v402/ZCALC/ZCALC.BAS
Normal file
Binary file not shown.
133
Zedcor ZBasic v402/ZCALC/ZCALC.DOC
Normal file
133
Zedcor ZBasic v402/ZCALC/ZCALC.DOC
Normal file
@ -0,0 +1,133 @@
|
||||
|
||||
ZCALC Notes
|
||||
|
||||
ZCalc is a spreadsheet program that uses a command structure similar to
|
||||
Lotus 1-2-3. The following notes describe the various commands. If the
|
||||
program doesn't do something that you'd like it to, feel free to modify it.
|
||||
In addition, if you see something in the source code that you'd like to use
|
||||
in your own programs, feel free to do so.
|
||||
|
||||
KEYBOARD
|
||||
|
||||
The following keys perform the following functions:
|
||||
|
||||
{HOME} : Move the cell pointer position to A1
|
||||
{PGUP} : Move the cell pointer one page up
|
||||
{PGDN} : Move the cell pointer one page down
|
||||
{F6} : Go to a specific cell location
|
||||
{F9} : Recalculate the contents of the spreadsheet
|
||||
|
||||
|
||||
ENTERING NUMBERS, FORMULA AND LABELS
|
||||
|
||||
To enter a formula, press the '=' sign and then type the formula. A
|
||||
formula can consist of numbers, cell references, and cell names.
|
||||
In addition, the four basic mathematical operators and parentheses are
|
||||
allowed. The program parses from left to right, with expressions inside
|
||||
parentheses evaluated first.
|
||||
|
||||
Two functions are currently implemented. They are covered later in the
|
||||
notes.
|
||||
|
||||
To enter a number, just type the number.
|
||||
|
||||
To enter a label, enter the label, or if the label begins with a number,
|
||||
enter a double quote first.
|
||||
|
||||
|
||||
CELL REFERENCES
|
||||
|
||||
Cell references consist of letters for columns and numbers for rows.
|
||||
Cells past column Z are represented by double letters: AA, AB and so on.
|
||||
Cell blocks are represented by the upper left and lower right
|
||||
coordinates separated by a comma. For example: A1,B2 B5,E10 etc.
|
||||
|
||||
|
||||
COMMANDS
|
||||
|
||||
The command menu is brought up with the '/' key.
|
||||
|
||||
A command can be executed by moving the bar to the command and pressing
|
||||
enter, or just hitting the first key of the command (upper case only).
|
||||
Sub-menus work in a similar fashion.
|
||||
|
||||
|
||||
FILE COMMAND
|
||||
|
||||
The file command allows the user to load, save or delete a file.
|
||||
|
||||
|
||||
ERASE COMMAND
|
||||
|
||||
The erase command erase the spreadsheet.
|
||||
|
||||
|
||||
COPY COMMAND
|
||||
|
||||
The copy command allows a range of cells to be copied from one part
|
||||
of the spreadsheet to another.
|
||||
|
||||
|
||||
WIDTH COMMAND
|
||||
|
||||
The width command allows the width a column to be adjusted.
|
||||
|
||||
|
||||
RANGE COMMAND
|
||||
|
||||
The range command allows ranges of cells to be erased or formatted
|
||||
to look a different way.
|
||||
|
||||
The command will first ask for the range, and then whether or not the
|
||||
range is to be deleted or re-formatted.
|
||||
|
||||
|
||||
INSERT COMMAND
|
||||
|
||||
Insert allows the insertion of rows or columns in the spreadsheet. Cell
|
||||
references are adjusted.
|
||||
|
||||
|
||||
DELETE COMMAND
|
||||
|
||||
Delete allows the deletion of rows or columns in the spreadsheet. Cell
|
||||
references are adjusted.
|
||||
|
||||
|
||||
PRINT COMMAND
|
||||
|
||||
Print allows the spreadsheet to be printed.
|
||||
|
||||
|
||||
NAME COMMAND
|
||||
|
||||
THe name command allows cells to be named, instead of referred to
|
||||
by just their address. For example cell F1 could be named TAX, allowing
|
||||
a formula like 'TAX*A1' instead of 'F1*A1'.
|
||||
|
||||
|
||||
MSDOS COMMAND
|
||||
|
||||
This command returns temporarily to the operating system. Type EXIT
|
||||
from the DOS prompt to return to the spreadsheet.
|
||||
|
||||
|
||||
QUIT COMMAND
|
||||
|
||||
The quit command allows the user to exit the program.
|
||||
|
||||
MACROS
|
||||
|
||||
Macros are supported. To create a macro, do this:
|
||||
|
||||
1. Move to a cell and type a double quote followed by the keystrokes
|
||||
you would normally type for the command.
|
||||
|
||||
2. Give this cell a name consisting of a backslash followed by a letter.
|
||||
|
||||
3. To invoke the macro, type Ctrl and the letter.
|
||||
|
||||
To use arrow and other special keys in a macro, type the key name
|
||||
inside brackets. For example: {UP} {RECALC} {JUMP} {PGDN}.
|
||||
|
||||
|
BIN
Zedcor ZBasic v402/ZDEMO.COM
Normal file
BIN
Zedcor ZBasic v402/ZDEMO.COM
Normal file
Binary file not shown.
3
Zedcor ZBasic v402/ZHERC.BAT
Normal file
3
Zedcor ZBasic v402/ZHERC.BAT
Normal file
@ -0,0 +1,3 @@
|
||||
HERC
|
||||
ZBASIC
|
||||
|
8
Zedcor ZBasic v402/m.bat
Normal file
8
Zedcor ZBasic v402/m.bat
Normal file
@ -0,0 +1,8 @@
|
||||
echo I can't figure out a way to compile from the command line.
|
||||
echo Enter this to build in ZBasic:
|
||||
echo ntvdm zbasic sample.bas
|
||||
echo run*
|
||||
echo sample.com
|
||||
echo system
|
||||
echo ntvdm -c -p sample.com
|
||||
|
Loading…
Reference in New Issue
Block a user