Jump to content
IGNORED

Atari's Plato Cartridge question


DarkLord

Recommended Posts

Nobody interested?

 

-Thom

Interested yes. Can't get Atari online natively, don't want to wank about with emulation. Also, most of my free time (non-existent) is pulling transmission from project car. I'll try to get to this sometime.

  • Like 1
Link to comment
Share on other sites

@Troff, you start the screen designer from the TUTOR code editor, when you're done with the screen designer, it inserts the relevant tutor commands at the last known insertion point.

Tutor is _VERY_ easy to learn, there is a lesson called 0introtut which gets you started. You can ask the systems guys for lesson space in the request notesfile.

 

-Thom

  • Like 1
Link to comment
Share on other sites

Ok, so guys... I have a complete copy of the CYBIS system running in an emulator. This isn't the complete copy running on cyber1, but close...it has all the officially published lessons (the ones that begin with 0)...would anyone be interested in using one that is set up just for us Atari PLATO users? All....4 of us? :P :)

 

I could e.g. customize every part of the system and add a menu router to make things easier to bounce around in...

 

-Thom

I'm pretty sure if a number of Atari interests are put in at the top, you would see more users. PLATO for Newbies... Atari users could learn an quite a bit if you put your' workflow videos in as lessons. Imagine Atari specific programming lessons also. If we could just get the crew to jump on board. The PLATO system could teach nearly all things Atari as hands on lessons rather than just reading a book, getting swamped and giving up. Which is where almost all younger individuals are today... they just swim... then tread water... get over whelmed... and eventually just leave the swimming pool. This could help change that.

Edited by _The Doctor__
Link to comment
Share on other sites

The big deal for some of the would be users has been the validation process, today we don't wait for anything... waiting 3 days for validation is a deal breaker for some people these days... I think it's crazy, but it's true. Remember back in the day where and elite board would do a thorough background check to see if you would be given access? and sometimes even longer after initial access to see if you would be able to get to the 'good stuff'? Unless you were well know and already established, some BBS wouldn't give you high access at all. Legal concerns and all that. I had to set some of my friends up with certain wish list software so they could be granted access. Imagine going back to setting up an upload/download late at night so it would be waiting for you in the morning.... kids are doing the is it here yet dance after 5 minutes... after 15 minutes they think the internet is broken... at half an hour I think the mind is ready to 'splode... they never make it to an hour.... never

Edited by _The Doctor__
Link to comment
Share on other sites

Nobody interested?

 

-Thom

Hi Thom,

 

I'm interested.

 

While stepping through the disassembly, I often leave my connection open for a long time. I'd feel better doing that in a sandbox.

 

Also I like the idea of worry-free filling up the pbnotes with Atari-specific threads.

 

- Michael S.

Link to comment
Share on other sites

Update: My attempt to quote tschak909 didn't work correctly.

 

Posted by tschak909 on Mon Feb 19, 2018 8:17 PM

 

Somebody took TLP and made an xex out of it, and it has a very odd bug, where just before it finishes drawing the password prompt, the cart somehow falls out into the weeds and jumps to warm start....

 

Not a bug. There is some copy-protection being employed here.

 

At B863 exist 12 curious bytes. This is a bit of obfuscated code that is decrypted and copied from ROM to RAM in the subroutine at B84B.

 

lda #<(LB863-1) ; Address of obfuscated code (well, minus 1)
ldy #>(LB863-1)
ldx #$0C ; Initialize counter to 12
jmp sub_b84b

sub_b84b:
sta off_EC ; Create pointer to obfuscated code
sty off_EC+1 ;

ldy #$00 ; Point to the first byte
lda #$55 ; Decryption key 01010101
sec

@LOOP:

iny ; Increment pointer index
rol a ; Rotate the key 01010101 -> 10101010
pha
eor (off_EC),y ; Decrypt the byte using exclusive OR
sta L3E33-1,y ; Save the byte to RAM
pla
dex ; Decrement counter
bne :@LOOP ; Continue looping while counter not equal to 0

jmp L3E33 ; B860 4C 33 3E

LB863: .byte $65,$AA,$12,$F7,$49,$D5,$25,$A9
.byte $19,$DC,$B2,$CD

 

