Rather than writing a whole new system, I think I'll see about porting Kuda's FastRPL. It's mostly complete, and I expect it works quite well.
But will that allow for on calc programing?
TheStorm wrote:
But will that allow for on calc programing?


yes, just has a few bugs left at this point.


@Tari: that takes up A LOT of pages.
I went on a debugging spree a week or so ago. I now displays things correctly.

Things to do before a usable release:
Linking - TI-OS protocol, send/recieve variables
Memory - test/debug all memory management

And an obligatory screenshot (from PTI):


Oh, here's the meat of the code, too:

Code:

.org 0064h
;OS version string
   .db LIFOS_VER,0

.include "Source/macros.asm"

OS_MAIN:
   set CharToBuf,(IY+flag(intFlags))
   call clrLCD
   
   ld l,8
   call horizLine
   ld l,64-13
   call horizLine
   
   ld hl,$3400
   ld (xyCoords),hl
   ld hl,URLPlug
   call sPutS

   ld hl,0
   ld (xyCoords),hl
   ld hl,$0064
   call putS
   
   ld hl,$0900
   ld (xyCoords),hl
   ld hl,TI8x
   call sPutS

   call getHardVersion
   ld l,a
   ld h,0
   add hl,hl   ;2x
   ld e,l
   ld d,h
   add hl,hl   ;4x
   add hl,de   ;6x
   ld de,modelStrs
   add hl,de
   call sPutS
   
   ld hl,$0F00
   ld (xyCoords),hl
   ld hl,bootVer
   call sPutS
   
   ld a,$1F
   out (6),a
   ld hl,$400F
   call sPutS

_putLogo:
   ld hl,dispBuf+(12*18)+9
   ld ix,LIFOSLogo
   ld de,10
   ld b,24
_logoLoop:
   ld a,(ix)
   ld (hl),a
   inc ix
   inc hl
   ld a,(ix)
   ld (hl),a
   inc ix
   inc hl
   ld a,(ix)
   ld (hl),a
   inc ix
   add hl,de
   djnz _logoLoop
   
   call bufCopy
   jr $

TI8x:
   .db "TI-8",0
modelStrs:
   .db "3+   ",0
   .db "3+ SE",0
   .db "4+   ",0
   .db "4+ SE",0
URLPlug:
   .db "HTTP://LIFOS.SF.NET/ FOR",$D
   .db "UPDATES AND NEWS.",0
bootVer:
   .db "BOOT CODE ",0
LIFOSLogo:
   .db %01111111,%11111111,%11111110
   .db %11111111,%11111111,%11111111
   .db %11100000,%00000000,%00000111
   .db %11001111,%11111111,%11110011
   .db %11011111,%11111111,%11111011
   .db %11011111,%11111111,%11111011
   .db %00000000,%00000000,%01111011
   .db %11111111,%11111111,%01111011
   .db %10000000,%00000001,%00000000
   .db %10100000,%10001101,%11111111
   .db %10100000,%00001000,%00000001
   .db %10100001,%10011101,%11011101
   .db %10100000,%10001001,%01010001
   .db %10111101,%11001001,%11011101
   .db %10000000,%00000000,%00000101
   .db %11111111,%11111111,%10011101
   .db %00000000,%00000000,%10000001
   .db %11011111,%11111110,%11111111
   .db %11011111,%11111110,%00000000
   .db %11001111,%11111111,%11111011
   .db %11100000,%00000000,%00000011
   .db %11111111,%11111111,%11111111
   .db %11111111,%11111111,%11111111
   .db %01111111,%11111111,%11111110
Nicely done, Tari; I wasn't aware you were still working on this.
Yeah he still working on it once he has a working version he plans to load it on our teachers view screen calc and see how she reacts. OH I don't know if Tari mentioned it but he is planing to use RPN for his main math setup and use a modified emu8x to allow for people to run tios programs.
hey! that's really cool. good work Smile


[edit]

btw, are you on the Vera mailing list? we have a couple tools that will generate documentation for your assembly routines.
When can I use it to surf for pr0n? 'Till then, don't care. Razz

No, but seriously, looks good - nice job.
Thanks, guys. Good to see people taking some interest in this.

I'm not on the Vera mailing list, but if I wanted to auto-gen documentation, I suppose I could hack together a tool for it pretty quick.
Well, I've been rather busy with the repository and web site.

Thanks to Glenn, there's now a working CMS up at http://lifos.sourceforge.net/. I just finished restructuring the codebase (inspired by Vera- I really liked how their repository looked, and now it uses Brass to build (screw you, TASM!)), and switched from a CVS repository to subversion (or SVN, if you prefer).
nice work, how long until the usable release?
Depends on how lazy I am, and how much code I end up yanking from other projects (like.. the linking code, mainly).

Maybe a release that runs programs and links with a computer (no Flash support yet) by June?
word, can't wait to see that Very Happy
Well, obviously, I horribly missed my not-deadline of June. However, I squashed some more bugs tonight. You can probably expect version 0.1.0 (codename "zTrisOS" Razz) within the next week.

Of course, it'll only run on a vanilla 83+ for now- but if I'm feeling inspired I can build a couple binaries for the other models as well.
Ooh, this sounds like a great project! I'd be more than willing to help with coding!
Good stuff, Tari; I look forward to the alpha release. You're welcome to any DCS routines that might be helpful.
Well taken, although for some reason I don't think many of them will be very helpful, seeing as DCS is a TI-OS app. Smile
I'll look into that for linking, though.
*nudge*
Got createVar and runProg fully working (well, runProg only handles vars of type VtProgNRP, but FRPs are easy and DRP handling is in the works- also I haven't implemented the dependency system) tonight, so now it's on to porting zTris and maybe adding support to my main display routines for writing directly to the display.


Code:

OS_MAIN:
   ;ld a,1
   ;out (6),a
   ;jp MUI_MAIN
   call clrLCD
   ld hl,varName
   call mov11ToOPN
   ld hl,testEnd-testHeader
   call createVar
   ld de,testHeader
   ex de,hl
   ld bc,testEnd-testHeader
   ldir
   call runProg
   jr c,$
   jr $
   
varName:
   .db VtProgNRP,"TEST PROG "
testHeader:
   .db 0, 0, 0
testCode:
   ld hl,$8100+((testMsg-testHeader)+2)
   call sPutS
   call bufCopy
   ret
testMsg:
   .db "HAY GUYS :D",0
testEnd:

And most of my variable-related documentation thus far:

Code:

;;Program var types:
;;Unrelocatable (NRP):
;;   Assembled to run only from $8100 in RAM
;;Fully relocatable (FRP):
;;   May be run from anywhere in RAM (uses relative references only)
;;DRP (dynamically relocatable)::
;;   May be run from anywhere in RAM, but must first be dynamically modified by the OS
;;   to account for absolute data references.
;;
;;VAT entry spec:
;;   type | 1
;;   page | 1
;;   addr | 2
;;   name | 10
;;Program header spec:
;;   size    | 2            | $0100      ;system relies on this for var management, and will handle it as needed
;;   dataptr | 2            | $14E3      ;offset from program start to the data segment (only exists in DRP headers)
;;   numdeps | 1            | (%011 << 5)+1   ;numdeps is enforced within depstrs
;;   depstrs | 0+(10*numdeps)   | "<StdLib>  "   ;defines library dependencies
;;   version | 2            | 0,20      ;minimum OS version required
Looks sweet! Great job! Smile
Well done, Tari, I look forward to the 0.1.0 "ZTris OS" LifOS release.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 4 of 5
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement