Tuesday, 15 August 2017

Mouse Woes

It was time to replace the trusty QL mouse. As you know the QL can use an number of interfaces to connect to a mouse. There are the built in interfaces in the Qx0 series, there is the QIMI mouse interface which can be connected to the original QL mother board and which is built in to the Aurora mother board replacement, there is the mouse connection on the SuperHermes board, and there is SNG's DIY mouse software. What they all have in common is that they use a serial mouse connected to a serial port.

But serial mice are no longer manufactured other than USB mice. My QL mouse has a PS2 connection which is connected via a PS2 to serial adapter.












So it seemed all that was needed really was a PS2 mouse. After ordering and returning 3 PS2 mice that did not function at all with the Aurora the truth was finally discovered. My PS2 mouse was a combo PS2/Serial mouse. The adapter merely transferred the connecting wires from the PS2 socket in to the correct locations for the serial port.  The mouse itself could run in both PS2 and serial mode and could detect which protocol was being used.There is no way of knowing looking at the mouse that it is a combo mouse and these serial/PS2 mice also seem to have disappeared. The PS2/"serial" mouse now is a PS2/USB mouse.

Is there a supply of older mice out there somewhere or these obsolete mice. Are there adapters that themselves can convert PS2/USB protocols to serial allowing the use of modern mice on older computers? 

It would be nice to use a wireless optical mouse with the QL.

Monday, 7 August 2017

SMSQE modules

Which modules are in which versions of smsq/e? How many versions of smsq/e are there?
The answers are below.

1.


DOS2_QL Stuff_SMSQ_smsq331_GoldCard.bin

000392C0 length of file

0000005C    000154       SMSQ System Loader
000001E4    0001B2       Gold Card Initialisation for SMSQ
00000700    003010  3.31 SMSQ
00003742    000000       SMSQ Cache Handling Code
00003974    0094F4       SBASIC
0000CE8E    000278       SMSQ Initialisation - GC
0000D150    0002CA       SMSQ Initialisation - SGC
0000D464    001538       SMSQ Messages
0000E9CA    00067A       SMSQ GOLD Keyboard Tables
0000F08E    00026C       SMSQ GOLD ABC Keyboard Tables
0000F348    001C4A       SBASIC Messages
00010FC2    000330       SMSQ GOLD ABC Keyboard
00011338    0050AC       SMSQ GOLD Drivers
00016416    009890       SMSQ GOLD CON Driver
0001FCDA    00012C       SMSQ QIMI Driver
0001FE44    004D70  2.07 SMSQ Window Manager
00024BE8    005AD8  3.08 SMSQ GOLD DV3 Drivers
0002A6F6    001060       SMSQ Net Driver - GC
0002B79C    001084       SMSQ Net Driver - SGC
0002C866    0030C8  2.31 HOTKEY System 2
0002F95E    000D8C       SMSQ System sprites
0003071E    006A8A       SBASIC Procedures
000371DA    000B8E  1.02 SMSQE HOME Thing
00037D98    0014E4  1.00 Recent thing



000392A8 end of file
 
2.
 
Win1_STARTUP_Aurora_bin

000412CC length of file

0000005C    000154       SMSQ System Loader
000001E4    0001B2       Gold Card Initialisation for SMSQ
00000700    003010  3.31 SMSQ
00003742    000000       SMSQ Cache Handling Code
00003974    0094F4       SBASIC
0000CE8E    000278       SMSQ Initialisation - GC
0000D150    0002CA       SMSQ Initialisation - SGC
0000D464    001538       SMSQ Messages
0000E9CA    00067A       SMSQ GOLD Keyboard Tables
0000F08E    00026C       SMSQ GOLD ABC Keyboard Tables
0000F348    001C4A       SBASIC Messages
00010FC2    000330       SMSQ GOLD ABC Keyboard
00011338    0050AC       SMSQ GOLD Drivers
00016416    009890       SMSQ GOLD CON Driver
0001FCDA    007EF2       SMSQ GOLD 8 bit CON Driver
00027C06    00012C       SMSQ QIMI Driver
00027D70    004D70  2.07 SMSQ Window Manager
0002CB14    000D8C       SMSQ System sprites
0002D8D4    005AD8  3.08 SMSQ GOLD DV3 Drivers
000333E2    001060       SMSQ Net Driver - GC
00034488    001084       SMSQ Net Driver - SGC
00035552    0030C8  2.31 HOTKEY System 2
0003864A    0000AE       Initialise QL ROMs
0003872A    000B8E  1.02 SMSQE HOME Thing
000392E8    006A8A       SBASIC Procedures
0003FDA4    0014E4  1.00 Recent thing


