Jump to content
IGNORED

Altirra 2.40 Final out..


Mclaneinc

Recommended Posts

A very belated but nonetheless sincere thanks to Phaeron for implementing some extremely useful improvements to the debugger.

 

I have not done any ASM for quite a while now, so only noticed today that the source window has begun to - INCREDIBLY conveniently - dock with the other windows!!! That alone makes programming and debugging a 100% more comfortable. Also, I think - although I have not experimented widely - the step into/out/over keyboard shortcuts are no longer hard coded either. Another MASSIVE win.

 

MANY, MANY thanks Phaeron. When I get back in to Atari programming this will make a huge difference to me at least and I am sure many others.

 

...AND on further inspection I also discover a feature I have wanted for literally years has ALSO been implemented while I was busy with other things - you can now clear the printer window directly!!!! This mean you do not have to close and re-open it to 'insert a blank sheet' as it were.

 

Again - MANY thanks Avery. Many thanks for listening and also for remembering. This mioght give me the push I need to get back in to Atari ASM.

Edited by morelenmir
  • Like 3
Link to comment
Share on other sites

  • 2 weeks later...

Alright, I have everything about set to release 2.50, except for a small problem... namely that the compiler I've been using to build it is running very flakily on this new system. I've been able to generate a build by forcing off precompiled headers, which is a bit wonky. Please give this test build a check and see if you spot anything awry. It's basically the same as 2.50-test39 except for a small fix for slow startup. If all's good after a short check then I can release 2.50 final.

 

http://www.virtualdub.org/beta/Altirra-2.50-test40.zip

http://www.virtualdub.org/beta/Altirra-2.50-test40-src.zip

 

To fix this problem, the next version (2.60) will be built with Visual Studio 2010, so I'll be dropping support for Windows 2000 and XP pre-SP2. I doubt anyone actually runs it on these, but if you do, fair warning....

  • Like 6
Link to comment
Share on other sites

Had a long hard play with most things and no crashes or odd behaviour here, admittedly I don't use bits like SIDE stuff at all nor the monitor that much but in terms of playing stability it seems ok so far...

 

Maybe those that use those functions could say if its all been ok for them just so you know...(Although silence is normally the best proof of no problems :) )

Edited by Mclaneinc
Link to comment
Share on other sites

Nope, I use Visual C++. GCC on Windows is too icky for my quirky tastes.

 

The problem, as I understand it, is that the VS2005 compiler relies on being able to reload binary data at the same address each time. Fine idea when you're writing 6502 code, bad idea on a modern OS with ASLR. From what I understand it actually started to be a problem with Vista, but because of Altirra's relatively small size I'd never had a problem on Windows 7. It seemed to be working on Windows 8.1 too until one day some updates installed and then I basically couldn't compile. Until now, that the compiler was a bit old hadn't been an impediment -- I wasn't really running into cases of "this could be so much better if I were using a newer compiler." Not being able to use precompiled headers, though, is a dealbreaker.

Link to comment
Share on other sites

THAT is really strange! Basically MS are bypassing their own OS routines - in a fashion they criticize others for because it... BREAKS CODE when the underlying architecture changes!!!

 

You are brave shifting to 8.1 though!!! I am going to give 8.x miss altogether and hope 'Threshold' will deliver the goods. From what I see they have largely junked the Metro farrago so that is something at least.

Link to comment
Share on other sites

I'm normally an early adopter of MS OS's, I sort of test them for mates around before saying to them to upgrade or not, 8.0 & 8.1 is the first time I've said no to it..

 

A friend got a new PC which came with it and its so hidden internally and that's with the latest update to make it more friendly, also heard so many people complain about items crashing because of its changes..

Link to comment
Share on other sites

I mean... In all honesty I like MS software - they CAN produce nice GUI applications. However they are also colossally arrogant and it was that sheer arrogance which set me against 8 from the get go. They just unilaterally decided that EVERYONE wanted the same touch-screen UI across every platform. That was it. Like it or not - and too bad if 'not' - you ARE going to run your PC as if it were a mobile telephone... and I don't even HAVE a mobile telephone!!! Maybe Metro is ace on a tablet like 'Surface' - I could see it working in that setting pretty well. Maybe even it is tolerable for a console where interaction is fairly linear and predictable in the scheme of things, although I MASSIVELY preferred the original 360 dashboard with the 'Panes'. But for a PC.. Nope. And no matter how 'cool' and 'modern' you tell me it is, no matter how many smiling pretty commercial models you post to your homepage I am NOT going to agree with you MS!

 

