It is currently Mon Oct 20, 2014 4:47 pm

All times are UTC [ DST ]




Post new topic Reply to topic  [ 141 posts ]  Go to page Previous  1 ... 4, 5, 6, 7, 8  Next
Author Message
PostPosted: Wed Oct 22, 2008 9:59 pm 
Offline
User avatar
 Profile

Joined: Fri Apr 25, 2008 7:55 pm
Posts: 147
Hi Koen.

The combined routines are finished and working :D. Because it's longish, I haven't done a Basic assembler version so you just get the loadable object code and, for interest, the following assembler listing :

Code:
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\      2 off SWR utilities for use with Quill     \
\            running in a Master 128              \
\                                                 \
\     (1) To call multiple SWR located utils      \
\  (2) To retrieve and display SWR text messages  \
\                                                 \
\              V1.0  M.P.Barr 2008                \
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

\------------------------------------------------------------------------------
\Notes

\Common :
\1. Non-relocatable, must be re-assembled if moved from $0B00
\2. Registers not preseved

\Utility Caller:
\1. Requires swr utility number as 1..n in Quill flag @ utilnum = $508
\2. Assumes all utils are max. 2 pages long (512 bytes)
\3. Call 'entry', NOT 'ustart' (entry = ustart + 6)

\Message Printer:
\2. Uses zero page $70-$72 (transient)
\3. On entry, message number = ?($500+(?50A))

\end of notes
\------------------------------------------------------------------------------
\Constants etc. for both utils defined here

qswrutils EQU       $0B00               \locate in Fn key defs area

OSASCI    EQU       $FFE3               \print A to screen, $D -> $D,$A

utilnum   EQU       $0508               \utility number passed in Quill..
                                        \..Flag $0508 (1..n)
uswrblk   EQU       5                   \swr bank number for utilities

qcharp    EQU       $050A               \Quill character pointer
qcharb    EQU       $0500               \Quill character base address
messnum   EQU       $70                 \message number determined at call
mloclo    EQU       $71                 \absolute message address lo
mlochi    EQU       $72                 \absolute message address hi
mswrblk   EQU       4                   \swr bank number for messages
                                   
romsoft   EQU       $F4                 \software rom register
romhard   EQU       $FE30               \hardware rom register
basic     EQU       12                  \BASIC rom slot number

\end of constants
\------------------------------------------------------------------------------

          ORG       qswrutils           \base addr for 2 consecutive utils

\------------------------------------------------------------------------------
\*** utilities caller ***

                                        \*** don't call here! ***
ustart    DFB       $20                 \'JSR' opcode
utilL     DFB       $00                 \all utils on a page boundary
utilH     DFB       $80                 \self-modifying util page number

          JMP       return              \after calling util, graceful exit

                                        \*** call here! ***
entry     DEC       utilnum             \decrement util number to give 0,1,2..
          BMI       exit                \illegal number, exit no action

          LDA       utilnum             \prepare util address page number
          ASL                           \512 bytes per util so util num x2
          CLC                           \base address is $8000
          ADC       #$80                \$80, $82, $84 ... etc.
          STA       utilH               \and set the util swr call address

                                        \page BASIC out and SWR in         
          SEI                           \kill IRQ during rom switch
          LDA       #uswrblk            \select utils swr bank
          STA       romsoft
          STA       romhard
          CLI                           \restore IRQ
         
          JMP       ustart              \and call the utility

return    SEI                           \all done, reselect BASIC
          LDA       #basic              \as swr select but rom = 12
          STA       romsoft
          STA       romhard
          CLI
         
exit      RTS                           \and return to Quill

\------------------------------------------------------------------------------
\*** message printer ***

                                        \fetch and save message number
getnum    LDY       qcharp              \get char number as index for fetch
          LDA       #>qcharb            \message number base address lo
          STA       mloclo              \save
          LDA       #<qcharb            \message number base address hi
          STA       mlochi              \save
          LDA       (mloclo),Y          \fetch message number
          STA       messnum             \and save
         
          LDA       #0                  \initialise swr addr pointer to $8000
          STA       mloclo
          LDA       #$80
          STA       mlochi
                                        \page in the message database swr
          SEI                           \kill IRQ during rom switch
          LDA       #mswrblk            \select message swr bank
          STA       romsoft
          STA       romhard
          CLI                           \restore IRQ

