Fair enough.
hangon, how do you close out an OS? Do you like, setup an on-key interrupt and turnoff the lcd or what?
How you "exit" is for you to decide. When the batteries hit the calc, the screen is turned off. You need to turn it on. The calculator also does not wait for ON to be pressed to start executing. The moment the batteries hit it, it starts running, so you should sleep until the ON key is pressed.
Yes. Here's my sleep routine from KOS:
Code:
Code:
Sleep:
ld a, 2
out (10h), a ; Disable LCD
di ; And interrupts, for now
im 1 ; interrupt mode 1, for cleanliness
ei ; Enable interrupting when ON is pressed
ld a, 1h
out (03h), a ; ON
halt ; and halt :)
ld a, 0Bh ; Reset the interrupts
out (03h), a
ld a, 3
out (10h), a ; Enable the screen
ret
Thanks, that save me some time.I think i might add an On and off table about 4 bytes in size.like...
Code:
Then people can just write the location of their offscripts and onscripts there to work.
Code:
.dw On-Routine
.dw Off-Routine
Then people can just write the location of their offscripts and onscripts there to work.
I just tryed compiling and got an error saying LCDDelay wasnt defined, do i just do...
Code:
or am i wrong here?
Code:
LCDDelay:
nop
nop
ret
or am i wrong here?
before i retry the compile, i do type
Code:
to initializ the stack before the programcode?
Code:
ld sp,$FFFF
SP is decremented before storing data on the stack, so ld sp,0 would save a byte of RAM (unless you were storing something else at $FFFF).
Rather than rely on a fixed delay between LCD accesses (which can break with slower drivers or when the calculator is running at 15MHz) consider polling the LCD's busy flag (bit 7 of I/O port $10; set if the LCD is busy, cleared otherwise):
Code:
Rather than rely on a fixed delay between LCD accesses (which can break with slower drivers or when the calculator is running at 15MHz) consider polling the LCD's busy flag (bit 7 of I/O port $10; set if the LCD is busy, cleared otherwise):
Code:
busy:
in a,($10)
rla
jr c,busy
Actually, port (4) tells which interrupt(s) was/were triggered. Port (3) is the interrupt mask. To acknowledge an interrupt (so it won't be immediately taken after the next EI), you must reset the corresponding port (3) bit and then set it again.
I thought I'd share this script I use to compile my programs, apps, and os's...
Code:
just so you know, rabbit is rabbitsign, wabbit is wabbitsign, and bin2hex is bintointelhex taken from the appdev pack found at ticalc.org.The Os's compile and sign but you get a warning with something about the page header.of course i'm not a hundred percent sure whether or not its compiled complete right as i cant figure out how to compile a rom image to emu with :/
Code:
@echo off
set PATH=%cd%;%PATH%
cd /d %~dp1
set out=%2
if #%2==# set out=%~n1.8xp
brass %1
if /I %out:~-3%==hex goto CompOS
if /I %out:~-3%==8xu goto CompOS
wabbit %~n1.bin %out%
goto Done
:CompOS
bin2hex -o %~n1.hex -s0x0000 -p0 %~n1.bin
if /I %out:~-3%==hex del *.bin* & exit
packxxu %~n1.hex -o %~n1.8xu -t 83p -q 04 -v 0.01 -h 255
rabbit -t 8xu -k 05.key -K 05 -g -p -r %~n1.8xu
del %~n1.8xu
ren %~n1-signed.8xu %~n1.8xu
:Done
rem if exist *.bin* del *.bin*
if exist *.hex* del *.hex*
just so you know, rabbit is rabbitsign, wabbit is wabbitsign, and bin2hex is bintointelhex taken from the appdev pack found at ticalc.org.The Os's compile and sign but you get a warning with something about the page header.of course i'm not a hundred percent sure whether or not its compiled complete right as i cant figure out how to compile a rom image to emu with :/
calc84maniac wrote:
Actually, port (4) tells which interrupt(s) was/were triggered. Port (3) is the interrupt mask. To acknowledge an interrupt (so it won't be immediately taken after the next EI), you must reset the corresponding port (3) bit and then set it again.
Whoops, did I say Port 3? I blame all the stuff that was happening yesterday for momentarily discombobulating me.
If you have a .hex file (not just a renamed .bin file ) you can use Hex2Rom. If you are using ZDS, a .hex file is created automatically. With Brass, there may be an option to do this. I can also look into making a Bin2Rom program.
What are the args for that?Can you show me how to convert a .hex to a .rom through the command line?
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
» Go to Registration page
» Goto page Previous 1, 2, 3, 4, 5 Next
» View previous topic :: View next topic
» View previous topic :: View next topic
Page 3 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
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