TxBasic Forum

CET Basic, Theos MultiUser Basic, TxBasic and FxBasic user's forum.

You are not logged in.

#1 Re: TxBasic » TxBasic 1.0.48 » 2022-03-15 18:06:02

TxBasic is now available for RHEL 8, CentOS  8, AlmaLinux 8, RockyLinux 8, OracleLinux 8 and Debian 11. It no longer needs a custom C++ compiler. Also, it supports the Intel's Classic C++ Compiler, faster with a lighter memory footprint than GCC.

Support of vbisam is deprecated because of the lack of technical support.

BTW, it is available wordwide in compliance with the ruling of the Supreme Court.

#2 Re: TxBasic » TxBasic 1.0.48 » 2021-02-02 18:02:57

BTW, the user manuals are available in English since last August.

#3 Re: TxBasic » TxBasic 1.0.48 » 2020-06-08 12:38:52

Release 1.0.48 :

- Integrated interactive debugger at TxBasic language level with breakpoints, stepping and variables display :


break                         (b) set a breakpoint at current line position
break [module:]line     (b) set a breakpoint at line position
break [module:]name  (b) set a breakpoint at the beginning of function or procedure
breakn [module:]line   (bn) set a breakpoint at line number or label
clear                           (cl) remove the breakpoint at current line position
clear [module:]line      (cl) remove the breakpoint at line position
clear [module:]name   (cl) remove the breakpoint at the beginning of function or procedure
clearn [module:]line    (cn) remove the breakpoint at line number or label
continue                     (c) run up to the next breakpoint or end of program
finish                          (f) run up to the end of the current function or procedure
help                           (h) display online help
list [start [count]]       (l) list program
next                          (n) execute next line
print [var]                  (p) print a variable value or last printed variable
quit                           (q) abort program

#4 Re: TxBasic » TxBasic 1.0.48 » 2020-05-08 14:34:05

Release 1.0.47 :

- New RANDOM file type is a direct access file covered by transaction management
- Available for Linux and Windows 64 bits

#5 Re: TxBasic » TxBasic 1.0.48 » 2018-07-03 13:54:29

Class now supports STATIC variable members. A static variable is shared by all instances of the class.

#6 Re: TxBasic » TxBasic 1.0.48 » 2018-06-26 12:39:08

List of features updated.

#7 Re: TxBasic » TxBasic 1.0.48 » 2018-06-16 12:24:04

User manuals are available in French. I start to work on English translation.

#8 Re: Members presentation » About the author » 2018-06-16 10:55:20