seek      LDY       #0                  \Y offsets to number (0) or length (1)
          LDA       (mloclo),Y          \get this message number
          BEQ       found               \if zero, end of messages
          CMP       messnum             \else message we are after?
          BEQ       found               \yes, goto print

          INY                           \else wrong message, move to next..
          LDA       (mloclo),Y          \..by fetching pointer to next
          CLC
          ADC       mloclo              \add pointer to base message address
          STA       mloclo
          BCC       seek
          INC       mlochi              \with carry hi increment
          BNE       seek                \and always loop for next
         
found     INY                           \fetch pointer (equates to length + 2)
          LDA       (mloclo),Y
          TAX                           \X = length + 2
          DEX                           \adjust X to true length
          DEX
show      INY                           \inc Y to first/next chr
          LDA       (mloclo),Y          \fetch a chr
          JSR       OSASCI              \print
          DEX                           \finished message?
          BNE       show                \no, loop for next

          SEI                           \all done, reselect BASIC
          LDA       #basic              \as swr select but rom = 12
          STA       romsoft
          STA       romhard
          CLI
         
          RTS                           \and return to Quill

\------------------------------------------------------------------------------
\*** End of code ***

In case anyone's interested, I use the Lancs Assembler - I probably should be using Steve O's Swift but I guess I'm just a stuck-in-the-past luddite. Sorry Steve ;)

A disc image is attached which contains the following files :

QCODE - The loadable object code which is located at $B00 as requested. The SWR utility handler is called at $0B06 (in Quill, MSB=11 LSB=6) and the number of the SWR utility to be called is passed in Flag $0508 and should be 1, 2, 3..etc.
The SWR message handler is called at $0B2B (MSB=11 LSB=43) to find and print the message number in ?($500 + (?$50A)) as discussed.

MESSAGE - A test message SWR image for location in Bank 4. This contains dummy messages 1 to 13 and of course 0.

UTILITY - A test utility SWR image for location in Bank 5. This contains 3 dummy utilities located at $8000, $8200 and $8400 which will simply print a 1, 2 or 3 and return.

QMESS - A short Basic demonstration program using the message printer.

QUTIL - A short Basic demonstration program using the utility handler.

If you are not able to produce SWR images for the message database or for the (relocated) utilities then let me know.

Have fun :)

Martin


Attachments:
final.zip [14.09 KiB]
Downloaded 6 times
Top
 
PostPosted: Fri Oct 24, 2008 9:54 pm 
Offline
 Profile

Joined: Mon Jul 07, 2008 6:58 pm
Posts: 64
Hi Martin,

Great!!!
Just downoaded it and what you have created works here too. :D
Have to relocate the other utils first to test it fully.
But I'm off saturday and I think I'll have a go at the utils sunday or so.

Just wondereing.
When I take the code you have listed above and put it in basic with line numbers and the 'FOR opt% = 0 to 3 step 3 etc..' should it work ok then as BASIC code to generate machine code?

Cheers

Koen


Top
 
PostPosted: Fri Oct 24, 2008 10:06 pm 
Offline
User avatar
 WWW  Profile

Joined: Wed Jan 09, 2008 10:23 am
Posts: 359
Location: Glasgow, Scotland
You'll also need to put full stops in front of the labels, set the P%, etc..

There are also the ORG and DFB instructions which are not part of the official 6502 command set. These are probably specific to the compiler that Martin is using.

Kind regards,

Francis


Top
 
PostPosted: Fri Oct 24, 2008 10:16 pm 
Offline
User avatar
 Profile

Joined: Fri Apr 25, 2008 7:55 pm
Posts: 147
Hi Koen.

I just wrote the post below and then saw Francis has posted whilst I was thinking. So, exactly as Francis says :), and.....