Here is the decrypted code. (Note: BFFC is in the ROM's address space and contains a 0).

 

L3E33:

DEC $BFFC ; Try to alter a ROM address from 0 to -1.
LDA $BFFC ; Load "altered" value into CPU.
BEQ $3E3E ; Still equal to 0? Yes, you're cool. RTS
JMP COLDSV ; No? Stinking Pirates! Reboot
RTS ;

One de-protection solution is to change the 4C (JMP) at B860 to 60 (RTS) in the ROM file and re-convert it to an XEX.

 

- Michael

Edited by 16kRAM
  • Like 7
Link to comment
Share on other sites

Update: My attempt to quote tschak909 didn't work correctly.

 

Posted by tschak909 on Mon Feb 19, 2018 8:17 PM

 

Somebody took TLP and made an xex out of it, and it has a very odd bug, where just before it finishes drawing the password prompt, the cart somehow falls out into the weeds and jumps to warm start....

 

Not a bug. There is some copy-protection being employed here.

 

At B863 exist 12 curious bytes. This is a bit of obfuscated code that is decrypted and copied from ROM to RAM in the subroutine at B84B.

 

lda #<(LB863-1) ; Address of obfuscated code (well, minus 1)

ldy #>(LB863-1)

ldx #$0C ; Initialize counter to 12

jmp sub_b84b

 

sub_b84b:

sta off_EC ; Create pointer to obfuscated code

sty off_EC+1 ;

ldy #$00 ; Point to the first byte

lda #$55 ; Decryption key 01010101

sec

 

@LOOP:

iny ; Increment pointer index

rol a ; Rotate the key 01010101 -> 10101010

pha

eor (off_EC),y ; Decrypt the byte using exclusive OR

sta L3E33-1,y ; Save the byte to RAM

pla

dex ; Decrement counter

bne :@LOOP ; Continue looping while counter not equal to 0

jmp L3E33 ; B860 4C 33 3E

 

LB863: .byte $65,$AA,$12,$F7,$49,$D5,$25,$A9

.byte $19,$DC,$B2,$CD

 

 

Here is the decrypted code. (Note: BFFC is in the ROM's address space and contains a 0).

 

L3E33:

DEC $BFFC ; Try to alter a ROM address from 0 to -1.

LDA $BFFC ; Load "altered" value into CPU.

BEQ $3E3E ; Still equal to 0? Yes, you're cool. RTS

JMP COLDSV ; No? Stinking Pirates! Reboot

RTS ;

 

One de-protection solution is to change the 4C (JMP) at B860 to 60 (RTS) in the ROM file and re-convert it to an XEX.

 

- Michael

Here's the updated file:TLP-2400c.xex. It seems to work. At least, SHIFT+STOP (Atari SHIFT+START+S) doesn't cause it to kick out to BASIC.

 

I can't try it on real hardware, myself. I gave up my 850 long ago.

  • Like 4
Link to comment
Share on other sites

  • 2 weeks later...

I found a nice orange palette by setting 32 to both color2 and color4, and setting 202 to the text luminance. (you can do this on the disassembly mentioned above), and have built my tlp bin to do this, as well as use the IST-III terminal. We do need to merge in MrFish's excellent font, as soon as we can.

 

A vid of my lab PLATO system, and a menu based router I am working on: :)

 

 

-Thom

  • Like 4
Link to comment
Share on other sites

Would any of you like to jump onto a combo of a hangouts (for audio) and s0confer (for screen sharing on PLATO), to take a systems tour, as well as a dig through the programming environment, of the system?



I'm looking for interested people who want to hack on this system, with me.



-Thom


  • Like 1
Link to comment
Share on other sites

It is neat Thom. This is one of the coolest things happening on the forum here. It's great to see this thing pulled back to life.

 

I would like to help out, but I have WAY too many other projects that are waiting in line before I could even think about spending much time on something like this.

 

Although, I am willing to help on a few things, if they're possible. One thing I'd been thinking about is whether or not it would be possible to improve the font even further. To do so, it would be necessary to increase the available height of all characters (and subsequently all terminal text lines) by 1 pixel. This would allow for great improvement to characters such as the lower-case "e" and "s". All other characters would benefit as well, and overall readability would be increased.

 

I don't know what overall effect this may have on the rest of the system. The display list, screen ram, and number of bytes defining each character would all be increased, for one. Without knowing the current, exact limits of the graphics display, I can't say for sure if it'd even be possible. Just taking a guestimation, it looks like it's about 190 pixels high. If you added 1 pixel per 7 lines (the current height of each character) that would put things at around 218, which is just about the max for a lot of NTSC machines. So, it looks to be in the realm.

 

Anyway, I think the benefits would be worth it, but I'll leave it to you and others who are working on the code to decide if it's feasible or even of interest.

Edited by MrFish
  • Like 2
Link to comment
Share on other sites

I'd love it, if we can find the space. Right now, it's clear that 8K is about the max for whatever the PLATO cartridge assemble to, the display memory eats up 40K of system memory (32K for the full res display, 8K for the scaled display).

 

We know we can get a tiny chunk of space by removing the 1030 and MPP modem handlers.

 

I'd definitely love to move your current font data into the official disassembly as a compile time option.

 

-Thom

Link to comment
Share on other sites

As far as eking out another scan line per character to create a more readable font, the math may not support it.

 

The PLATO terminal's character mode is 64x32 characters. With the 192 scan lines on the Atari, that leaves exactly 6 scan lines per character row - which is where it is now.

 

; .##.....
; #..#....
; ####....
; #..#....
; #..#....
; ........

I'm not a graphics expert so maybe there's some overscan tricks, but it'd need 32 additional scan lines to add one to each character row.

Link to comment
Share on other sites

As far as eking out another scan line per character to create a more readable font, the math may not support it.

 

The PLATO terminal's character mode is 64x32 characters. With the 192 scan lines on the Atari, that leaves exactly 6 scan lines per character row - which is where it is now.

 

; .##.....

; #..#....

; ####....

; #..#....

; #..#....

; ........

 

I'm not a graphics expert so maybe there's some overscan tricks, but it'd need 32 additional scan lines to add one to each character row.

 

Yep, I was just having another look and realised I'd miscounted. It's definitely a 6 pixel high font. 224 lines would put us just outside what's viewable on most CRT's (220 being about the typical limit). Maybe it's be possible to shorten by one terminal line, but I'm not sure how that might upset things.

 

Anyway, I already have such a font on tap. So if it's possible, I could get us looking like this (click to see it zoomed properly)...

 

post-6369-0-05377700-1521657905_thumb.png

Edited by MrFish
  • Like 2
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...