Page 1 of 1

'NULL' command in OS65D BASIC

Posted: Thu Jan 01, 2015 7:37 pm
by nama
So I'm trying in a BEXEC* program from Peek65 (Peek65_V4N7-07_1983.pdf) magazine and when I run it i get a syntax error. I narrowed this error down to two 'NULL' commands:
18 POKED,2:NULL0:PRINT:PRINTK"Files;"C"Tracks"
and
24 IFR$="P"THENNULL8:POKED,3:GOTO40

It seems the NULL command doesn't work!!!!

Removing these two NULL commands allows the program to run, but there is some issues which I can only imagine stem from not having these commands in the program. Can anyone add any insight as to why 'NULL' doesn't work?

Thanks

Philip

Re: 'NULL' command in OS65D BASIC

Posted: Fri Jan 02, 2015 3:49 am
by nama
Replying to myself here.
I found this in the OS65D tutorial manual:

There are a few BASIC functions in OS-65D V3.2 that are no
longer present in V3.3. The first two of these functions are
NULL and WAIT. These keywords have been replaced by EDIT and
TRAP.

…not sure where that leaves me though :-(

May try to find a better BEXEC* program and type it in again.

Re: 'NULL' command in OS65D BASIC

Posted: Sun Jan 04, 2015 8:37 pm
by dave
NULL only affects how many nulls are added for a new line on serial / cassette output. It seems that v3.3 added a command-line editor that provided that functionality a different way. I don't think it will make any difference if the NULL statements are removed.

Dave

Re: 'NULL' command in OS65D BASIC

Posted: Sun Jan 04, 2015 10:28 pm
by nama
That's what I thought.
However the program at typed in is having problems.
Mostly the program works, but I've noticed that when I alter a file name from the BEXEC menu, then try to do another DIR listing, the list is shown as incomplete, and missing many of the files on the disk. However, the files ate actually still there, just not displaying. I'll need to do more playing with it to see exactly what it does, and also I'll check my typed in code vs the magazine listing in case I typed something in wrong.

Here is the code as it exists at present:

Code: Select all

2 REM BEXEC* 06/15/83
4 DEFFNA(X)=10*INT(X/16)+X-16*INT(X/16)
6 DEFFNB(X)=16*INT(X/10)+X-10*INT(X/10)
8 D=8994:POKED-1,2:POKE741,76:POKE750,78:F$="FILENAME"
10 POKE2073,96:POKE2893,28:POKE2894,11:E$=" ALREADY EXISTS" 
14 T=39:DIMN$(T),F(T),Q(T),U(T):C=0:K=0:P=11897
16 DISK!"CA 2E79=12,1":GOSUB88:DISK!"CA 2E79=12,2":GOSUB88 
18 POKED,2:NULL0:PRINT:PRINTK"Files;"C"Tracks"
20 INPUT"List/Print/Free/Rename/Delete/Create/Save/Exit";R$ 
22 R$=LEFT$(R$,1):IFR$="L"THEN40
24 IFR$="P"THENNULL8:POKED,3:GOTO40
26 IFR$="F"THEN50
28 IFR$="R"ORR$="D"THEN60
30 IFR$="C"THEN74
32 IFR$="E"THENPOKE2073,173:END
34 IFR$<>"S"THEN18
36 GOSUB100:DISK!"SA 12,1=2E79/1":GOSUB100:DISK!"SA 12,2=2E79/1"
38 GOTO18
40 PRINT:PRINT"OS-65D V3.X DIRECTORY"
42 PRINTF$"   TRACK RANGE":GOSUB116
44 FORA=0TOT:FORB=1TOK
46 IFA=F(B)THENPRINTN$(B)TAB(12)F(B)TAB(16)"-"Q(B)
48 NEXTB,A:GOTO18
50 PRINT:PRINT"   --FREE TRACKS--":GOSUB116:J=0
52 FORI=JTOT:IFU(I)=0THEN56
54 NEXTI:GOTO18
56 PRINTTAB(6)I;TAB(7)"-";:FORJ=ITOT:IFU(J)=0THENNEXTJ 
58 PRINTJ-1:I=J:GOTO54
60 GOSUB110:FORI=1TOK:IFN$(I)=N$THEN64
62 NEXTI:PRINTN$" NOT FOUND":GOTO18 
64 IFR$="R"THEN70
66 FORJ=F(I)TOQ(I):U(J)=0:C=C-1:NEXTJ:N$(I)=N$(K) 
68 F(I)=F(K):Q(I)=Q(K):K=K-1:GOTO18
70 GOSUB112:FORJ=1TOK:IFI<>JANDN$(J)=N$THENPRINTN$;E$:GOTO18 
72 NEXTJ:N$(I)=N$:GOTO18
74 IFK=TTHENPRINT"NO SPACE":GOTO18
76 GOSUB112:FORI=1TOK:IFN$(I)=N$THENPRINTN$;E$:GOTO18 
78 NEXTI:INPUT"1st track,# tracks";F,N:Q=F+N-1
80 IF(F>Q)OR(Q>T)THENPRINT"ERROR": GOTO18
82 FORI=FTOQ:IFU(I)=1THENPRINT"TRACK"I"USED":GOTO18 
84 NEXTI:FORI=FTOQ:U(I)=1:C=C+1:NEXTI:K=K+1 
86 N$(K)=N$:F(K)=F:Q(K)=Q:GOTO18 
88 FORI=PTOP+248STEP8:IFPEEK(I)=35THEN98 
90 IFK=TTHENPRINT">"T"FILES":RETURN
92 K=K+1:N$(K)="":FORJ=ITOI+5:N$(K)=N$(K)+CHR$(PEEK(J)):NEXTJ
94 F(K)=FNA(PEEK(I+6)):Q(K)=FNA(PEEK(I+7))
96 FORJ=F(K)TOQ(K):U(J)=1:C=C+1:NEXTJ
98 NEXTI:RETURN
100 FORI=PTOP+248STEP8:IFK=0THEN106
102 L=0:FORJ=ITOI+5:L=L+1:POKEJ,ASC(MID$(N$(K),L,1)):NEXTJ 
104 POKEI+6,FNB(F(K)):POKEI+7,FNB(Q(K)):K=K-1:GOTO108
106 FORJ=ITOI+5:POKEJ,35:NEXTJ:POKEI+6,0:POKEI+7,0
108 NEXTI:RETURN
110 PRINT"OLD ";:GOTO114
112 PRINT"NEW ";
114 PRINTF$;:INPUTN$:N$=LEFT$(N$+"        ",6):RETURN
116 FORI=1TO22:PRINT"-";:NEXTI:PRINT:RETURN

REM -CORRECTIONS (minus 'NULL' Statements)-
18 POKED,2:EDIT0:PRINT:PRINTK"Files;"C"Tracks"
24 IFR$="P"THENEDIT8:POKED,3:GOTO40
Thanks

Phil

Re: 'NULL' command in OS65D BASIC

Posted: Fri Jan 23, 2015 7:52 am
by MK14HAK
Phil, are you wanting a 3.2 or 3.3 Bexec ? The tutorial disk 5 in the WinOSI download has a 3.3 version. Might save you some typing !
Mike