Hmm.. Unfortunately it's not quite that simple :| The code statements would be mostly ok but the declarations at the beginning would need some syntax adjustment. Is there any particular reason why you want a Basic assembler version? Unless you want to change something you wouldn't need it for building the adventure?

If you can convince me why it would be useful, it's probably easier for me to do the conversion to Basic.

Go on then, I'm listening, convince me....... :)

Martin


Top
 
PostPosted: Sat Oct 25, 2008 8:25 am 
Offline
 Profile

Joined: Mon Jul 07, 2008 6:58 pm
Posts: 64
Hi Martin,

No I shall not convince you.
Just thought, to have a version as basic source for the archive, in case of to recompile it again.
And when there are request to make an electron/BBC version then I have to knock again at your door anyway, I guess. But for now I keep it to the Master.

Cheers

Koen


Top
 
PostPosted: Sun Oct 26, 2008 7:08 pm 
Offline
User avatar
 Profile

Joined: Fri Apr 25, 2008 7:55 pm
Posts: 147
Hi Koen.

Actually, you did convince me! If you do ever want to make any changes or attempt to produce a version for a different platform then you'll need the Basic version. (Though I doubt there's many Beebs or Electrons with 48k of SWR ;) ) Also, since this site is about sharing knowledge, it's probably helpful for beginners to see the traditional assembler listing I posted converted to Basic assembler.

Interestingly, apart from a couple of typos, I converted it very easily except for one problem which, whilst really simple, tied me in knots for a while. Here's the Basic line after initial conversion :

Code:
510 LDA utilnum:ASL:CLC:ADC #&80:STA utilH

When I ran the Basic program, this gave a 'No such variable at line 510'. Naturally I was drawn to to the two variables, utilnum and utilH, and spent some time checking and re-checking the usual spelling, case etc. of these variables - here and elsewhere where they are declared. In fact, I even started changing the declarations and reworking the EQUB where utilH is declared thinking maybe the latter was illegal. After ten minutes or so I was ready to smash the computer into bits when it suddenly dawned on me. Basic assembler doesn't accept a simple implied ASL - it requires ASLA. D'oh! Good example though of how Basic error messages can sometimes be a bit misleading and also how problematic multiple statement assembler lines can be :evil:

Anyway, here's the Basic version. I have checked it carefully and verified the object code it produces with the pure assembler code so I know it's good. I haven't included the comments that accompanied the code lines so you'll have to x-refer to the assembler in the future if you want to understand what's going on.

Code:
10 REM \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
20 REM \      2 off SWR utilities for use with Quill     \
30 REM \            running in a Master 128              \
40 REM \                                                 \
50 REM \     (1) To call multiple SWR located utils      \
60 REM \  (2) To retrieve and display SWR text messages  \
70 REM \                                                 \
80 REM \              V1.0  M.P.Barr 2008                \
90 REM \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
100 :
110 REM Notes
120 :
130 REM Common :
140 REM 1. Non-relocatable, must be re-assembled if moved from $0B00
150 REM 2. Registers not preseved
160 :
170 REM Utility Caller:
180 REM 1. Requires swr utility number as 1..n in Quill flag @ utilnum = $508
190 REM 2. Assumes all utils are max. 2 pages long (512 bytes)
200 REM 3. Call 'entry', NOT 'ustart' (entry = ustart + 6)
210 :
220 REM Message Printer:
230 REM 2. Uses zero page $70-$72 (transient)
240 REM 3. On entry, message number = ?($500+(?50A))
250 :
260 REM Constants etc. for both utils defined here
270 :
280 qswrutils=&0B00:REM locate in Fn key defs area
290 OSASCI=&FFE3:REM print A to screen, $D -> $D,$A
300 utilnum=&0508:REM utility number passed in Quill Flag $0508 (1..n)
310 uswrblk=5:REM swr bank number for utilities
320 qcharp=&050A:REM Quill character pointer
330 qcharb=&0500:REM Quill character base address
340 messnum=&70:REM message number determined at call
350 mloclo=&71:REM absolute message address lo
360 mlochi=&72:REM absolute message address hi
370 mswrblk=4:REM swr bank number for messages
380 romsoft=&F4:REM software rom register
390 romhard=&FE30:REM hardware rom register
400 basic=12:REM BASIC rom slot number
410 :
420 FOR I%=0 TO 3 STEP 3
430 P%=qswrutils
440 [OPT I%
450 .ustart EQUB &20
460 .utilL EQUB &00
470 .utilH EQUB &80
480 JMP return
490 :
500 .entry DEC utilnum:BMI exit
510 LDA utilnum:ASLA:CLC:ADC #&80:STA utilH
520 SEI:LDA #uswrblk:STA romsoft:STA romhard:CLI:JMP ustart
530 .return SEI:LDA #basic:STA romsoft:STA romhard:CLI
540 .exit RTS
550 :
560 .getnum LDY qcharp:LDA #qcharb MOD 256:STA mloclo
570 LDA  #qcharb DIV 256:STA mlochi
580 LDA (mloclo),Y:STA messnum         
590 LDA #0:STA mloclo:LDA #&80:STA mlochi
600 SEI:LDA #mswrblk:STA romsoft:STA romhard:CLI
610 .seek LDY #0:LDA (mloclo),Y:BEQ found
620 CMP messnum:BEQ found:INY:LDA (mloclo),Y
630 CLC:ADC mloclo:STA mloclo:BCC seek:INC mlochi:BNE seek
640 .found INY:LDA (mloclo),Y:TAX:DEX:DEX
650 .show INY:LDA (mloclo),Y:JSR OSASCI
660 DEX:BNE show
670 SEI:LDA #basic:STA romsoft:STA romhard:CLI
680 RTS
690 ]
700 NEXT