But 'Threshold' looks like it has learnt the lesson and kept the few good bits from metro and nicely integrated them into a real 7-style GUI.

 

Which is the real crux of the matter. In my opinion if you want a GUI then you should use 7. I you want a command-line you should use Unix/Linux. No matter how much people and third parties try to fill the other shoe like 'Take Command' or 'Gnome'/'KDE' - it doesn't work.

  • Like 2
Link to comment
Share on other sites

I'm very happy with 7 X64, its not as pretty as 8.1 but then again I turn all the AERO stuff off 7 anyway so pretty pretty does nothing for me. What I also didn't like on his 8.1 was the constant pressure to be part of Windows Live, I don't use the online stuff on my Xbox and I certainly don't want to be pushed at it when I use the computer, like you I don't have a mobile and like you I don't want my computer to behave like one, I want a nice GUI, COMPATIBILITY and SOLID OS.

 

I also don't want bloatware but hey, its compulsory with MS...

Link to comment
Share on other sites

In terms of best OS ever used, for me its the Amiga OS, loved it...Really nice and easy to use and loads under the hood, as for MS ones, I'd say 7 has been my overall favourite, I forget what was on my first PC just after I shifted up for the Amiga but the DOS setting up was such an annoyance after the Amiga, did I have enough base mem, was QUEMM working right, were the Soundblaster interrupts correct..

 

At least 7 auto configures most stuff.

Link to comment
Share on other sites

The first - and still to my mind best - OS I ever used was the hardcoded RISCOS 3 that came on ROM with the ARM A400/4000/5000's. That was my first exposure to a GUI environment and i was blown away. Everything, absolutely everything that came after was compared to that and came up wanting. ESPECIALLY the jump I made from using ARM machines at highschool and then buying my own 486DX2-66 PC for home. Arrggghhh... SO SLOW!!!! Going from RISCOS to Windows 3.1/DOS was worse than a culture shock - it genuinely, along with hardware problems led me to take the PC back and demand my money be returned. Which for the most part I got. I think the chap could apreciate my point - especially as I had pretty much make him promise it would be the fastest machine available at that time in late March 1994.

 

I LOVED RISCOS. And then I tried the excellent 'VirtualAcorn' emulator recently and... I don't know. I did not realize how good the windows Aero GUI had become and how favourably modern machines contrasted with old. Nonetheless I still have an impossibly rosy memory of the old ARM machines and even have four or five complete systems broken down in to component parts kicking around somewhere. just have never had room to put them together and network away. Maybe one day - when I have found a source for new solder-in CMOS batteries for their motherboards!!!

 

Oddly I have never used an Amiga - not even in emulation.

Edited by morelenmir
Link to comment
Share on other sites

  • 6 years later...

Hello, phaeron.

 

At first -

Merry Christmas! Season Greetings and Happy New Year!

 

I hope you can help me someway :)

My question: Do you meet some problems with banks switching in Altirra?

I wrote PL65 demo program and meet some glitch behavior in emulators Altirra or Atari800WinPlus.

No mean Rambo-576 or Compy-576! (With right banks schemas and masks of course.)

THERE ARE NOT PROBLEMS IN REAL HW!

 

I found that the problem arises while switching from 0-th (Main) to EXTMEM (back and forth).

If I exclude countong from (0 to 32) and use (1 to 32) no problems at all!

 

Here is some screenshots:

XRAM.thumb.png.103466fb2a982d1a228881979abf7091.png

Rambo

readBad.png

Drops 2 lines upscreen and stay there cursor

working.png

Normal reading counting from (1 to 32)

writebad.png

Drops one line upscreen and stay there cursor

Monitor.png

You can see in Monitor that Writing to Bank 0 is DONE!

 

PL65 SD_X33A.atr

!====================================!
! BANKS.PRG                          !
!   Using 130XE Extended Banks in    !
!     PL65 Programming Language      !
!------------------------------------!
! Evgeny Zolotarev,(aka 576XE), 2020 !
!====================================!
INCLUDE TERMINAL.LIB

!- CONSTANTS & VARIABLES:
BYTE PORTB=$D301
INT bkNum

!- DUMMY array representing ---------!
!- selected BANK's slice ------------!
BYTE bkMem[$4000]=$4000

