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.
Tuesday, 15 August 2017
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.
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
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
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
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
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
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.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
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. 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
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.
This gives more useful information and now gives an option to save the screen output to a text file.
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
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.
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.
Subscribe to:
Posts (Atom)