I've added this to the ssd I attached previously as BQCODE and re-attached the updated image.

Quote:
...then I have to knock again at your door anyway, I guess.

Another benefit, maybe I don't have to remove my door knocker now... :lol:

Martin

(PS : Is my list finished now Boss ?)


Attachments:
final.zip [14.4 KiB]
Downloaded 6 times
Top
 
PostPosted: Wed Oct 29, 2008 10:06 pm 
Offline
 Profile

Joined: Mon Jul 07, 2008 6:58 pm
Posts: 64
Hi Martin,

Was a little radio silence on my side, but have been busy.
Looks all good what you send me, but I realized something. :oops:
The colour 0 / 3 and Fade routine from francis are 2 commands in one.
So I wondered.
When I split up these listings 1 for set colour 0, and one for set colour 3, and one fade-in, and one fade-out, I need more util space in SWR.
So, can I just continue to &8600 and &8800?
So that the &508 value can have 1,2,3,4 and 5?

Or is this a major problem.......... :oops: :oops: :oops: :?

(little) Cheers

Koen


Top
 
PostPosted: Wed Oct 29, 2008 10:43 pm 
Offline
User avatar
 Profile

Joined: Fri Apr 25, 2008 7:55 pm
Posts: 147
Hi Koen.

Yes, your silence was making me a little nervous ;)

Good news though - no problem at all on the number of utilities, you can carry on until all of the 16k ($8000-$BFFF) is used up :D

Only thing to watch out for is that none of the routines exceeds 512 bytes ($200). So, when assembling, look for the last address in the listing not being greater then the util start address by more than $1FF. If this does happen, for the offending routine, just reserve two calling numbers for it but only actually use the first to call it.

For example : if we have six utils, A-F, and the third, util_C at $8400 is say 800 bytes long, reserve call numbers 3 & 4 for this routine, using 3 to call it, and make the fourth utility actually number 5 at $8800, the fifth utility number 6 at $8A00 and so on. Or visually...

$8000 util_A call=1
$8200 util_B call=2
$8400 util_C call=3
$8600 ----------- < call 4 not used, reserved for oversize space for util_C
$8800 util_D call=5
$8A00 util_E call=6
$8C00 util_F call=7

In case you haven't studied how the utility calling id is used, it's probably worth explaining. The call id number is of course for you to keep track of the routines by allocating a number to each utility but the id also tells the calling code where a given utility lives in memory. So....

A utility with call id <n> is located in SWR at $hh00 where hh = $80 + (2 x (n - 1))

