CamelForth

Forums
CamelForth :: Forums :: CamelForth Discussion :: 6809
 
<< Previous thread | Next thread >>
6809 CamelForth on Vectrex
Go to page   <<      
Moderators: Brad R
Author Post
Phillip Eaton
Mon Jun 10 2019, 10:03pm
Registered Member #187
Joined: Sat Dec 17 2016, 07:22pm
Posts: 10
Hi Brad,

Thanks for the message and sorry for taking 5 months to reply, I somehow lost my login details...but I just found them again!

Your comments make it a lot clearer now, and, for now, I'm thus ignoring DUAL.

Things on my project have moved on, though only slowly.

I have a game called 2048 mostly working, that I ported from Gforth Rosetta Code. It runs fine on the terminal, though it's horrendously slow right now on the vector display. A turn-based game with a terminal user interface doesn't run well on a machine with no screen buffer and a requirement for a 50Hz screen refresh - optimization is needed!

A couple of things that were missing in CamelForth that I needed to tweak; no CASE statement (used IF/ELSE/THEN) and no ?DO, (used ?DUP IF...THEN). Maybe I'll add them nativel later on.

I have also learned a lot about Git and expect to use GitHub for hosting my source code, just as soon as I get something together that's a little presentable.
Back to top
Brad R
Tue Jun 18 2019, 06:43pm

Registered Member #1
Joined: Sun Aug 12 2007, 03:30pm
Posts: 204
Hi Philip, thanks for the update!
Back to top
Phillip Eaton
Thu May 13 2021, 09:25pm
Registered Member #187
Joined: Sat Dec 17 2016, 07:22pm
Posts: 10
Hello Brad et al.,

In the USER area, near the bottom of the below table, I see 128 USER PAD.

This seems like an strange number, is there any reason it is $128 and not, say $140 ?

Thanks,
Phil

\   High level: system variables and constants   (c) 31mar95 bjr
HEX -80 USER TIB      \ -- a-addr   Terminal Input Buffer       
      0 USER U0       \ -- a-addr   current user area adrs            
      2 USER >IN      \ -- a-addr   holds offset into TIB       
      4 USER BASE     \ -- a-addr   holds conversion radix       
      6 USER STATE    \ -- a-addr   holds compiler state        
      8 USER DP       \ -- a-addr   holds dictionary pointer    
     0A USER 'SOURCE  \ -- a-addr   two cells: length, address   
     0E USER LATEST   \ -- a-addr   last word in dictionary      
     10 USER HP       \ -- a-addr   HOLD pointer                
     12 USER LP       \ -- a-addr   leave-stack pointer         
    100 USER S0       \ -- a-addr   end of parameter stack     
    128 USER PAD      \ -- a-addr   user PAD buffer/end of hold 
    180 USER L0       \ -- a-addr   bottom of leave stack        
    200 USER R0       \ -- a-addr   end of return stack  
Back to top
Brad R
Sun May 16 2021, 10:52pm

Registered Member #1
Joined: Sun Aug 12 2007, 03:30pm
Posts: 204
There was some reason I wanted PAD to hold 80 characters (plus a few extra for overflow buffer). But offhand, I can't recall why.
Back to top
Brad R
Sun May 16 2021, 10:56pm

Registered Member #1
Joined: Sun Aug 12 2007, 03:30pm
Posts: 204
Oh, yes. dpANS-6, section 3.3.3.6:

"The size of the scratch area whose address is returned by PAD shall be at least 84 characters."

So I made it 88.
Back to top
Phillip Eaton
Sun May 16 2021, 10:59pm
Registered Member #187
Joined: Sat Dec 17 2016, 07:22pm
Posts: 10
Many thanks for the clarification!
Back to top
Go to page   <<       

Jump:     Back to top

Syndicate this thread: rss 0.92 Syndicate this thread: rss 2.0 Syndicate this thread: RDF
Powered by e107 Forum System