Omnimaga

Calculator Community => Other Calc-Related Projects and Ideas => TI Z80 => Topic started by: josh landers on October 29, 2013, 08:58:32 am

Title: Basic Specialized IDE for making Installs and the like
Post by: josh landers on October 29, 2013, 08:58:32 am
Picture this...
You’re making a TI-BASIC game it has three subprograms and two of them are ASM programs, in hex codes. Do you spend your time writing a readme file... or do you quickly build and Install File and simply tell users to run it?
CMDEV- Command Developer
Using small easy to remember commands written it your CMDEVedit program will make this possible. From commands for making a loading bar to writing ASM programs, even the option to search for compatibility. Need BATLIB to run? CMDEV will search for it.
Code: [Select]
: I. (CMDEV)
: FM. (JOSH LANDERS)
: CFM. (JOSH*ATGUSA.COM)
: and more
That was a small taster of the type of code. I’m thinking of this being in AXE but ASM seems more likely, I will build a TI-BASIC version first then go from there. I will post the rest of the commands and what they do later on this week.
Title: Re: Basic Specialized IDE for making Installs and the like
Post by: SpiroH on October 29, 2013, 09:13:30 am
Welcome Josh!
Yeah I agree. These days we are forced to read a lot of crap only meaningful for the developer and not so much for the end-user. Therefore, an installer is by far preferable. Go ahead for it! BTW, what's your (nice) target programming platform that allows TI-BASIC and ASM mixing?
Title: Re: Basic Specialized IDE for making Installs and the like
Post by: Xeda112358 on October 29, 2013, 09:34:36 am
A while ago, I was trying to think of a way to detect if certain libraries were required for a given program. For BatLib, you would need to check for dim() commands that have a non-negative numerical argument first, then for FileSyst, you would check for first arguments that are negative or strings. For Celtic 3, you would need to check for 'misused' det() commands, imag(). For Celtic 3, you can check if Celtic 3 or DoorsCS7 is on the calc. For Omnicalc, you can check for real(nn,), and xLIB you can check for real(nn) as well, making sure nn is within the appropriate range. For xLIB, you can check for xLIB, Celtic 3, or DoorsCS7. Check the sum() commands for DoorsCS7.

I wrote a file system application last year that, when running a program, looks at the file extension and opens the appropriate app or program. For example, running DonkeyKong.ion would attempt to open an ION compatible shell (ION, MirageOS, DoorsCS7) in order to run the program. However, this requires the user to manually add the file extension, so I wanted to make a super complicated routine to analyse source codes and figure out the best file extensions and for extracting image icon data.