You can use this to check that each utility is located at the correct page in SWR.

Keep us posted and just ask if you need more help 8-)

Martin


Top
 
PostPosted: Thu Oct 30, 2008 10:23 pm 
Offline
 Profile

Joined: Mon Jul 07, 2008 6:58 pm
Posts: 64
Hi Marin,

That's is very lovely.
Was hoping for that option. That means when I would like more utils, I can expand :) (hoping not to use your knocker then ;) )
But there is something I would like to see if I'm doing fine in relocation listings. Can you have a look at the following listing. This should be the 3rd util, so should be at &8400.

Code:
   10 REM Direction Util for 'Quill'
   20 REM When loaded into RAM, Quill can access
   30 REM it, and will display the possible
   40 REM directions in the adventure.
   50 REM
   60 REM original by Quill author
   70 REM extended version by Francis G Loch
   80 REM Version 2.0
   81 REM
   82 REM SWR code version
   90 :
  100 MODE6
  110 FOR N%=4 TO 7 STEP 3
  120 P%=&8400:O%=&B00
  130 [
  140 OPT N%
  150 .START:LDA &350A:STA &70:LDA &350B:STA &71:LDX #0
  160 .START1:CPX &502:BEQ START2:LDY #0:LDA(&70),Y
  170 CLC:ADC &70:STA &70:LDA &71:ADC #0:STA &71:INX:JMP START1
  180 .START2:LDY #0:.S2_LOOP:LDA S2_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S2_LOOP
  190 LDY #1:STY &72
  200 .START3:LDY &72:LDA (&70),Y:CMP #255:BNE START0
  210 JSR &FFE7:JSR &FFE7:RTS
  220 .START0:CMP #0:BNE START5:LDY #0:.S0_LOOP:LDA S0_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S0_LOOP
  230 .START4:INC &72:INC &72:JMP START3
  240 .START5:CMP #1:BNE START6:LDY #0:.S5_LOOP:LDA S5_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S5_LOOP
  250 JMP START4
  260 .START6:CMP #2:BNE START7:LDY #0:.S6_LOOP:LDA S6_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S6_LOOP
  270 JMP START4
  280 .START7:CMP #3:BNE START8:LDY #0:.S7_LOOP:LDA S7_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S7_LOOP
  290 JMP START4
  300 .START8:CMP #4:BNE START9:LDY #0:.S8_LOOP:LDA S8_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S8_LOOP
  310 JMP START4
  320 .START9:CMP #5:BNE START10:LDY #0:.S9_LOOP:LDA S9_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S9_LOOP
  330 JMP START4
  340 .START13:CMP #11:BNE START4:LDY #0:.S13_LOOP:LDA S13_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S13_LOOP
  350 JMP START4
  360 .START10:CMP #8:BNE START11:LDY #0:.S10_LOOP:LDA S10_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S10_LOOP
  370 JMP START4
  380 .START11:CMP #9:BNE START12:LDY #0:.S11_LOOP:LDA S11_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S11_LOOP
  390 JMP START4
  400 .START12:CMP #10:BNE START13:LDY #0:.S12_LOOP:LDA S12_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S12_LOOP
  410 JMP START4
  420 .S0_TEXT:EQUS "North, ":EQUB 0
  430 .S2_TEXT:EQUS "Visible exits : ":EQUB 0
  440 .S5_TEXT:EQUS "South, ":EQUB 0
  450 .S6_TEXT:EQUS "East, ":EQUB 0
  460 .S7_TEXT:EQUS "West, ":EQUB 0
  470 .S8_TEXT:EQUS "Up, ":EQUB 0
  480 .S9_TEXT:EQUS "Down, ":EQUB 0
  490 .S10_TEXT:EQUS "NorthEast, ":EQUB 0
  500 .S11_TEXT:EQUS "NorthWest, ":EQUB 0
  510 .S12_TEXT:EQUS "SouthEast, ":EQUB 0
  520 .S13_TEXT:EQUS "SouthWest, ":EQUB 0
  530 ]
  540 NEXT
  550 CLS
  560 PRINT"To call the util from Quill"'"Set flag 8 to 3 and call"'"the routine at &B00."
  570 :
  580 PRINT'"Save code ? (Y/N)  ";:YN$=GET$
  590 IF YN$="Y" THEN PRINT"Ok. ":OSCLI"SAVE U.Quil-u2 8400 85FF 8000 8000":PRINT''"Saved as : U.Quil-u2"
  600 END