!- Bank Selector Values -------------!
!- Atari800WinPlus (Rambo) 576XE ----!
!BYTE bkSel[33]
!DATA $91,
!  $81,$83,$85,$87,$89,$8B,$8D,$8F,
!  $A1,$A3,$A5,$A7,$A9,$AB,$AD,$AF,
!  $C1,$C3,$C5,$C7,$C9,$CB,$CD,$CF,
!  $E1,$E3,$E5,$E7,$E9,$EB,$ED,$EF;

!- Bank Selector Values -------------!
!- Altirra 576XE Compy scheme -------!
BYTE bkSel[33]
 DATA $31,
      $21,$23,$25,$27,$29,$2B,$2D,$2F,
      $61,$63,$65,$67,$69,$6B,$6D,$6F,
      $A1,$A3,$A5,$A7,$A9,$AB,$AD,$AF,
      $E1,$E3,$E5,$E7,$E9,$EB,$ED,$EF;

! String VAR  to store in all BANKS
STRING inp$[4+27]
  DATA "==> User DATA from Bank #00";

! Set string as VAR for appending
STRING out$[4+27]
  DATA "                           ";

!- PROCEDURES:
!- Clear Screen Procedure -----------!
PROC clrScr()
  CONST clr=255
BEGIN WRTSTR(CHR$(125)) END

!- Wait for Any Key Pressed ---------!
PROC anyKey()
  CONST none=255
  BYTE CH=764
BEGIN
  WRTSTR("Wait for a Key...") CR()
  WHILE CH=none DO ENDWHILE
  CH=none
END

!- Place bkSel Tags into PORTB ------!
PROC setBank(INT bkNum)
!- Atari800WinPlus 576XE ------------!
!  CONST bkMask=%10010001 BYTE bkTag

!- Altirra 576XE Compy scheme -------!
  CONST bkMask=%00110001 BYTE bkTag
BEGIN
  bkTag=bkSel[bkNum]
! Wrapper for NMI & VBI
! SEI
! LDA #0
! STA $D40E

  LDA PORTB AND bkMask OR bkTag
  STA PORTB

! LDA #$40
! STA $D40E
! CLI
END

!- Writes to Bank -------------------!
PROC writBk()
BEGIN
  FOR bkNum=0 TO 32 DO
    WRTSTR("Writing to BANK #") WRITE(bkNum) CR()
    IF bkNum<10 THEN
      inp$[25,25]=STR$(0) inp$[26,26]=STR$(bkNum)
    ELSE inp$[25]=STR$(bkNum) ENDIF
    out$=inp$
    setBank(bkNum)
    MOVE(.out,LEN(out$),.bkMem)
  NEXT
END

!- Reads from Bank ------------------!
PROC readBk()
BEGIN
  FOR bkNum=0 TO 32 DO
    WRTSTR("Reading BANK #") WRITE(bkNum) CR()
    setBank(bkNum)
    MOVE(.bkMem,LEN(out$),.out)
    WRTSTR(out$) CR()
  NEXT
END

!------------------------------------!
MAIN()
BEGIN
  clrScr() anyKey() writBk()
  anyKey() clrScr() readBk()
END
! >>> EOF <<< !

Anyway I just reported some strange behavior :)

 

My warmest wishes from Moscow!

zen

Edited by 576XE
  • Confused 1
Link to comment
Share on other sites

5 hours ago, 576XE said:

Hello, phaeron.

 

At first -

Merry Christmas! Season Greetings and Happy New Year!

 

I hope you can help me someway :)

My question: Do you meet some problems with banks switching in Altirra?

I wrote PL65 demo program and meet some glitch behavior in emulators Altirra or Atari800WinPlus.

No mean Rambo-576 or Compy-576! (With right banks schemas and masks of course.)

THERE ARE NOT PROBLEMS IN REAL HW!

 

I found that the problem arises while switching from 0-th (Main) to EXTMEM (back and forth).

If I exclude countong from (0 to 32) and use (1 to 32) no problems at all!

Your program is misbehaving in this way because the banking configuration you are writing to PORTB for 0 (Main) is enabling the BASIC ROM at $A000-BFFF on top of the screen at $BC20 (PORTB=$31/91 instead of $33/93). This causes ANTIC to run garbage as the display list and fire random display list interrupts, which are then corrupting both the screen and the program state. Skipping bank 0 avoids this problem because both of these 576K configurations disable the internal BASIC ROM when extended memory is enabled.

 

As for why you are getting different results in emulation than on the real HW, there are multiple possible reasons for this. You may be booting your computer with BASIC enabled, your BASIC ROM may be different, your 576K expansion may have BASIC permanently disabled instead of only when extended memory is enabled, or the contents of low memory are different because you're loading off of a different storage device.

 

  • Like 6