Question - do you remember ever seeing a SYZYGY RS-232 Test-Set (the little db-25 male-female pass-through with the little red lights (rtc,cts,dte ...) ?  That was me

I often used it.

FxBasic and TxBasic are 99.x% compatible with OASYS/THEOS Basic and CET Basic. If a program runs fine with them, it runs fine with FxBasic or TxBasic. Of course, FxBasic has a few limitations because it's a free tool.

#9 Re: Members presentation » About the author » 2018-06-15 23:03:27

Welcome here Tom.

Of course I remember well Randy Rogers. How is he doing ?

#10 TxBasic » TxBasic 1.0.48 » 2018-02-13 14:40:38

jmdubois
Replies: 7

TxBasic is upward compatible with FxBasic. It adds :

- Decimal Floating Point math library (no rounding issues) based on open source libdfp.
- 32 bits integers (@ suffix).
- ENUM type
- STRUCTURE type
- CLASS type with inheritance, properties, methods, constructor, destructor, operators overloading, private and public members, explicit access to parent class members of same name than class members.
- Optional required declarations of constants, simple variables, functions and procedures.

- Case insensitive virtual file system with libraries and disks units.
- Case sensitive access to Linux file system.

- Transaction management with commit and rollback on ISAM files and RANDOM files.
- ISAM key length up to 256 bytes.
- Support of industry DISAM file handler (license required).
- Support of C-ISAM compatible version of VBISAM.
- Multi-index ISAM files.
- Raw access to C-ISAM files for easy reading of foreign files.
- Simultaneous use of several ISAM handlers for easy ISAM files conversions.
- Direct and indexed files can be stored in SQL tables (currently MySQL/MariaDB) and accessed with usual syntax.
- MySQL/MariaDB client CALL library for fast access.
- "Unlimited" open files. 
- OPEN statement options THEOS, ISO8859, UTF8, WIN1252 allow automatic conversion of string to/from internal character set to file character set.

- Directory open (ex.: OPEN #1:"/folder/sub:s", INPUT FOLDER).
- Pipe open (ex. : OPEN #1:"ls -l", INPUT PIPE).
- Serial port I/O on COM1 to COMnn.

- Integrated printer spooler with printing queues.
- Support of any cups compatible printer, including graphics only printers.
- Direct support of PCL and ESCP/2 printers through "Raw printer" cups driver.
- Virtual PDF printer (ex.: OPEN #1:"report.g1n:pdf", OUTPUT SEQUENTIAL) to generate PDF files.
- Report long name (ex.: OPEN #1:"This is a report@report.g1n:pdf"

- User account management with privilege level, private and public files, default libraries, environment variables.
- Virtual short PID and UID on 3 digits.

- Session display allowing several programs to share the screen area with overlapping windows.

- Indexed, keyed, direct and sequential files import.
- Easy use of SYSTEM commands.
- Display and keyboard character set use Unicode.
- Default internal character set compatible with THEOS.
- Optional extended character set.
- Bidirectional file converters for Theos and UTF-8 characters sets.

New statements :

TRY
    THROW error_code
    CATCH error_code
    CATCH ALL
    END TRY

[PUBLIC|LOCAL] CLASS name
    INHERITS parent_class
    [PUBLIC|LOCAL] CONSTRUCTOR(argument_list)
        END CONSTRUCTOR
    [PUBLIC|LOCAL] DESTRUCTOR
        END DESTRUCTOR
    [PUBLIC|LOCAL] OPERATOR[$|%|@|] operator(argument)
    [PUBLIC|LOCAL] type OPERATOR operator(argument)
        END OPERATOR
    [PUBLIC|LOCAL] FUNCTION name[$|%|@|][(argument_list)]
    [PUBLIC|LOCAL] type FUNCTION name[(argument_list)]
        END FUNCTION
    [PUBLIC|LOCAL] SUB[(argument_list)]
        END SUB
    [PUBLIC|LOCAL] variable[$|%|@|][dimensions]
    [PUBLIC|LOCAL] type variable[dimensions]
    END CLASS

type = type of CLASS, ENUM or STRUCTURE entity

scope class_type variable_name [ = source_variable_name ]

CREATE "filename", INDEXED, RECLEN n, KEYLEN n
CREATE "filename", DIRECT, RECLEN n

ELSEIF condition

[PUBLIC|LOCAL] ENUM name
    label [ = value]
    ...
    END ENUM

scope enum_type variable_name [ = source_value ]

ERASE "filename"

FUNCTION name[$|%|@|](argument_list)
type FUNCTION name(argument_list)
    RETURN value
    EXIT FUNCTION
    END FUNCTION

INDEX ADD #channel : { UNIQUE } key_width
INDEX MAP #channel,index: var(column{,field{,subfield}}){[begin:end]} {, …}
INDEX USE #channel,index

[PUBLIC|LOCAL] STRUCTURE name
    scalar or array variable
    ...
    END STRUCTURE

scope structure_type variable_name

RAW READ #channel,key$:record$
RAW READNEXT #channel,key$:record$
RAW READPREV #channel,key$:record$

TRANSACTION BEGIN
TRANSACTION COMMIT
TRANSACTION ROLLBACK

MAT array$ = PARSE(string$,separators$) Parse a string into an array of tokens and separators
MAT array$ = SPLIT(string$,separators$) Parse a string into an array of tokens
MAT array$ = PATH(filepath$) Control and parse a file name into an array of elements
MAT array$ = SRCPATH(filepath$) Control and parse a file name with source wild cards into an array of elements
MAT array$ = DSTPATH(filepath$) Control and parse a file name with destination wild cards into an array of elements

ON ERROR CALL procedure
ON value CALL procedure[,procedure[,...]]

New functions :

CMDARGS : number of arguments from command line
CURRENT.LINE.POSITION : line position in source file
INDEXKEY$(channel) : primary index key of a record

LINUXFILE$(virtual_file$) : Linux file name of a virtual file
VIRTUALFILE$(linux_file$) : Virtual file name of a Linux file

TOCP437$(string$) : convert from internal character set to code page 437 (DOS)
TOISO8859$(string$) : convert from internal character set to ISO8859-15
TOWIN1252$(string$) : convert from internal character set to Windows-1252
TOUNICODE$(string$) : convert from internal character set to Unicode (wide char)
TOUTF8$(string$) : convert from internal character set to UTF-8

FROMCP437$(string$)
FROMISO8859$(string$)
FROMWIN1252$(string$)
FROMUNICODE$(string$)
FROMUTF8$(string$)

#11 TQL » TQL-0.76 » 2018-02-09 14:36:13

jmdubois
Replies: 0

I am very pleased to offer to the Theos community an open source SQL client working on standard Theos files. It includes a command line query shell, a C API and a MUB 2.2 API.

A download link is available to registered users.

#12 Members presentation » How to register » 2018-01-27 19:25:49

jmdubois
Replies: 0

Before registering add txbasic@free.fr to your list of authorized senders.

If you don't receive your registration email :

1) Check your junk mailbox.
2) Send an email to txbasic@free.fr.

#13 Members presentation » About the author » 2018-01-26 21:09:59

jmdubois
Replies: 4

My name is Jean-Michel Dubois. I was one of the first users of OASIS 8 in 1981 on an Intertechnique IN55 computer. In 1991 I became Technical Manager at Theos France and IBC (Integrated Business Computers) France. So, I have an intimate knowledge of Theos Corona, MultiUser Basic and other TSC products. During my carreer I ported or wrote several general purpose software for Theos 2.x, 4.x and Corona, like MicroEmacs a powerful editor, a FTP server for Theos 4.x or ZIP/UNZIP.

I am also the author of DataServer a network server allowing DataClient, a Windows OCX, to connect to files hosted on Theox 4.x and Corona with methods similar to Theos Basic statements (READ, READNEXT, DELETE, etc.). Any programming language supporting OCX can connect to Theos files through DataClient and DataServer.

Three years ago, I released TQL, a SQL client for standard Theos files.

Alongside, I also develop software on Windows and Linux in domains like network, photography, terminal emulators and was the technical support of CET Software in France.

In January 2016, when Red Hat announced the end of their 32 bit distribution I started to write a 64 bit CET Basic compatible compiler for Linux. In March 2016, a first version was running and since then, I added all the modern features a powerful Basic should have like mouse, window, multitasking, TRY, CATCH, ENUM, STRUCTURE, CLASS, etc..

Because one of my customers uses a lot of EXEC to glue its Basic programs, I also wrote txexec, an EXEC language interpreter for Linux and many commands allowing Theos users to feel easy on Linux.

Board footer

Powered by FluxBB