000412B4 end of file

 
3.



DOS2_QL Stuff_SMSQ_smsq331_SMSQE.PRG

00044C9C length of file

00000042    000154       SMSQ System Loader
000001CA    00056A       Atari Hardware Initialisation for SMSQ
00000B5E    003006  3.31 SMSQ Fast RAM
00003BA4    003010  3.31 SMSQ
00006BE6    000000       SMSQ Cache Handling Code
00006E18    0094F4       SBASIC
00010332    00061E       SMSQ Atari Initialisation
0001098A    001538       SMSQ Messages
00011EF0    0010B0       SMSQ Atari Keyboard Tables
00012FDA    001C4A       SBASIC Messages
00014C54    006A8A       SBASIC Procedures
0001B710    007276  3.08 SMSQ Atari DV3
000229B4    0057B6       SMSQ Atari Serial Drivers
000281A4    008270       SMSQ Atari Mono Driver
00030456    009AC2       SMSQ Atari QL Driver
00039F5A    004D70  2.07 SMSQ Window Manager
0003ECFE    0030C8  2.31 HOTKEY System 2
00041DF6    000D8C       SMSQ System sprites
00042BB6    000B8E  1.02 SMSQE HOME Thing
00043774    0014E4  1.00 Recent thing


00044C84 end of file

4.
DOS2_QL Stuff_SMSQ_smsq331_SMSQEQXL.EXE

00047F2E length of file

00003638    000154       SMSQ System Loader
000037C0    000122       QXL Hardware Initialisation for SMSQ
00003C18    003010  3.31 SMSQ
00006C5A    000000       SMSQ Cache Handling Code
00006E8C    0094F4       SBASIC
000103A6    0013F0       SMSQ QXL Initialisation
000117CE    001538       SMSQ Messages
00012D34    000F0C       SMSQ QXL Keyboard Tables
00013C78    001C4A       SBASIC Messages
000158F2    006CF0       SBASIC Procedures
0001C614    0051AE       SMSQ QXL Drivers
000217F2    009888       SMSQ QXL QL CON Driver
0002B0B0    007D68       SMSQ QXL 16 bit CON Driver
00032E52    004D70  2.07 SMSQ Window Manager
00037BF6    0010B8       SMSQ QXL Net Driver
00038CE2    006256  3.08 SMSQ QXL DV3
0003EF64    0030C8  2.31 HOTKEY System 2
0004205C    003D70       SMSQ System sprites
00045E00    000B8E  1.02 SMSQE HOME Thing
000469BE    0014E4  1.00 Recent thing
00047ECE    000010       SMSQ QXL Enable Caches 


00047F16 end of file

5.

DOS2_QL Stuff_SMSQ_smsq331_SMSQE.bin

0004EE26 length of file

00000048    000154       SMSQ System Loader
000001D0    0000AA       QPC Hardware Initialisation for SMSQ
00002164    002ECA  3.31 SMSQ
00005060    000000       SMSQ Cache Handling Code
00005292    0094F4       SBASIC
0000E7AC    000AB8       SMSQ QPC Initialisation
0000F29C    001538       SMSQ Messages
00010802    000F0C       SMSQ QPC Keyboard Tables
00011746    001C4A       SBASIC Messages
000133C0    006A8A       SBASIC Procedures
00019E7C    004E46       SMSQ QPC Drivers
0001ECF2    009772       SMSQ QPC QL CON Driver
0002849A    007A30       SMSQ QPC 16 bit CON Driver
0002FF04    007C04       SMSQ QPC 8 bit CON Driver
00037B42    004D70  2.07 SMSQ Window Manager
0003C8E6    003D70       SMSQ System sprites
0004068A    00640E  3.08 SMSQ QPC DV3
00046AC4    0030C8  2.31 HOTKEY System 2
00049BBC    000EC6       QPC SBASIC Procedures
0004AAB8    000DF6       CD-Audio driver
0004B8DE    0011F0       DOS device driver
0004CB00    00020E       IP devices driver
0004CD40    000B8E  1.02 SMSQE HOME Thing
0004D8FE    0014E4  1.00 Recent thing


0004EE0E end of file
  
6.

DOS2_QL Stuff_SMSQ_smsq331_Q40.rom