Link to comment
Share on other sites

Really I always used emulators with BASIC OFF.

... And forgot that 0 for BASIC is BASIC ON!

Avery said all truth! $93 instead $91.

All works!!!

 

!====================================!
! BANKS.PRG                          !
!   Using 130XE Extended Banks in    !
!     PL65 Programming Language      !
!------------------------------------!
! Evgeny Zolotarev,(aka 576XE), 2020 !
!====================================!
INCLUDE TERMINAL.LIB

!- CONSTANTS & VARIABLES:
CONST bkMask=%10010001
BYTE PORTB=$D301,NMIEN=$D40E,bkTag
INT bkNum

!- DUMMY array representing ---------!
!- selected BANK's slice ------------!
BYTE bkMem[$4000]=$4000

!- Bank Selector Values -------------!
!- Atari800WinPlus 576XE ------------!
BYTE bkSel[33]
DATA $93,
  $81,$83,$85,$87,$89,$8B,$8D,$8F,
  $A1,$A3,$A5,$A7,$A9,$AB,$AD,$AF,
  $C1,$C3,$C5,$C7,$C9,$CB,$CD,$CF,
  $E1,$E3,$E5,$E7,$E9,$EB,$ED,$EF;

!- Bank Selector Values -------------!
!- Altirra 576XE Compy scheme -------!
! BYTE bkSel[33]
! DATA $33,
!      $21,$23,$25,$27,$29,$2B,$2D,$2F,
!      $61,$63,$65,$67,$69,$6B,$6D,$6F,
!      $A1,$A3,$A5,$A7,$A9,$AB,$AD,$AF,
!      $E1,$E3,$E5,$E7,$E9,$EB,$ED,$EF;

! String VAR  to store in all BANKS
STRING inp$[4+27]
  DATA "==> User DATA from Bank #00";

! Set string as VAR for appending
STRING out$[4+27]
  DATA "                           ";

!- PROCEDURES:
!- Clear Screen Procedure -----------!
PROC clrScr()
  CONST clr=255
BEGIN WRTSTR(CHR$(125)) END

!- Wait for Any Key Pressed ---------!
PROC anyKey()
  CONST none=255
  BYTE CH=764
BEGIN
  WRTSTR("Wait for a Key...") CR()
  WHILE CH=none DO ENDWHILE
  CH=none
END

!- Place bkSel Tags into PORTB ------!
PROC setBk*(BYTE bkTag)
BEGIN
!- Wrapper STOPs/STARTs IRQ & NMI ---!
  SEI LDA #$00 STA NMIEN
  LDA PORTB
  AND bkMask OR bkTag
  STA PORTB
  LDA #$40 STA NMIEN CLI
END

!- Send bkNum to setBk subroutine ---!
PROC setBank(INT bkNum)
BEGIN
  bkTag=bkSel[bkNum]
  setBk*(bkTag)
END

!- Writes to Bank -------------------!
PROC writBk()
BEGIN
  FOR bkNum=0 TO 32 DO
    WRTSTR("Writing to BANK #") WRITE(bkNum) CR()
    IF bkNum<10 THEN
      inp$[25,25]=STR$(0) inp$[26,26]=STR$(bkNum)
    ELSE inp$[25]=STR$(bkNum) ENDIF
    out$=inp$
    setBank(bkNum)
    MOVE(.out,LEN(out$),.bkMem)
  NEXT
END

!- Reads from Bank ------------------!
PROC readBk()
BEGIN
  FOR bkNum=0 TO 32 DO
    WRTSTR("Reading BANK #") WRITE(bkNum) CR()
    setBank(bkNum)
    MOVE(.bkMem,LEN(out$),.out)
    WRTSTR(out$) CR()
  NEXT
END

!------------------------------------!
MAIN()
  BYTE PORT
BEGIN
  LDA PORTB STA PORT
  clrScr() anyKey() writBk()
  anyKey() clrScr() readBk()
  LDA PORT  STA PORTB
END
! >>> EOF <<< !

 

zen

Edited by 576XE
  • Like 1
Link to comment
Share on other sites

Are you the real highlander McLaneinc?

 

My history goes from  a meeting with Nazareth group.

 

Some single malt whisky and then ...

 

I asked,

Are You Peter Agnew - really Пётр Агнёв

 

He said NO!

Thus I can say some misunderstanding... arived!

GOD BLESSED YOU!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...