Also, welcome to Omni :)
Title: Re: Basic Specialized IDE for making Installs and the like
Post by: josh landers on October 29, 2013, 12:55:13 pm
Quote
BTW, what's your (nice) target programming platform that allows TI-BASIC and ASM mixing?
Not sure what you mean...
Thanks for the warm welcomes. if you maen how will i do this let me show you another example.
Code: [Select]
:I.(GROUPFILENAME)
:FM.(JOSH)
:CFM.()
:DSS.(DESCRIBE YOU PROGRAM)
:MSN.LB.SIM.SS.{0}
:DLG.CP.(Welcome to YOURPROGRAM installer press enter)//ENTER//
:IF[ASM FILE OR APP OR PROGRAM THAT YOU MESSES WITH YOURS]-FE
:/SS/
:{0}=={010101010101010101010101010...}
::END
:ASM{HEXCODE}.ASM 'this is a comment for yourself to show what it does say delete another prgm'
:FILE->.ASM 'forces the installer to create a ASMprgm and separates the file'
:LOC.* 'lock all'
:UID.* 'unhides all'
:'end of install file'
OK what does this do? JUST like AXE parser turns the commands into ASM this turs the commands in to ASM and or TI-BASIC
output for DSS. would be DISP "DESCRIBE YOUR PROGRAM" and the like.
The only thing is how to do this and would this work?
I can see this as a replacement for readme's and the like, also not just for games.
also i found this stuff http://www.ti.com/lit/ug/spru513f/spru513f.pdf  http://www.ti.com/lit/ug/slau157z/slau157z.pdf   
*wondering if it is useful???
Title: Re: Basic Specialized IDE for making Installs and the like
Post by: SpiroH on October 29, 2013, 01:40:35 pm
I guess i can understand your point.
Quote from: josh landers
Quote
BTW, what's your (nice) target programming platform that allows TI-BASIC and ASM mixing?
Not sure what you mean...
My question was/is as simple as this: what machine/calculator are you targeting? (must be some TI machine  :-\). You can't take for granted that mixing BASIC and Assembly is supported by all platforms. Unfortunately that is not always the case (eg HP Prime only supports HP BASIC). BTW, if someone is interested, more about 'Mixing Assembly with Basic' can be found, for instance, here: ftp://ftp.whtech.com/programming/Assembler/IntroToALForTheTIHomeComputer.pdf
Thanks for the PDFs they can be useful.
Title: Re: Basic Specialized IDE for making Installs and the like
Post by: Hayleia on October 29, 2013, 01:58:00 pm
My question was/is as simple as this: what machine/calculator are you targeting? (must be some TI machine  :-\). You can't take for granted that mixing BASIC and Assembly is supported by all platforms.
I guess it is about z80 calcs since BatLib was mentionned. And mixing Basic and ASM is granted in some way.
Title: Re: Basic Specialized IDE for making Installs and the like
Post by: Streetwalrus on October 29, 2013, 01:58:06 pm
The TI z80 (and probably also 68k) familiy(/es) allow you to do mix both (a BASIC prog can call an ASM prog but you can't officially have it inline).
Title: Re: Basic Specialized IDE for making Installs and the like
Post by: tpt1234567890 on October 29, 2013, 05:47:29 pm
i wish that TI 84s could run ASM codes inside a BASIC program...
Title: Re: Basic Specialized IDE for making Installs and the like
Post by: josh landers on October 29, 2013, 06:35:33 pm
I am talking ti-84 + and that have 2.55mp. Thanks for clarifying.
ASM. { AFAFAF}.ASMFIL command will cause the following...
1.the name of the asm, ASMFIL, is the name of the asmprgm to be made
2. Makes this and calls it in the install.
3.optional command ASMFILE→ASM will compile and compress the code.

I see why people are kinda confused. Well inline asm is not available for ti-basic... perhaps a lib needs to be made to allow it...
Also I am working at the commands list. Update for the axe source it now has input and  the cammand for this is output (2, 1, input) cool but how does one make it more CLI like? Small text how do I do this as well?
Title: Re: Basic Specialized IDE for making Installs and the like
Post by: tpt1234567890 on November 01, 2013, 04:55:54 pm
I dont think its possible to make the text smaller, unless you make a program for it, and run it as part of the whole program you are making...
Title: Re: Basic Specialized IDE for making Installs and the like
Post by: Streetwalrus on November 01, 2013, 06:20:07 pm
Omnicalc has a feature to put inline asm but you need to have the app installed.
Title: Re: Basic Specialized IDE for making Installs and the like
Post by: josh landers on November 01, 2013, 06:52:09 pm
Ok update:
I am basing this off of Terminal 4.4.1 and calling it CMDEV 0.0.05
all the commands are the same but some parts of the code have been removed.
I am in the process of changing the commands to new ones.
When this is done it will be version 0.0.1
Commands:
RUN?    runs programs
INFO?   Shows version info
HELP?  Shows commands
Title: Re:
Post by: Streetwalrus on November 01, 2013, 07:01:24 pm
I don't really understand what you wanna do anymore. :/
Title: Re: Re: Basic Specialized IDE for making Installs and the like
Post by: DJ Omnimaga on November 01, 2013, 10:06:07 pm
This project would be kinda handy for Basic programs that has like 20 sub-files, although Iambian already did something like this before. What would be definitively cool is if the installer would be able to install/enable Batlib, Celtic III and such other lib for the user. I think Iambian's program was for games like The Reign of Legends 3, which often come in group (8xg) files.
Title: Re: Basic Specialized IDE for making Installs and the like
Post by: josh landers on November 02, 2013, 09:25:18 am
Yup that's the idea. But the more advanced thing will be down the road.
I think the program your thinking of is Athena Packer. But that required that the programmer had compressed the file and the user had Athena aswell. The profram I'm trying to make would only require that you have sufficient memory.
Title: Re: Basic Specialized IDE for making Installs and the like
Post by: josh landers on November 02, 2013, 12:13:13 pm
 I have made the commands list! ;D ;D
Code: [Select]
CLI Commands---
HELP? This will show available commands for use.
INFO? This will show CMDEV information.
SHELL? This opens the shell, allowing you to use RUN?
RUN?  This will allow you to open a ti-basic program and run it.

FUTURE CMDEVedit COMMANDS---

Headers=

I. is an install header
U. is an uninstall header
P. is a patch file header

Program description=

FM.(  this is to put the name of the programmer
FM[1-3]. Is for three more programmers
CFM.( this is to put your contact info
DSS.( this is the dialog command usage below
DSS.(text here),# where the number is the order to display in.

Manipulation of info=

MSN. Is the MainScreeN command where you define the following-
    LB. the loading bar command, if you want one-
      SIM. A simple loading bar
      FIL. A bar that fills
      BNC. A bar that bounces the contents (windows xp)
    SS.{64#} the Splash Screen command with 64 hex code sprites, {0} is white and {1} is black

DLG. More advanced dialog for prompting user input.
    CB.(text here),#  CheckBox command 
    YN.(text here),#  Yes or No command
    CP.(text)//button name//, # Custom Prompt

IF[ASM FILE OR APP OR PROGRAM]-(exit command)
   Exit commands are
        FE fast exit no save no dialog
SE Secure exit Save with no dialog
EE Empty Exit use /EE/ command at bottom of file
CE Custom exit same as above but this won’t save
KE Clean Exit Skip the exit and move on else CE

Labels and sub labels- used to change the outcome of a command.

/the command/
(For text)
+ For ti-basic commands
GAM+{grammar command}
BBC+{ BBC Basic command}
C2[Celtic II command]
C3{ Celtic III command} *note the difference
LIB.+.{command}.library name
:.AXE command
You end the instruction with ::END

ASM command, note the program already makes lock, unlock, hide, and unhide asm instructions.
 This is for when you need a little something special, like inverted text of turning the calculator
Off exc. also these are deleted after the program successfully installs or otherwise.

ASM.{hex opcode}.namehere
Optional commands
namehere->ASM.newname

Locking and unlocking-
During the install, all files need to be unlocked and unhidden
At the end of your file, you can re-hide/lock the files.

LOC. locks
UOC. unlocks
HID. hides
UID. unhides
 Use the name of the program in (), or a group of programs in [] or use * to do it to all files.
this is all i forsee happening in version 0.0.1
Title: Re: Basic Specialized IDE for making Installs and the like
Post by: josh landers on November 04, 2013, 05:49:24 pm
I should have version 0.0.1 out by the end of this week.  I have noticed a lot of shells being made recently and would like to clarify that I am not making a shell. Despite this being based off Terminal 4.4.1, it will be a ti-basic development app for programers with limited time on there hands to quickly market there programs. I don't forsee this being like Athena packer. So no compression tool. Just a basic file that graphicly displays the locking and hiding process.
End result of this is the user pressing install and three or more asm programs will lock the appropriate programs and complile your asm files aswell.
Title: Re: Basic Specialized IDE for making Installs and the like
Post by: ClrDraw on November 05, 2013, 11:27:18 am
Quote
i wish that TI 84s could run ASM codes inside a BASIC program...
They can, look up xeda's opcodes. If its not there than search "run basic" in the omnimaga search box from the home screen.
Title: Re: Basic Specialized IDE for making Installs and the like
Post by: josh landers on November 05, 2013, 07:07:37 pm
Uh no sure that that was the point.
Quote
i wish that TI 84s could run ASM codes inside a BASIC program...
They can, look up xeda's opcodes. If its not there than search "run basic" in the omnimaga search box from the home screen.

In Axe you have in line asm, ti-basic doesn't. You can only call it with asm (prgmASM).  Unless that is what you mean...  O.O
Title: Re: Basic Specialized IDE for making Installs and the like
Post by: ClrDraw on November 05, 2013, 07:48:00 pm
Disregard the "run basic" search, I misunderstood the question. But yeah, sadly you would have to use asm(prgmNAME) and have an opcode in prgmNAME  :(
Title: Re: Basic Specialized IDE for making Installs and the like
Post by: josh landers on November 05, 2013, 09:14:55 pm
Saddly indeed! However it is a nifty tool, if one can use it correctly... took a few ram clears to work that out...