00043614 length of file

00000096    000154       SMSQ System Loader
0000021E    0002EC       Q40 Hardware Initialisation for SMSQ
0000079E    002FCA  3.31 SMSQ
0000379A    0000F6  2.01 SMSQ Copyback Cache Handling Code
000038D2    000022       SMSQ Q40 copyback cache tidy
00003930    0094F4       SBASIC
0000CE4A    001538       SMSQ Messages
0000E3B0    000F0C       SMSQ Q40 Keyboard Tables
0000F2F4    001C4A       SBASIC Messages
00010F6E    006A8A       SBASIC Procedures
00017A2A    0066D2  3.08 SMSQ Q40 DV3
0001E128    005C2C       SMSQ Q40 Serial Drivers
00023D8C    0097F4       SMSQ Q40 QL CON Driver
0002D5B6    007B7E       SMSQ Q40 16 bit Console Driver
00035172    004D70  2.07 SMSQ Window Manager
00039F16    003D70       SMSQ System sprites
0003DCBA    0030C8  2.31 HOTKEY System 2
00040DB2    000B8E  1.02 SMSQE HOME Thing
00041970    0014E4  1.00 Recent thing
00042E80    000526       SMSQ Q40 Initialisation
000433DE    000164  1.01 Initialise Q40/Q60 Cache modes


000435FC end of file
 
7.

DOS2_QL Stuff_SMSQ_smsq331_SMSQE

0004B632 length of file

00000018    000154       SMSQ System Loader
000001A0    00005C       Java Emul Initialisation for SMSQ
000003F6    002F18  3.31 SMSQ
00003348    002ED2  3.31 SMSQ
0000624C    000000       SMSQ Cache Handling Code
0000647E    0094F4       SBASIC
0000F998    001538       SMSQ Messages
00010EFE    00067A       SMSQ GOLD Keyboard Tables
000115C2    001C4A       SBASIC Messages
0001323C    006A8A       SBASIC Procedures
00019CF8    005AD2       SMSQ JAVA Drivers
0001F7F8    00965A       SMSQ GOLD CON Driver
00028E86    007C2A       SMSQ JAVA 8 bit CON Driver
00030AEA    0079D2       SMSQ JAVA 16 bit CON Driver
000384F8    004D70  2.07 SMSQ Window Manager
0003D29C    0051C4  3.08 JAVA DV3
00042488    0030C8  2.31 HOTKEY System 2
00045580    003D70       SMSQ System sprites
00049324    000B8E  1.02 SMSQE HOME Thing
00049EE2    0001F6       IP devices driver
0004A10A    0014E4  1.00 Recent thing


0004B61A end of file
 
That is an impressive 7 variants of smsqe for the curators to update, certainly more than Microsoft countenances in windows.

 






Sunday, 6 August 2017

How to find SMSQ/E modules

I'm not certain where I found this program but I suspect it was from somewhere on Dilwyn Jones QL site http://www.dilwyn.me.uk/. It was written by Tony Tebby and was embedded in a document explaining the modular structure of smsqe:

Scanning an SMSQ OS File:

An SMSQ file can be scanned fairly easily with a simple SBASIC
program:

