I came here, just after reinstalling my (1985) Sinclair QL in front of my big (2007) flat-screen-lcd TV.
Before my abdication and my first PC-purchase (20 years ago), I was a Sinclair fan and had :
- first (like many) a ZX81
- then (like fewer) Ã QL
But before, I had built myself two personal computers (following Elektor designs) :
- my first one (based on the SC/MP processor) did nothing but blinking leds and beeping
- my second one (based on the Signetics 2650 processor) was linked to a TV to program primitive games (like ping-pong)
The monitior ROM of the first died, but the second still works (not very long, because it is heating like hell)
My ZX81 should still work too (I have to try it some day, together with its expansion RAM and little printer). By the way, I modified my expansion RAM to add a color TV interface.
Then, as soon as it became available in France, I bought a QL and some programming langages (Computer One Forth, Lattice Lisp and Lattice C, etc.). After a (not long) while, I added a Sandy SuperQboard (512K Ram expansion, Toolkit II Rom, disk drive connection - with 2x720K-3.5" floppy drives, parallel printer connection - for a Kodak Diconics 150 inkjet printer, and mouse).
I by now own a lot of programming langages and utilities - but not even ONE game ! And after another while, I replaced my original machines by PC based emulators (first SMSQ/E QPC, and then Daniele's Qemulator), and transfered all QL software to my PCs.
But last week, I reassembled my original system with my new TV, and it's gorgeous ! Here you see it running the C68K compiler - with a front-end SuperBasic program of my own :
This front-end program - like all my boot files - comprises a little procedure called "bye", which never RETURNs ! but which controls menu graphs of any complexity to execute binary programs or SuperBasic procedures at the touch of the 5 function keys F1 to F5.
I join herewith a list of a simple instance of such a boot file, for you to examine this little (13 lines) procedure and see how it works (eventually try it !).
This instance controls a main menu, accessing three binary programs (through F2-F3-F4) and :
- a path to a submenu (through F1) for accessing the four programs of the Psion suite
- an escape to SuperBasic (through F5)
The Psion suite sub-menu runs the Psion programs by pressing (F2-F3-F4-F5) and goes back to main menu through F1.
The "bye" procedure goes from line 32751 to 32763, but the menu graph definition is contained in DATA statements (main menu goes from 32741 to 32750, Psion sub-menu from 32721 to 32730). You may define your own menu graphs with any level of complexity, only adding your own DATA statements.
At the end of the file there are a few SuperBasic commands for windows initialisation and boot activation (calling "bye").
Bye ! Paul
Code: Select all
REM A simple function-key-driven Boot file
REM This boot file is on a bootable support
REM dev$, which must also contain all the
REM programs that can be exec'ed by hitting
REM the function keys, properly configured,
REM and with their help and other annex files
REM Copyright: Paul KOPFF, CLAMART (FRANCE)
REM Data for the PSION SUITE sub-menu display
32721 DATA 80,7,' M A I N ',' M E N U '
32722 DATA 2,7,' PSION ',' EASEL '
32723 DATA 2,7,' PSION ',' ABACUS '
32724 DATA 2,7,' PSION ',' ARCHIVE '
32725 DATA 2,7,' PSION ',' QUILL ',32726
REM Jump-table for the PSION SUITE sub-menu
32726 m=32741 : bye : REM back to main menu
32727 EXEC_W dev$ & 'easel' : bye
32728 EXEC_W dev$ & 'abacus' : bye
32729 EXEC_W dev$ & 'archive' : bye
32730 EXEC_W dev$ & 'quill' : bye
REM Data for the main menu display
32741 DATA 208,7,' PSION ',' SUITE '
32742 DATA 2,7,' MetaComCo ',' Text EDIT '
32743 DATA 2,7,'ComputerOne',' FORTH '
32744 DATA 2,7,' MetaComCo ',' L I S P '
32745 DATA 80,7,' SUPER ',' BASIC ',32746
REM Jump-table for the main menu
32746 m=32721 : bye : REM to PSION SUITE sub-menu
32747 EXEC dev$ & 'ed' : bye
32748 EXEC dev$ & 'forth' : bye
32749 EXEC dev$ & 'lisp' : bye
32750 CLS : STOP : REM escape to Super Basic
REM Menu management procedure BYE
32751 DEFine PROCedure bye
32752 RESTORE m :
32753 PAPER#33,0 : INK#33,4 : MODE 4 : AT#33,0,7
32754 PRINT#33,' F1',,'F2',,'F3',,'F4',,'F5'
32755 FOR i = 5 TO 69 STEP 16
32756 READ p , q , p$ , q$
32757 PAPER#33,p : INK#33,q
32758 AT#33,1,i : PRINT#33,p$
32759 AT#33,2,i : PRINT#33,q$
32760 END FOR i
32761 p = CODE(INKEY$(-1))/4
32762 IF p<58 OR p>62 : GO TO 32761
32763 READ q : GO TO p+q-58
REM BOOT install commands
dev$='flp1_'
WINDOW#0,388,42,110,4
PAPER#0,2 : INK#0,7 : BORDER#0,1,7
WINDOW#1,88,216,20,4
PAPER#1,0 : INK#1,2 : BORDER#1,1,7
WINDOW#2,388,172,110,48
PAPER#2,0 : INK#2,4 : BORDER#2,1,7
OPEN#33,scr_512x34a0x222
PAPER#33,0 : INK#33,4 : border#33,1
REM BOOT activation
m=32741 : bye