WIN extensions

A place to discuss general QL issues.
User avatar
dilwyn
Mr QL
Posts: 2753
Joined: Wed Dec 01, 2010 10:39 pm

Re: WIN extensions

Post by dilwyn »

dex wrote: I have also tried disk-loaded 2.12 "Magnetic Eprom" version (on Dilwyn's site it is incorrectly described as 2.20 version).
Ah, thank you. I've changed the description now and also amended the filename which got confused between tk2_bin and tk2.bin

Wonder how long that mistake has been on that page?


jose_leandro
ROM Dongle
Posts: 47
Joined: Sat Jun 22, 2013 8:49 am

Re: WIN extensions

Post by jose_leandro »

Hi

My two cents.

I think that we talk about two types of TK2. One type is for standards QL where you put it in 48-64K rom zone o using ram. I use some of them from Dilwyn's site and none of them show ">" with qubide.

The other TK2 type is the one that comes with Gold card, super gold card , trump card, etc, etc. It seems that some of them show the ">".

The qubide rom only have the routines for use it and a pair of extra commands (WIN_DRIVE, MAKE_DIR, WIN_USE )

Bye

José Leandro


Silvester
Gold Card
Posts: 436
Joined: Thu Dec 12, 2013 10:14 am
Location: UK

Re: WIN extensions

Post by Silvester »

Dex, Try the attached version of Toolkit v2.23, it should recognise Level 2 drivers (ie. directories ->, and drive statistics).

<obscure>

It was extracted from Trump card v1.31, the TK2 part (16784 bytes, no typo) is a distinctly separate part of the EPROM. All that was needed was to remove a pseudo-ROM header (not on 16K boundary) and add some initialisation code so it could be CALLed when loaded into RESPR area.

IIRC The v1.31 EPROM was an upgrade to Trump Card (TC) which came with 'Disk Adaptor' (allowed upto 4 FLP drives using 3-of-8 74HC138 as drive select, which incidentally, I forgot to mention Derek, did also work with Gold Card). It also included the Miracle Hard Drive (MHD) code to handle Level 2 directories (so WIN_REXT didn't need to be loaded off MHD first, making it redundant).

Ironically, although the TC built-in TK2 recognises Level 2 drivers, the associated TC firmware drivers (FLP & RAM) were only Level 1 - even though it included the MAKE_DIR command, it didn't work on them (err_bp). It must have only been intended for TC+MHD users.

I have only tested TK223_bin on a QL with TRL FLP/+128K Interface with MHD attached and it works OK. Therefore it really needs also testing on another Level 2 type device (ie. fitted to a QL without built-in TK2).

BTW If you try to DIR a floppy disk with directories on it created on Level 2 FLP device (ie. GC), but read on a Level 1 FLP device with TK2.23 (ie. TC), you only see the top directories marked ->, but you can't look into the directories (same as earlier TK2). An odd side-effect of having mismatched level-2-aware-TK2 with level-1-FLP.

Also any inbuilt device drivers MAKE_DIR name table entry will get usurped when TK2 asserts its own definition (or reasserted using TK2_EXT), but I don't expect this to be a problem since driver should respond to IOF.MKDR call.

Anyone with news on Trump Card Level 2 EPROM status ?
(V1.31 only has 480 bytes left unused in 32K EPROM, I wonder what was cut out to make room?)

<\obscure>

If it tests OK with other users I'll send a copy of it with the recreated TK223_asm to Dilwyn.
Attachments
tk223.zip
(13.21 KiB) Downloaded 155 times


David
Silvester
Gold Card
Posts: 436
Joined: Thu Dec 12, 2013 10:14 am
Location: UK

Re: WIN extensions

Post by Silvester »

Also just done TK2 v2.26 (from Trump card v1.36 on Dilwyn's site). From a quick look it just like CLOCK routine changed and a minor bug fix (already noted and done in v2.23). AFAIK last version before Gold.


David
User avatar
dilwyn
Mr QL
Posts: 2753
Joined: Wed Dec 01, 2010 10:39 pm

Re: WIN extensions

Post by dilwyn »

Silvester wrote:Also just done TK2 v2.26 (from Trump card v1.36 on Dilwyn's site). From a quick look it just like CLOCK routine changed and a minor bug fix (already noted and done in v2.23). AFAIK last version before Gold.
Thanks Silvester. Available to download from: http://www.dilwyn.me.uk/pe/index.html


User avatar
dex
Gold Card
Posts: 286
Joined: Thu Dec 23, 2010 1:40 pm

Re: WIN extensions

Post by dex »

Solved!
Both new Toolkit versions (2.23 and 2.26) are working and the directory mark -> is displayed correctly with the QubIDE.

Thank You.


User avatar
dilwyn
Mr QL
Posts: 2753
Joined: Wed Dec 01, 2010 10:39 pm

Re: WIN extensions

Post by dilwyn »

dex wrote:Solved!
Both new Toolkit versions (2.23 and 2.26) are working and the directory mark -> is displayed correctly with the QubIDE.

Thank You.
Thank you for the feedback, dex.
Just a small note to reassure one or two people who asked why these toolkit 2 versions were a little longer than 16K - it's just that Silvester (who extracted these from Trump Cards - many thanks) added a bit of code to allow them to be run from RAM, that made the files a little bit bigger.


User avatar
NormanDunbar
Forum Moderator
Posts: 2251
Joined: Tue Dec 14, 2010 9:04 am
Location: Leeds, West Yorkshire, UK
Contact:

Re: WIN extensions

Post by NormanDunbar »

dilwyn wrote:In Norman's DJToolkit, his LEVEL2 extension (which checks for Level 2 filing systems) simply calls the IOF_XINF (get extended information, trap #3 with d0=$4F or dec. 79) and if this returns an error assumes that it is a level 1 (i.e. no hard directories) filing system.

I've not looked at the extension in detail (just returned from hospital after eye surgery so don't want to spend too long on computer to irritate the eye), but knowing Norman it'll be spot on!
Hope they eye gets better soon. And thanks fr the vote of confidence, maybe you are correct! :D

Here's the code. There are a couple of bits missing, check_hash checks for the hash separator bit in the name table entry for the first parameter.

Integer_d1 takes the word in d1 and puts it on the maths stack and sets the return type ready to exit back to SuperBasic. It makes sure that d2 bytes are available on the stack first.

Integer_bv returns err_BP via the maths stack and has to make room for it as the stack, at the time called, has not yet been used so there may not be pace for the error code.

Other than that it should be easy enough to follow. Apart from the formatting which has been botched by the Android editor I used to extract the code with.

Code: Select all

*====================================================================*
* LEVEL2 = Test to see if the level 2 drivers are present or not.    *
*--------------------------------------------------------------------*
* There must be 1 parameter preceeded by a hash. Return 1 if there   *
* are level 2 drivers on the connected device, zero if not.	     *
*--------------------------------------------------------------------*
* Stack uses 4 bytes and requires 2 for the result.		     *
*====================================================================*
level2	   bsr	   count_pars	       There should be 1
	   moveq   #2,d2	       Assume an error will occur
	   subq.w  #1,d0	       Was there 1 ?
	   beq.s   l2_1_ok	       Yes

l2_badpar  moveq   #ERR_BP,d1	       Bad parameter
	   bra	   integer_bv	       Quit via an unused stack

l2_error   rts			       Quit

l2_1_ok    bsr	   check_hash	       Test for the hash (#)
	   beq.s   l2_badpar	       Not there, quit & complain
	   moveq   #64,d1	       This big
	   bsr	   mtalchp	       Allocate it (preserves D2)
	   bne.s   l2_ret_err	       Oops...
	   move.l  a0,d5	       Save buffer address
	   moveq   #get_long,d0        Get 1 long please
	   bsr	   get_params	       Go get it
	   bne.s   l2_error	       Oops...
	   move.l  0(a6,a1.l),d0       Get channel number
	   addq.l  #2,a1	       Tidy stack but leave room for a word
	   bsr	   get_chan	       Convert to id in A0 for trap
	   bne.s   l2_ret_d0	       Oops...
	   move.l  a1,d7	       A1 gets corrupted
	   moveq   #IOF_XINF,d0        Use extended trap
	   moveq   #0,d1	       Must be, why ?
	   moveq   #0,d2	       Interrogate mode
	   moveq   #timeout,d3	       Infinity rules ok ?
	   move.l  d5,a1	       Buffer address in A1 for trap
	   trap    #3		       Do extended trap, A0 & A1 preserved
	   move.l  d0,d6	       Store error code
	   moveq   #MT_RECHP,d0        Trap is set
	   move.l  a1,a0	       Buffer address
	   trap    #1		       Release buffer, no errors
	   moveq   #0,d2	       I don't need any extra space
	   move.l  d7,a1	       Restore maths stack
	   move.l  d6,d1	       Restore previous error code
	   beq.s   l2_ret_1	       Level 2 is present
	   moveq   #0,d1	       Level 2 drivers not found
	   bra	   integer_d1	       Back to SuperBasic

l2_ret_d0  moveq   #0,d2	       Stack is fine

l2_ret_err move.l  d0,d1	       Get error code
	   bra	   integer_d1	       Return it as result

l2_ret_1   moveq   #1,d1	       Flag found level 2 drivers
	   bra	   integer_d1	       And finished


Why do they put lightning conductors on churches?
Author of Arduino Software Internals
Author of Arduino Interrupts

No longer on Twitter, find me on https://mastodon.scot/@NormanDunbar.
User avatar
dilwyn
Mr QL
Posts: 2753
Joined: Wed Dec 01, 2010 10:39 pm

Re: WIN extensions

Post by dilwyn »

Thanks Norman. Eye much better now, actually able to do some QLing again now!

Android editor botched the formatting? Hmm. Maybe we'll have a concerted effort to tempt you back to Windoze then <runs and hides> :twisted:


User avatar
NormanDunbar
Forum Moderator
Posts: 2251
Joined: Tue Dec 14, 2010 9:04 am
Location: Leeds, West Yorkshire, UK
Contact:

Re: WIN extensions

Post by NormanDunbar »

dilwyn wrote:Thanks Norman. Eye much better now, actually able to do some QLing again now!

Android editor botched the formatting? Hmm. Maybe we'll have a concerted effort to tempt you back to Windoze then <runs and hides> :twisted:
When I said it botched it, I meant that the combination of spaces and tabs in the original caused the problems. Plus I configured the editor on my tablet, to replace tabs with 4 spaces, which doesn't match the original I suspect.

I do have Windows 7 Professional, which I own, running on my laptop, in a VirtualBox VM. But I almost never use it!


Cheers,
Norm.


Why do they put lightning conductors on churches?
Author of Arduino Software Internals
Author of Arduino Interrupts

No longer on Twitter, find me on https://mastodon.scot/@NormanDunbar.
Post Reply