0 Members and 1 Guest are viewing this topic.
| print the FP type using the current FP condition codesprintfptype: movem.l %a0-%a3,-(%sp) | test for nan fbngle 1f | NGLE = not greater, less, or equal | test for zero/not zero fbneq 2f | NEQ = not equal pea.l 4f | 0 bra 3f2: pea.l 5f | x0: bra 3f1: pea.l 9f | nan | test for sign (doesn't recognize negative zero)3: fblt 2f | LT = less than pea.l 7f | + bra 0f2: pea.l 6f | -0: pea.l 8f jbsr printf lea.l (3*4,%sp),%sp movem.l (%sp)+,%a0-%a3 rts4: .asciz "0"5: .asciz "x"6: .asciz "-"7: .asciz "+"8: .asciz "%s%s\n"9: .asciz "nan"| here is the main entry point for the demo| fputest() is called from a user-space driver program .global fputestfputest: move #-5,%d0 | %Dn.b fneg.b %d0,%fp0 bsr printfptype | (d16,%pc) fneg.x (11f,%pc),%fp1 bsr printfptype | (An) lea 11f,%a3 fneg.x (%a3),%fp2 bsr printfptype | (An)+ fneg.x (%a3)+,%fp3 bsr printfptype fneg.x (%a3)+,%fp4 bsr printfptype fneg.x (%a3)+,%fp5 bsr printfptype fneg.l (%a3)+,%fp6 bsr printfptype fneg.l (%a3)+,%fp7 bsr printfptype fneg.w (%a3)+,%fp0 bsr printfptype fneg.w (%a3)+,%fp1 bsr printfptype fneg.b (%a3)+,%fp2 bsr printfptype fneg.b (%a3)+,%fp3 bsr printfptype | -(An) fneg.b -(%a3),%fp4 bsr printfptype fneg.b -(%a3),%fp5 bsr printfptype fneg.w -(%a3),%fp6 bsr printfptype fneg.w -(%a3),%fp7 bsr printfptype fneg.l -(%a3),%fp0 bsr printfptype fneg.l -(%a3),%fp1 bsr printfptype rts11: .long 0x7fffffff,0x40000000,0x00000000 | nan12: .long 0x7fffffff,0x00000000,0x00000000 | +inf .long 0xffffffff,0x00000000,0x00000000 | -inf13: .long 7 .long -7 .word 5 .word 0 .byte 3 .byte 0
Interesting, and nice to see there are still people who use 68K calculators. Until recently only me, Ranman and TC01 used them here. Unfortunately I'm ASM/C/Unix-illiterate so I would probably not understand how to use this much, but hopefully this might be useful for other people. Will the OS be able to run some 68K games on ticalc.org in the future?
Also welcome on the forums. For some reasons, I believe I saw your nickname somewhere, but that was a while ago...
11: .long 0x7fff0000,0x40000000,0x00000000 | nan .long 0x00000000,0x00000000,0x00000000 | ?? (packed decimal)12: .long 0x7ff80000,0x00000000 | nan (double) .long 0x40450000,0x00000000 | 42 (double) .long 0x7fc00000 | nan (single) .long 0x42280000 | 42 (single) .long 42 .word 42 .byte 0
Hi Christopher Nice to see you registering on Omnimaga, and to see you working on new stuff for Punix.
Quote from: DJ_O on February 26, 2011, 02:23:58 pmInteresting, and nice to see there are still people who use 68K calculators. Until recently only me, Ranman and TC01 used them here. Unfortunately I'm ASM/C/Unix-illiterate so I would probably not understand how to use this much, but hopefully this might be useful for other people. Will the OS be able to run some 68K games on ticalc.org in the future?Punix probably will not be able to run any applications that were designed for TI-AMS (TI's OS). It's basically a new OS from scratch (with some bits of low-level code from PedroM, though), so it won't be compatible with TI-AMS. It may be possible to write a TI-AMS emulator for it (kind of like Wine for running Windows applications in Linux), but I'm not too concerned about it at this point.QuoteAlso welcome on the forums. For some reasons, I believe I saw your nickname somewhere, but that was a while ago...Nope, I think I tried registering on this site a few years ago but never completed the registration for some reason.
* win32 changes: config.guess, gcc/config/i386/xm-mingw32.h, gcc/gcc.c, libcpp/files.c* fiddling with default attributes: gcc/attribs.c, gcc/c-common.c, gcc/c-common.h, gcc/c-decl.c, gcc/c-lang.c, gcc/c-tree.h, gcc/langhooks-def.h, gcc/langhooks.h, gcc/system.h* changes to the GCC built-in functions, among which is __builtin_ER_throw: gcc/builtin-attrs.def, gcc/builtins.c, gcc/builtins.def* stkparm / regparm parameter passing: gcc/builtins.c, gcc/c-decl.c, gcc/config/m68k/m68k.c, gcc/config/m68k/m68k.h, gcc/config/m68k/m68k-protos.h, gcc/c-parser.c, gcc/c-tree.h, gcc/function.c, gcc/function.h* SMAP II BCD support: gcc/c-cppbuiltin.c, gcc/c-format.c, gcc/combine.c, gcc/config/m68k/m68k.md, gcc/config/m68k/m68k-modes.def, gcc/config/m68k/predicates.md, gcc/config/smapbcd.h, gcc/config.gcc, gcc/convert.c, probably gcc/c-pretty-print.c, gcc/dwarf2out.c, gcc/emit-rtl.c, probably gcc/explow.c, gcc/expr.c, gcc/final.c, gcc/fold-const.c, gcc/genmodes.c, gcc/machmode.def, gcc/optabs.c, gcc/output.h, gcc/print-rtl.c, gcc/print-tree.c, gcc/real.c, gcc/real.h, gcc/rtlanal.c, gcc/simplify-rtx.c, gcc/tree.c, gcc/tree-pretty-print.c, gcc/varasm.c* global cast constructors / compound literals: gcc/c-decl.c, gcc/common.opt, gcc/flags.h, gcc/varasm.c* -fno-function-cse changes: gcc/cfgexpand.c, gcc/gimplify.c, gcc/tree-ssa-dom.c, gcc/tree-ssa-pre.c* kill global include paths, usage of environment variables, hard-coded prefixes, etc.: gcc/c-incpath.c, gcc/c-opts.c, gcc/cppdefault.c, gcc/gcc.c* changes related to forward or backslashes in paths: gcc/c-incpath.c, gcc/toplev.c* multi-line strings: probably gcc/c-lex.c, probably gcc/c-ppoutput.c, libcpp/internal.h, libcpp/lex.c* constant pools, section merging, moving stuff between bss/data/rodata: gcc/common.opt, gcc/config/m68k/m68k.c, gcc/config/m68k/m68k.h, gcc/config/m68k/m68k.md, gcc/config/m68k/m68k-none.h, gcc/config/m68k/m68k.opt, gcc/config/m68k/m68k-ti.h, gcc/flags.h, gcc/varasm.c* register-relative addressing & global register variables: gcc/common.opt, gcc/config/m68k/m68k.c, gcc/config/m68k/m68k.h, gcc/config/m68k/m68k.md, gcc/final.c, gcc/gcse.c, gcc/ifcvt.c, gcc/opts.c* default to not initializing the BSS section: gcc/common.opt* debugging support: maybe gcc/config/dbxcoff.h, gcc/config/m68k/m68k.c, gcc/dwarf2.h, gcc/dwarf2out.c, gcc/toplev.c, gcc/varasm.c* OPTIMIZE_ROM_CALLs: gcc/config/m68k/m68k.c* no long branches: gcc/config/m68k/m68k.c + external patcher (with a "FIXME: should be moved to GCC")* platform-specific changes such as greater optimization, or different printf/scanf/memset/etc., or peepholes: gcc/c-format.c, gcc/config/m68k/m68k.c, gcc/config/m68k/m68k.h, gcc/config/m68k/m68k.md, gcc/config/m68k/m68k-none.h, gcc/config/m68k/m68k.opt, gcc/config/m68k/m68k-ti.h, gcc/config/m68k/predicates.md, gcc/expr.c, gcc/opts.c, gcc/postreload.c, gcc/stmt.c, gcc/tree-object-size.c* no-auto-octals: gcc/c.opt, gcc/c-opts.c, libcpp/include/cpplib.h, libcpp/init.c* changes to default warnings: gcc/c-decl.c -> what with "Each undeclared identifier is reported only once" ?, gcc/c-opts.c* reverting the removal of casts-as-lvalues: gcc/c-parser.c, gcc/c-typeck.c, gcc/tree.h* gcc/c-pretty-print.c -> what's the second hunk ?* reference the TIGCC infrastructure which does not make public the bug report content: gcc/diagnostic.c, gcc/version.c* a warn_unused_result-related change: gcc/gimplify.c* a patch related to using hard register variables as an asm input: gcc/loop.c* gcc/sdbout.c -> ?* inlining-related fix: gcc/tree-inline.c* a change without comments in gcc/tree-ssa-ccp.c* pragma poison (why ?): libcpp/directives.c* binary numbers (0b...) support: libcpp/expr.c* SYMSTR optimization: libcpp/macro.c
Ah ok thanks for the info. I guess someone could write an emulator later maybe, but if there are games that don't use a single AMS command or whatever they are called on 68K calculators I bet they wouldn't be too hard to port.Also I assume of of your goal for this OS will be a much smaller file size than TI-AMS to give as much free RAM/archive as possible to the user? I wonder how much flash memory does a TI-89 and a TI-89T has in total...
As for the site, I guess you probably signed up on the other Omnimaga board back in 2006-07 but never posted. I remember at one point we had registrations disabled, though, because of spambots, then later we added a different registration step to block them, while still allowing people to sign up, but some people would never complete it. I think I might have seen you in #tcpa or something, too.
Would I be correct in presuming that these FP numbers conform to IEE 754 standards if they can return NaN?
I've tried to compile it once, but I failed (probably I did something stupid). The screenshot show that you have already written a shell for it, which makes me even more happy
Currently defined functions: [, [[, add-shell, addgroup, adduser, ar, awk, base64, basename, bbconfig, blockdev, bootchartd, bunzip2, bzcat, bzip2, cal, cat, catv, chat, chattr, chgrp, chmod, chown, chpasswd, chpst, chroot, chrt, cksum, clear, cmp, comm, cp, cpio, crond, crontab, cryptpw, cttyhack, cut, date, dc, dd, delgroup, deluser, devmem, df, diff, dirname, dnsd, dnsdomainname, dos2unix, dpkg, dpkg-deb, du, echo, ed, egrep, env, envdir, envuidgid, expand, expr, fakeidentd, false, fgrep, find, flashcp, flock, fold, fsck, fsck.minix, fsync, ftpd, ftpget, ftpput, fuser, getopt, getty, grep, gunzip, gzip, halt, hd, head, hexdump, hostid, hostname, httpd, hush, id, ifdown, ifup, inetd, init, inotifyd, install, iostat, ipcalc, ipcrm, kill, killall, killall5, klogd, last, length, less, linuxrc, ln, logger, login, logname, logread, lpd, lpq, lpr, ls, lspci, lsusb, lzcat, lzma, lzop, lzopcat, makedevs, makemime, man, md5sum, mesg, microcom, mkdir, mkfifo, mknod, mkpasswd, mkswap, mktemp, more, mountpoint, mpstat, msh, mt, mv, nbd-client, nc, nice, nmeter, nohup, nslookup, od, passwd, patch, pgrep, pidof, pipe_progress, pkill, pmap, popmaildir, poweroff, powertop, printenv, printf, ps, pscan, pwd, rdate, rdev, readlink, readprofile, realpath, reboot, reformime, remove-shell, renice, reset, resize, rev, rm, rmdir, rpm, rpm2cpio, run-parts, runlevel, runsv, runsvdir, script, scriptreplay, sed, sendmail, seq, setsid, setuidgid, sh, sha1sum, sha256sum, sha512sum, sleep, smemcap, softlimit, sort, split, start-stop-daemon, strings, stty, su, sulogin, sum, sv, svlogd, sync, sysctl, syslogd, tac, tail, tar, taskset, tcpsvd, tee, telnet, telnetd, test, tftp, tftpd, time, timeout, top, touch, tr, true, tty, ttysize, udpsvd, uname, uncompress, unexpand, uniq, unix2dos, unlzma, unlzop, unxz, unzip, usleep, uudecode, uuencode, vi, vlock, volname, wall, watch, wc, wget, which, who, whoami, xargs, xz, xzcat, yes, zcat