Author Topic: Axe Terminal Beta Released  (Read 13334 times)

0 Members and 4 Guests are viewing this topic.

SirCmpwn

  • Guest
Axe Terminal Beta Released
« on: January 08, 2011, 10:20:58 pm »
Terminal v0.1b


I've just put the finishing touches on the beta of this.  I've gotten the shell support working - you can now create your own programs that use the Terminal routines, and have them execute within the shell.  You can perform I/O from the command line to provide a similar user experience to those using Windows or Linux within your own programs.  I've also added a few other methods - Index Programs, Compare Strings, Starts With, and a few more.  You can read all about it in the readme (which you should definately read if you are going to develop for Terminal).  I've also included a demo program that you can run from within Terminal that uses the command line capabilities of Terminal.

This is also the first shell that supports both assembly and Axe, meaning that not only can assembly programmers access the routines, it also has support for developers to use it with Axe without any additional code modifications.  I will eventually create an include file for assembly programmers, but all the details that are needed to use asm with Terminal are provided in the readme.  As for Axe, prgmTERMINC provides all the functionality you need to use Terminal, and easily.

I've included a demo program for Axe developers.  I welcome any and all feedback, feature requests, or questions.  Enjoy, and let's see some cool programs!

(Download)
« Last Edit: January 09, 2011, 12:12:46 am by SirCmpwn »

Offline Eeems

  • Mr. Dictator
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 6266
  • Rating: +318/-36
  • little oof
    • View Profile
    • Eeems
Axe Terminal Beta Released
« Reply #1 on: January 08, 2011, 10:55:20 pm »
Amazing :D
Here is an idea, how about adding the ability to pass arguments to a program, and allow programs to call other programs? maybe just call them at the end or something, and pass arguments to that called program?
/e

SirCmpwn

  • Guest
Axe Terminal Beta Released
« Reply #2 on: January 08, 2011, 10:56:26 pm »
Well, for loading arguments, I'll put them in L1 on startup.  For calling other programs, that shouldn't be too hard, but it could get crowded in RAM.

Offline Eeems

  • Mr. Dictator
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 6266
  • Rating: +318/-36
  • little oof
    • View Profile
    • Eeems
Axe Terminal Beta Released
« Reply #3 on: January 08, 2011, 10:58:09 pm »
thought you'd do something like that :)
Are you going to do it the same way that C/C++ does it (argc argv)? Or store it in a different way?
Yeah it could get crowded, that's why I said possibly just running them right after instead
/e

SirCmpwn

  • Guest
Axe Terminal Beta Released
« Reply #4 on: January 08, 2011, 10:59:26 pm »
I think that it should be okay, so long as I change the way that archived programs are run.  As for C/C++, probably not.  I'll just put a zero delimited list of strings in L1 (SaveSScreen for assembly), ended with double zeros.

Offline Eeems

  • Mr. Dictator
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 6266
  • Rating: +318/-36
  • little oof
    • View Profile
    • Eeems
Axe Terminal Beta Released
« Reply #5 on: January 08, 2011, 11:02:11 pm »
Ah ok, sounds good. Maybe you could add a number at the start designating how many arguements are being passed kind of like argc? Then again, that might make it harder to figure out things.
Can't wait to see this implemented :)
/e

SirCmpwn

  • Guest
Axe Terminal Beta Released
« Reply #6 on: January 08, 2011, 11:03:28 pm »
I could do that.  So for arguments, I'll set it up at SaveSScreen (L1) like so (":" used for readability, not actually present in the program):
2:-A:0:-B:0:0

Offline Eeems

  • Mr. Dictator
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 6266
  • Rating: +318/-36
  • little oof
    • View Profile
    • Eeems
Axe Terminal Beta Released
« Reply #7 on: January 08, 2011, 11:04:10 pm »
Hmm, that could work :)
/e

SirCmpwn

  • Guest
Axe Terminal Beta Released
« Reply #8 on: January 08, 2011, 11:06:04 pm »
Will do :) for now, L1/SaveSScreen contains the command last used before starting your program "EXEC PRGMNAME".  I will also eventually add a Parse routine, which programs can use to parse a string as if it was entered into the command line.

Offline Eeems

  • Mr. Dictator
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 6266
  • Rating: +318/-36
  • little oof
    • View Profile
    • Eeems
Axe Terminal Beta Released
« Reply #9 on: January 08, 2011, 11:14:21 pm »
Sounds good :)

http://eeems.pastebin.com/EfZGqnpc
^ z80 include file for developers
« Last Edit: January 08, 2011, 11:19:03 pm by Eeems »
/e

SirCmpwn

  • Guest
Axe Terminal Beta Released
« Reply #10 on: January 08, 2011, 11:21:15 pm »
Thanks Eeems, I'll add that to the next beta, along with a ZDS version.

Offline Eeems

  • Mr. Dictator
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 6266
  • Rating: +318/-36
  • little oof
    • View Profile
    • Eeems
Axe Terminal Beta Released
« Reply #11 on: January 08, 2011, 11:32:26 pm »
Sweet :)

Code: [Select]
.NOLIST
#INCLUDE "Terminal.inc"
.LIST
.org $9d93
.db $BB,$6D
call RestorePage
COUT(Hello)
SafeExit
Hello:
.db "Hello World!",0

EDIT: New Include file http://eeems.pastebin.com/htk4WmS8
« Last Edit: January 08, 2011, 11:45:47 pm by Eeems »
/e

SirCmpwn

  • Guest
Re: Axe Terminal Beta Released
« Reply #12 on: January 08, 2011, 11:50:38 pm »
Very nice!  Glad to see asm support works out well.
Also, I've moved this to News.

Offline Eeems

  • Mr. Dictator
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 6266
  • Rating: +318/-36
  • little oof
    • View Profile
    • Eeems
Re: Axe Terminal Beta Released
« Reply #13 on: January 08, 2011, 11:57:25 pm »
:) Me too!
I think this is news worthy :P

Ok, a few command/function requests:
  • Command Alias's
    • Quit
      • Exit
      • Bye
    • LS
      • Dir (for windows people)
  • Commands
    • CP (copy a file to the new name)
    • UGrp (ungroup a backup)
    • LG (list groups)
  • Functions
    • Call (calls a program from within another)
    • Write (write a string of data into a program/appvar)
    • Read (gets the pointer to a program/appvar's data in hl and puts the size in bc
    • IMG (pretty much iputsprite)
    • Update (iSafeCopy)
« Last Edit: January 09, 2011, 12:00:03 am by Eeems »
/e

SirCmpwn

  • Guest
Re: Axe Terminal Beta Released
« Reply #14 on: January 09, 2011, 12:01:05 am »
list]
  • Command Alias's
    • Quit
      • Exit
      • Bye
    • LS
      • Dir (for windows people)
  • Commands
    • CP (copy a file to the new name)
    • UGrp (ungroup a backup)
    • LG (list groups)
  • Functions
    • Call (calls a program from within another)
    • Write (write a string of data into a program/appvar)
    • Read (gets the pointer to a program/appvar's data in hl and puts the size in bc
Alias's will be done.
CP and LG will be done, and LG-esque commands will be available for every data type (and have Index routines to go with).  UGrp will be saved for later, but will be possible.
As for functions, I'll add Call through the Parse routine, through which you can use "EXEC PRGMNAME" from within your program.  The rest of the functions are trivial in both Axe and Asm, so I'll leave them out.  Also, for IMG and Update, I'll have Ion compatability eventually.
« Last Edit: January 09, 2011, 03:58:10 pm by SirCmpwn »