Monday, 31 August 2009

As Promised Part 3

While Quanta Magazine was upbeat QLtoday was ebullient. Almost simultaneously in 1999 both QPC2 and the Q40 systems were launched head to head.

With what happened subsequently one almost wonders which favourite operating system was in the mind of the editor that could be accessed via on keyclick. Was it smsq/e or was it windows, or was it Linux :))

Inside there was much of interest including a reference to QL on the internet, an interest that was shared with the Quanta readers, and sadly something that might have eluded the QL community upto the present for no good reason at all. That needs to be the subject of a future post.


Friday, 28 August 2009

As Promised Part 2

An illuminating contrast 10 years on in the Quanta magazine :

International shows, articles on TCP/IP, by Simon Goodwin expressing his opinion that this will be available by the end on 1999. An article on the aurora QL replacement mother-board by one of the traders who would be selling the Q60, QL top end in 3-5 years time. The QL flight song I reproduce here with no apologies whatsoever :

A dynamic and fun time especially as the QL as originally produced by Sinclair had not been manufactured for 14 years! And because the glossy newsagent 1980s QL World magazine had gone to the wall with Maxwell in the early 1990s. QL Heaven had propelled itself onward with enthusiasm, personal contacts and belief.

Wednesday, 26 August 2009

As Promised part 1

In 1989 the August QL World magazine featured the mem DIY toolkit function. The revised professional publisher from Digital Precision. News of the remanufacturing of microdrive cartridges by ablex. There was a tutorial on correct superbasic programming and a Superbasic game called Link. A 30MB hard drive for the QL from Miracle Systems cost an amazing £399!

In August 1999 ten years later QL World had long since vanished partly courtesy of Robert Maxwell. QL users were now served by a new journal QL Today and Quanta Magazine. More in the next post

Tuesday, 25 August 2009

Still Off Topic

I will be back on QL topics soon. Had a spot of trouble getting the itouch toconnect to the home wireless network. Had a search on google and loads of cries for help there. Seems it is a common problem. Many solution suggested from resetting the entire itouch and starting from scratch, to resetting the itouch wifi settings to default settings, to WEP encrytion being a problem with itouches, to changing the network encryption algorithm, to DHS server setting incongruities, to updating the modem router software.

Well here is how I set it up after trying the simpler of the solutions from the apple site. No need to change encryption methods, or upgrade the modem router. What I did was switch off the network. All PCs , and the modem router. Next reset the itouch wifi settings to default : settings/general/reset/reset network settings. Then fire up the modem router but not any other part of the network. Once it has set itself up fir up safari which will ask to connect to the home network. Type in the WEP key in hexadecimal not ASCII. And that's it. You can now restart the rest of the network. itouch just likes to be first on the modem and home.

Enough off topic. Next time QLing in August 1989, 1999 and 2009.

Sunday, 23 August 2009

Off Topic

Just got an itouch mp3 player. Is there a QL emulator app for this??

Friday, 21 August 2009

ebay latest

Have been away for a bit. On ebay there are 7 "rare" original QLs for sale. Buy it now prices range up to £199.99. How much did you pay for your new QL in the '80s? They seem to be becoming an investment. Microdrive software on sale includes the games, jabber, reversi, steve davis snooker and psion chess. While supermonitor and locksmithe are the utilities at the moment.

Tuesday, 4 August 2009

Another Snippet

I was thinking about the QL World magazine and about all the bits of SBASIC code published in that. Which bits were the best I wonder. Here is one snippet that I have used again and again.