Are these the correct corrections to the listing I made?

Cheers

Koen


Top
 
PostPosted: Thu Oct 30, 2008 11:09 pm 
Offline
User avatar
 Profile

Joined: Fri Apr 25, 2008 7:55 pm
Posts: 147
Hi Koen.

I haven't studied the actual code itself in detail, I'll assume that's correct for now, but the line where you are saving the code is incorrect :(

OSCLI"SAVE U.Quil-u2 8400 85FF 8000 8000"

When we set P%=&8400 and O%=&B00, we are telling the assembler to produce code which will (eventually) be loaded at &8400 but, during the assembly, please put the code into memory starting at &B00.

So, when we come to *SAVE the code for later loading, we must specify that we want to save the code currently at &B00 which is &200 bytes long (might be shorter but that's our maximum and ok to use) and, although it's currently at &B00, we later want it to be loaded and executed at &8400.

Hence, we would use the following :

OSCLI"SAVE U.Quil-u2 B00 D00 8400 8400"

or

OSCLI"SAVE U.Quil-u2 B00+200 8400 8400"

The parameters are [code save start] [code save end] [required load address] [required execution address]

Note that [code save end] must be one greater than the actual end (in our case &D00 and not &CFF) or can be specified as [code save start] '+' [actual length] as in my second example.

Hope this explains ok? :)

Martin


Last edited by MartinB on Fri Oct 31, 2008 12:36 am, edited 2 times in total.

Top
 
PostPosted: Thu Oct 30, 2008 11:14 pm 
Offline
User avatar
 Profile

Joined: Fri Apr 25, 2008 7:55 pm
Posts: 147
Also....

560 PRINT"To call the util from Quill"'"Set flag 8 to 3 and call"'"the routine at &B00."

should be....

560 PRINT"To call the util from Quill"'"Set flag 8 to 3 and call"'"the routine at &B06."

Remember we call the utility selector at &0B06 ;)

Martin


Top
 
PostPosted: Fri Oct 31, 2008 9:15 am 
Offline
 Profile

Joined: Mon Jul 07, 2008 6:58 pm
Posts: 64
Hi Martin,

That all sounds good.
The code itself ended at 57A (the last compiled line I saw on the screen) but out of precaution I took 5FF. (was that wrong?)
Furthermore I left the code itself untouched, only changed the P% and O% etc.
But what I wondered, when assembling I saw on the screen that it was compiling from &8400 and not from &B00, but I guess that's what you explained earlier with the O%.

I'm going to do the rest of the utils and have go at it with Quill.
Bet it should work now :)

Cheers

Koen


Top
 
PostPosted: Fri Oct 31, 2008 10:56 am 
Offline
User avatar
 Profile

Joined: Fri Apr 25, 2008 7:55 pm
Posts: 147
Hi.
Quote:
The code itself ended at 57A (the last compiled line I saw on the screen) but out of precaution I took 5FF. (was that wrong?)

That means that this routine is $017A bytes long ($857A - $8400) and so you could have used :
OSCLI"SAVE U.Quil-u2 B00+17A 8400 8400" or OSCLI"SAVE U.Quil-u2 B00 C7B 8400 8400"
but using 'B00+200' or 'B00 D00' is fine (and probably the preferable & safest option) since that will just pad out the saved block with spare bytes.
Quote:
But what I wondered, when assembling I saw on the screen that it was compiling from &8400 and not from &B00, but I guess that's what you explained earlier with the O%.