l00 REMark - scan bootloader file
110 DIM version$(4): version$(0)=4
120 OPEN #0,CON: CLS: BORDER 1,4
130 height = 17
140 INPUT 'SMSQ file>';f$
150 OPEN IN #3,f$
160 fln = FLEN(#3)
170 LGET #3\fln-$18+$4,mod_ptr : REMark - get length of host module
180 LGET #3\fln-$18+$14,bln    : REMark - length of bootloader file
190 IF bln: mod_ptr = mod_ptr + fln - bln
200 FOR i=1 to 9999
210   LGET #3\(mod_ptr),mbase,mlength
220   IF NOT mbase: EXIT              : REMark - end of file
230   IF NOT i mod height: INPUT a$;  : REMark - pause at screen full
240   WGET#3\(mod_ptr+$16),name_rel: REMark - relative pointer to name
250   GET#3\(mod_ptr+$16+name rel),name$  : REMark - fetch module name
260   IF LEN (name$)&&1: BGET#3,a : REMark - odd length name is padded
270   BGET #3,version$(1 TO 4)    : REMark - get version, if any
280   PRINT HEX$(mlength,24) !! version$ ! name$
290   mod_ptr = mod_ptr + mbase + mlength
300 END FOR i
310 CLOSE #3
320 INPUT a$

This will print the index (in hex), the version and the name of all except the host module.



This is the typical output of the file. Now here is a first pass improved version of the program.



100 REMark - scan bootloader file
110 DIM version$(4): version$(0)=4
120 OPEN #0,CON_512x420a20x16: CLS: BORDER 1,4
130 height = 52 : DIM d$(height,84) : pg=1
140 INPUT 'SMSQ file>';f$ : IF f$="":QUIT
150 OPEN_IN #3,f$
160 fln = FLEN(#3) : PRINT#0,CHR$(10)&HEX$(fln,32)&" length of file"&CHR$(10)
170 LGET #3\fln-$18+$4,mod_ptr : REMark - get length of host module
175 PRINT#0,HEX$(mod_ptr,32)&" length of host module"&CHR$(10)
180 LGET #3\fln-$18+$14,bln    : REMark - length of bootloader file
185 PRINT#0,HEX$(bln,32)&" length of bootloader file"&CHR$(10)
190 IF bln: mod_ptr = mod_ptr + fln - bln
200 FOR i=1 to 9999
210   LGET #3\(mod_ptr),mbase,mlength
220   IF NOT mbase: EXIT              : REMark - end of file
230   IF NOT i mod height: Inc : pg=pg+1 : INPUT a$;  : REMark - pause at screen full
240   WGET#3\(mod_ptr+$16),name_rel: REMark - relative pointer to name
250   GET#3\(mod_ptr+$16+name_rel),name$  : REMark - fetch module name
260   IF LEN (name$)&&1: BGET#3,a : REMark - odd length name is padded
270   BGET #3,version$(1 TO 4)    : REMark - get version, if any
280   PRINT HEX$(mod_ptr,32) !!!! HEX$(mlength,24) !! version$ ! name$
285   d$(i)=HEX$(mod_ptr,32)&"    "&HEX$(mlength,24)&"  "&version$&" "&name$
290   mod_ptr = mod_ptr + mbase + mlength
300 END FOR i
310 CLOSE #3 : PRINT#0,CHR$(10)&HEX$(mod_ptr,32)&" end of file"
320 PRINT#0,\"Save data as text file (S/s) or Quit program"
330 in=INKEY$(#0,-1) INSTR 'SsQq'&CHR$(27): REMark wait to close program
340 SELect on in
350   =1,2 : INPUT 'save file name>';sf$ : IF sf$="":QUIT
360   =Remainder : QUIT
370 END SELect
380 OPEN_NEW#3,sf$ : PRINT#3,f$\\HEX$(fln,32)&" length of file"&CHR$(10)
390 FOR i=1 TO height : IF d$(i)<>"": PRINT#3,d$(i) : END FOR i
400 PRINT#3,\\HEX$(mod_ptr,32)&" end of file"
410 CLOSE#3 : QUIT
420 :
430 DEFine PROCedure Inc
440   LOCal z$(height*pg),j
450   FOR j=1 TO height*pg : z$(j)=d$(j)
460   DIM d$(height*pg)
470   FOR j=1 TO height*pg :d$(j)=z$(j)
480 END DEFine


 This gives more useful information and now gives an option to save the screen output to a text file.

Wednesday, 2 August 2017

Aurora Qubide and SuperGold card build completed

It has taken a while particularly as getting components to work with retro QL hardware is getting harder as time passes. None the less Aurora is up and running with a DVD/CD drive, CF card for hard drive and a single ED floppy disk drive plus the Aurora motherboard, SuperHermes, Qubide and a SuperGold card with a backplane all installed in a mini PC ATX box.The QUBide card roms have been updated to 3.08 and SMSQ/E 3.31 also installed.


The box for the installation had only one external drive bay, and when originally designed a 3.5 inch HDD could be fix on a caddy slung from a single fixing point below this. In front of the HDD a board provided USB connections accessible  to the front of the case and hidden behind movable flap.



As can be seen from the photographs the interior of the case is crammed full. A caddy has been made for the 3.5 inch floppy disk and a slot fore it cut through the case to the front. The CF card in its adapter sits on top of the floppy disk drive. The backplane with Aurora, SuperGold card and Qubide sit transversely in the case with the Aurora board bolted to the case. The SuperGold Card is supported by a lego bridge across the Aurora board. This unfortunately cannot be seen due the the heat sink and the cables. As a first iteration of the installation it is a pleasing result although some tidying of cables and redundant connectors is still required.