23548 DEFine PROCedure EditFileName(y%,x%)
23556 fil$=INFO$(edch%,y%,x%,40,fil$)
23564 END DEFine EditFileName
23572 :
23580 DEFine FuNction INFO$(edch%,ypos%,xpos%,max%,default$)
23588 LOCal y$(36),loop,key
23596 IF default$="":default$=dest$
23604 y$=default$:xpos%=xpos%
23612 kx%=xpos%+(LEN(y$)*6)
23620 PAPER#edch%,white:REMark CLS#edch%
23628 STRIP#edch%,white:INK#edch%,black
23636 REPeat loop
23644 BLOCK#edch%,216,10,xpos%,ypos%,white
23652 REMark PRINT#edch%,FILL$(' ',max%);
23660 CURSOR#edch%,xpos%,ypos%;
23668 PRINT#edch%,y$;
23676 Kursen edch%,kx%,ypos%
23684 key=CODE(INKEY$(#edch%,-1))
23692 SELect ON key
23700 =9,10 :REMark ENTER/TAB
23708 IF LEN(y$)>0
23716 BLOCK#edch%,216,10,xpos%,ypos%,white
23724 Kursen edch%,kx%,ypos%
23732 CURSOR#edch%,xpos%,ypos%
23740 PRINT#edch%,y$
23748 RETurn y$
23756 END IF
23764 :
23772 =27 : REMark ESC
23780 Kursen edch%,kx%,ypos%
23788 RETurn INFO$(edch%,ypos%,xpos%,max%,fil$)
23796 :
23804 =194 : REMark backspace key
23812 letter=INT((kx%-xpos%)/6)
23836 IF LEN(y$)>1:y$=y$(1 TO LEN(y$)-1)
23844 IF LEN(y$)=1:y$="":kx%=kx%-6
23852 kx%=kx%-6 : IF kx%0 AND letter<=LEN(y$) AND letter>0
23884 IF letter>1:y$=y$(1 TO letter-1)&y$(letter+1 TO LEN(y$))
23892 IF letter=1 AND LEN(y$)>1 : y$=y$(2 TO LEN(y$))
23900 IF letter=1 AND LEN(y$)=1 : y$=""
23908 IF letter<=0:y$=""
23916 kx%=kx%-6 : IF kx%<=0:y$="":kx%=xpos%:REMark remove last charcter from string
23940 :
23948 =202 : REMark delete key
23956 letter=INT((kx%-xpos%)/6)
23964 IF LEN(y$)>0 AND letter<=LEN(y$) AND letter>0
23972 IF letter+2<=LEN(y$)
23980 y$=y$(1 TO letter)&y$(letter+2 TO LEN(y$))
23988 ELSE
23996 IF letter>0:y$=y$(1 TO letter)
24004 IF letter=0
24012 IF LEN(y$)<=1 : y$="" 24020 IF LEN(y$)>1 : y$=y$(2 TO LEN(y$))
24028 END IF
24036 END IF
24044 END IF
24052 IF letter<=0:y$="":kx%=xpos%:REMark remove last charcter from string
24060 :
24068 =33 TO 127 : REMark characters
24076 letter=INT((kx%-xpos%)/6):IF letter<=0:letter=0
24084 IF letter<0 24092="" if="">=LEN(y$)
24100 y$=y$&CHR$(key)
24108 kx%=kx%+6:IF kx%>=xpos%+(max%*6):kx%=xpos%+((max%-1)*6)
24116 END IF
24124 IF LEN(y$)>0 AND letter=1:y$=y$(1 TO letter)&CHR$(key)&y$(letter+1 TO LEN(y$))
24140 IF letter=0:y$=CHR$(key)&y$(1 TO LEN(y$)):kx%=kx%+6
24148 kx%=kx%+6
24156 END IF
24164 :
24172 =32 : REMark space
24180 y$="":kx%=xpos%
24188 :
24196 =192 :REMark move cursor left
24204 Kursen edch%,kx%,ypos%
24212 kx%=kx%-6 : IF kx%=xpos%+(max%*6) : kx%=xpos%+((max%-1)*6)
24260 END SELect
24268 END REPeat loop
24276 RETurn y$
24284 END DEFine INFO$
24292 :
24300 DEFine PROCedure Kursen(edch%,kx%,ky%)
24308 OVER#edch%,-1
24316 BLOCK#edch%,6,10,kx%,ky%,HEX("FF0000")
24324 OVER#edch%,0
24332 END DEFine Kursen
24340 :

Its a bit long. But it is a SBASIC equivalent of EDLINE$. Why bother with this then. Its easier to integrate into another program and removes one toolkit dependency.

Here is another little secrete as well. Notice line 24316. The colour number for the block command is given as HEX("FF0000"). SBASIC allows the 24 bit colour as $FF0000 but QLiberator written many years before the GD2 drivers does not accept this convention hence the use of TK2 HEX function. Drat thats another toolkit dependency but not so important as all expanded systems have toolkit2 and all 24 bit colour values require this format if QLiberated.