Yes, what you see is correct. The assembler generates the code and listing as it will be used at $8400 but places the object code at $B00 as we have requested. The reason for doing all this is because if we simply used P%=$8400 and didn't employ O%, the object code would be written directly to $8400. The problem in doing that is, if you have understood the BASIC/SWR paging idea, that at the time of assembly, the BASIC rom is paged in at $8000-$BFFF and so our object would be written to addresses occupied by this rom and we would end up with no code to save. Thus, we temporarily write the code to ram @ $B00 and we can then save it for later loading at $8400 with the other utilities via the *SRLOAD command.
Quote:
Bet it should work now :)

Oh it'll work ;)

Martin


Top
 
PostPosted: Wed Nov 05, 2008 10:29 pm 
Offline
 Profile

Joined: Mon Jul 07, 2008 6:58 pm
Posts: 64
Hey Martin and Francis

It took me a long time before I could test but.........

IT WORKS!!!!!!!!

The first try was a total crash, but I found out that I made a switch between the SWR 4 and 5. So after correcting that, it all worked.
I tested just one util from francis and the message util.
It is amazing!

Thanks Martin for the SWR utils and thank you francis for the other utils!
so Martin you are free now. No bothering knocks :D (I hope)

Just wondering. How is it going Francis with the fade util?
Any luck on a solution to the big problem yet?

Cheers

Koen


Top
 
PostPosted: Wed Nov 05, 2008 11:55 pm 
Offline
User avatar
 WWW  Profile

Joined: Wed Jan 09, 2008 10:23 am
Posts: 359
Location: Glasgow, Scotland
Hi Koen,

To be honest I haven't really had the time recently to look at it properly. It will be at least next week before I can get the time.

Kind regards,

Francis


Top
 
PostPosted: Thu Nov 06, 2008 3:50 pm 
Offline
User avatar
 Profile

Joined: Fri Apr 25, 2008 7:55 pm
Posts: 147
Hi Koen.

Great news, pleased it's finally all going well for you. If you need any more help just ask - I'm only kidding about this being painful :D
As Francis has said before, it's all good practice and there's always something to be learned from such projects.
Quote:
The text adventure is going to be a free application so I, unfortunately, have nothing to pay, but can mention people during the preroll of the game.
Just make sure that preroll is veeeerrrrry slooooowwww :lol:

Martin


Top
 
PostPosted: Fri Nov 07, 2008 12:10 am 
Offline
 Profile

Joined: Mon Jul 07, 2008 6:58 pm
Posts: 64
Oh don't worry.
Going to make something nice ;)

Hope for the update for the image converter from francis. This applications is going to be used alot in this adventure. :)
Any mac beta for me to test francis? ;)

Cheers

Koen


Top
 
PostPosted: Sun Nov 09, 2008 3:42 pm 
Offline
User avatar
 WWW  Profile

Joined: Wed Jan 09, 2008 10:23 am
Posts: 359
Location: Glasgow, Scotland
Hi Koen,

There is very little to actually show from a GUI side of things for any of the platforms as I've been concentrating more on the processing algorithms and other routines. It's only very recently that I have started designing and developing the user interface.

I'm hoping to have a beta version ready sometime after the new year.

Kind regards,

Francis


Top
 
PostPosted: Mon Apr 20, 2009 4:05 pm 
Offline
User avatar
 WWW  Profile

Joined: Wed Jan 09, 2008 10:23 am
Posts: 359
Location: Glasgow, Scotland
Hi Koen,

Are you still looking for that fade util?

I'd actually forgotten all about it until I was re-reading through some of the old posts. :oops:

Kind regards,

Francis.


Top
 
PostPosted: Mon Apr 20, 2009 4:39 pm 
Offline
 Profile

Joined: Mon Jul 07, 2008 6:58 pm
Posts: 64
Hi Francis,

It has been a while.
Yes still looking for the fade util.
Got time to do it?

The funny thing is, that because of my work I had no time to do anything on the aventure. And exactly today (about 2 hours ago) I took a look at the retro site. (having in mind to continue when my theatre tour has ended and the summer vacation is coming :) ) and found some new stuff and discussions.

How is your Image2BBC going?
Got a mac version?
Would love to use it when I continue to work on the adventure :)

Cheers

Koen


Top
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 141 posts ]  Go to page Previous  1 ... 4, 5, 6, 7, 8  Next

All times are UTC [ DST ]


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron