init commit

there are jigs in the water supply
This commit is contained in:
MallocNull 2014-02-02 19:06:33 -06:00
commit f95ff516e6
70 changed files with 4543 additions and 0 deletions

22
.gitattributes vendored Normal file
View file

@ -0,0 +1,22 @@
# Auto detect text files and perform LF normalization
* text=auto
# Custom for Visual Studio
*.cs diff=csharp
*.sln merge=union
*.csproj merge=union
*.vbproj merge=union
*.fsproj merge=union
*.dbproj merge=union
# Standard to msysgit
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain

215
.gitignore vendored Normal file
View file

@ -0,0 +1,215 @@
#################
## Eclipse
#################
*.pydevproject
.project
.metadata
bin/
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.classpath
.settings/
.loadpath
# External tool builders
.externalToolBuilders/
# Locally stored "Eclipse launch configurations"
*.launch
# CDT-specific
.cproject
# PDT-specific
.buildpath
#################
## Visual Studio
#################
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
# User-specific files
*.suo
*.user
*.sln.docstates
# Build results
[Dd]ebug/
[Rr]elease/
x64/
build/
[Bb]in/
[Oo]bj/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
*_i.c
*_p.c
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.log
*.scc
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile
# Visual Studio profiler
*.psess
*.vsp
*.vspx
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# NCrunch
*.ncrunch*
.*crunch*.local.xml
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.Publish.xml
*.pubxml
# NuGet Packages Directory
## TODO: If you have NuGet Package Restore enabled, uncomment the next line
#packages/
# Windows Azure Build Output
csx
*.build.csdef
# Windows Store app package directory
AppPackages/
# Others
sql/
*.Cache
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.[Pp]ublish.xml
*.pfx
*.publishsettings
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file to a newer
# Visual Studio version. Backup files are not needed, because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# SQL Server files
App_Data/*.mdf
App_Data/*.ldf
#############
## Windows detritus
#############
# Windows image file caches
Thumbs.db
ehthumbs.db
# Folder config file
Desktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Mac crap
.DS_Store
#############
## Python
#############
*.py[co]
# Packages
*.egg
*.egg-info
dist/
build/
eggs/
parts/
var/
sdist/
develop-eggs/
.installed.cfg
# Installer logs
pip-log.txt
# Unit test / coverage reports
.coverage
.tox
#Translations
*.mo
#Mr Developer
.mr.developer.cfg

BIN
Wabbitemu.exe Normal file

Binary file not shown.

41
build.bat Normal file
View file

@ -0,0 +1,41 @@
@echo off
cd src\00
..\..\tools\spasm base.z80 -DPRIVPAGE=$1C -DRAMMASK=$40
..\..\tools\spasm base.z80 ..\..\0083a.hex -DPRIVPAGE=$1c -DRAMMASK=$40
..\..\tools\spasm base.z80 ..\..\0084a.hex -DPRIVPAGE=$3c -DRAMMASK=$80
..\..\tools\spasm base.z80 ..\..\00SEa.hex -DPRIVPAGE=$7c -DRAMMASK=$80
cd ..\..\
more +1 0083a.hex > 0083.hex
more +1 0084a.hex > 0084.hex
more +1 00SEa.hex > 00SE.hex
cd src\01
..\..\tools\spasm base.z80
..\..\tools\spasm base.z80 ..\..\01a.hex
cd ..\..\
more +1 01a.hex > 01.hex
cd src\privledged
..\..\tools\spasm base.z80
..\..\tools\spasm base.z80 ..\..\priva.hex
cd ..\..\
more +1 priva.hex > priv.hex
tools\multihex 00 0083.hex 01 01.hex 1c priv.hex > os83.hex
tools\packxxu os83.hex -o os83.8xu -t 83p -q 04 -v 0.01 -h 255
tools\rabbitsign -t 8xu -k tools\keys\04.key -K 04 -g -p -r os83.8xu
tools\multihex 00 0084.hex 01 01.hex 3c priv.hex > os84.hex
tools\packxxu os84.hex -o os84.8xu -t 83p -q 0A -v 0.01 -h 255
tools\rabbitsign -t 8xu -k tools\keys\0A.key -K 0A -g -p -r os84.8xu
tools\multihex 00 00SE.hex 01 01.hex 7c priv.hex > osSE.hex
tools\packxxu osSE.hex -o osSE.8xu -t 83p -q 0A -v 0.01 -h 255
tools\rabbitsign -t 8xu -k tools\keys\0A.key -K 0A -g -p -r osSE.8xu
del os83.8xu
del os84.8xu
del osSE.8xu
del *.hex
del *.bin*

BIN
documentation.docx Normal file

Binary file not shown.

BIN
os83-signed.8xu Normal file

Binary file not shown.

BIN
os84-signed.8xu Normal file

Binary file not shown.

BIN
osSE-signed.8xu Normal file

Binary file not shown.

BIN
src/00/base.bin Normal file

Binary file not shown.

33
src/00/base.z80 Normal file
View file

@ -0,0 +1,33 @@
.org $0000
#define SYSPROG $2000 ; todo figure out if i can decrease this later
#define SYSRESERVE $8000
#define FREEMEM $9000
#define PROGRAMRESERVE $D000
#define STACKRESERVE $F000
#define SCREENBLOCK $8000
#define SCREENPTR $8000+(16*8)
#define KEYBUF $8200
#define CLOCK $8C00
#define CAPS $8AAA
#define NUMS $8AAB
#include "header.z80"
#include "interrupts.z80"
#include "kernel.z80"
#include "utils.z80"
#include "display.z80"
#include "memory.z80"
#include "filesystem.z80"
#include "keyboard.z80"
#include "characters.z80"
.fill SYSPROG-$, $ff
; system programs
#include "dir.z80"
#include "cp.z80"
#include "cls.z80"
#include "sleep.z80"
#include "shutdown.z80"
#include "cd.z80"

21
src/00/cd.z80 Normal file
View file

@ -0,0 +1,21 @@
ChangeDirStart:
.db $BB
.dw EndChangeDir-ChangeDir
.db "cd.exe", 0
.fill (ChangeDirStart + 24)-$
.org $D000
ChangeDir:
pop hl
cp 1
jp nz, cderr
ret
cderr:
ld hl, errmsg
call PrintString
ret
errmsg:
.db "Invalid params", 10
.db "Syntax:", 10
.db " cd A:-Z:", 0
EndChangeDir:

2308
src/00/characters.z80 Normal file

File diff suppressed because it is too large Load diff

11
src/00/cls.z80 Normal file
View file

@ -0,0 +1,11 @@
ClearStart:
.db $BB
.dw EndClear-Clear
.db "cls.exe", 0
.fill (ClearStart + 24)-$
.org $D000
Clear:
call ClearScreen
ret
EndClear:

10
src/00/cp.z80 Normal file
View file

@ -0,0 +1,10 @@
CopyStart:
.db $BB
.dw EndOfCopy-Copy
.db "cp.exe", 0
.fill (CopyStart + 24)-$
.org $D000
Copy:
ret
EndOfCopy:

49
src/00/dir.z80 Normal file
View file

@ -0,0 +1,49 @@
DirectoryListingStart:
.db $BB
.dw EndOfDirectoryListing-DirectoryListing
.db "dir.exe", 0
.fill (DirectoryListingStart + 24)-$
.org $D000
DirectoryListing:
ld hl, SYSPROG
DirectoryListingLoop:
ld a, (hl)
cp $BB
jp nz, DirectoryListingLoopContinue
push hl
ld hl, tmpbuf
ld b, 21
ld d, 0
DirectoryListingClearLoop:
ld (hl), d
inc hl
djnz DirectoryListingClearLoop
pop hl
inc hl \ ld e, (hl)
inc hl \ ld d, (hl)
inc hl
push de
push hl
ld de, tmpbuf
call strcpy
ld a, 10
dec de
ld (de), a
ld hl, tmpbuf
call PrintString
pop hl
pop de
adc hl, de
DirectoryListingLoopContinue:
xor a
or h
or l
inc hl
cp $80
jp nz, DirectoryListingLoop
ret
tmpbuf:
.block 21
EndOfDirectoryListing:

262
src/00/display.z80 Normal file
View file

@ -0,0 +1,262 @@
WaitForLCD:
push af
_wfl_loop:
in a, ($10)
bit 7, a
jp nz, _wfl_loop
pop af
ret
; clears the screen buffer
; no inputs, no outputs
ClearScreen:
call ClearScreenBuffer
call DrawScreenBuffer
ret
ClearScreenBuffer:
di
ld hl, SCREENBLOCK
ld (SCREENPTR), hl
ld (CLOCK+4), sp
ld sp, SCREENBLOCK+(16*8)
ld hl, $0000
ld b, 64
csbloop:
push hl
djnz csbloop
ld sp, (CLOCK+4)
ld a, $80
out ($10), a
call WaitForLCD
ld a, $20
out ($10), a
call WaitForLCD
ei
ret
; prints string specified by hl, then breaks the line
; inputs:
; hl: string ptr
PrintLine:
call PrintString
ld a, 10 \ ld ($8400), a
xor a \ ld ($8401), a
ld hl, $8400
call PrintString
ret
; toggles cursor
ToggleCursor:
ld hl, (SCREENPTR)
push de
ld de, SCREENBLOCK
ccf
sbc hl, de
inc hl
pop de
ld d, 16
call DivideHLD
ld c, a
push bc
push hl
pop de
ld a, 8
call MultiplyDEA
push hl
pop de
pop bc
ld a, $80
add a, e
out ($10), a
call WaitForLCD
ld a, $20
add a, c
out ($10), a
call WaitForLCD
ld a, ($8AED)
cp 1
jp nz, _
ld hl, cursor
ld b, 8
tconloop:
ld a, (hl)
out ($11), a
call WaitForLCD
inc hl
djnz tconloop
ld a, 0
ld ($8AED), a
ret
_:
ld hl, cursorblank
ld b, 8
tcoffloop:
ld a, (hl)
out ($11), a
call WaitForLCD
inc hl
djnz tcoffloop
ld a, 1
ld ($8AED), a
ret
cursor:
.db %111110
.db %111110
.db %111110
.db %111110
.db %111110
.db %111110
.db %111110
.db %000000
cursorblank:
.db 0
.db 0
.db 0
.db 0
.db 0
.db 0
.db 0
.db 0
.db 0
; prints a single character
; inputs:
; a: character
PrintChar:
ld ($8400), a
xor a \ ld ($8401), a
ld hl, $8400
call PrintString
ret
; prints string to current cursor position
; inputs:
; hl: string ptr
PrintString:
ld bc, (SCREENPTR)
psloop:
ld a, c
cp 128
jp z, psloadnewline
ld a, (hl)
cp 0
jp z, psexitloop
cp 10
jp z, pslinebreak
ld (bc), a
inc hl
inc bc
ld (SCREENPTR), bc
jp psloop
psloadnewline:
push hl
ld hl, SCREENBLOCK+16
ld de, SCREENBLOCK
ld bc, 16*7
ldir
ld hl, SCREENBLOCK+(16*7)
ld b, 16
ld a, $00
psloadnewlineloop:
ld (hl), a
inc hl
djnz psloadnewlineloop
ld bc, SCREENBLOCK+(16*7)
ld (SCREENPTR), bc
pop hl
jp psloop
pslinebreak:
ld a, c
cp 16
jp z, pslbexitloop
cp 32
jp z, pslbexitloop
cp 48
jp z, pslbexitloop
cp 64
jp z, pslbexitloop
cp 80
jp z, pslbexitloop
cp 96
jp z, pslbexitloop
cp 112
jp z, pslbexitloop
cp 128
jp z, pslbexitloop
inc bc
ld (SCREENPTR), bc
jp pslinebreak
pslbexitloop:
inc hl
jp psloop
psexitloop:
call DrawScreenBuffer
ret
DrawScreenBuffer:
di
ld c, 0
dsbreprow:
ld a, $80
out ($10), a
call WaitForLCD
ld a, $20
add a, c
out ($10), a
call WaitForLCD
ld hl, SCREENBLOCK
ld b, 0
add hl, bc
ld b, 8
dsbwriterow:
push hl
push af
push bc
push de
ld d, 0
ld e, (hl)
ld a, 8
call MultiplyDEA
ld bc, characterIndex
add hl, bc
ld b, 8
_dsblooper:
ld a, (hl)
out ($11), a
call WaitForLCD
inc hl
djnz _dsblooper
pop de
pop bc
pop af
pop hl
ld de, 16
add hl, de
djnz dsbwriterow
inc c
ld a, c
cp 16
jp nz, dsbreprow
ei
ret

166
src/00/filesystem.z80 Normal file
View file

@ -0,0 +1,166 @@
; loads a program from ROM into memory
; inputs:
; hl: file pointer
LoadProgram:
ld de, 23
ccf
sbc hl, de
ld a, (hl)
cp $BB
jp nz, LoadProgramError
inc hl \ ld e, (hl)
inc hl \ ld d, (hl)
ld bc, 21
ccf
adc hl, bc
ld bc, PROGRAMRESERVE
LoadProgramLoop:
ld a, (hl)
ld (bc), a
inc bc \ inc hl \ dec de
ld a, 0
or d
or e
cp 0
jp nz, LoadProgramLoop
LoadProgramError:
ret
; gets file pointer from file name
; inputs:
; hl: string ptr to file name
; outputs:
; hl: file ptr
; special conditions:
; hl is 0 when file is not found
FindFile:
ld de, SYSPROG
ld ($8300), hl
feloop:
ld a, (de)
cp $BB
jp nz, fecheckskip
push de
inc de \ ld a, (de) \ ld c, a
inc de \ ld a, (de) \ ld b, a
inc de
festrcmp:
ld a, (de)
cp (hl)
jp z, fecheckifmatching
pop de
push hl
push de
pop hl
ccf
adc hl, bc
ld bc, 23
ccf
adc hl, bc
dec hl
push hl
pop de
pop hl
ld hl, ($8300)
jp feloop
fecheckifmatching:
cp 0
inc de \ inc hl
jp nz, festrcmp
pop hl
ld bc, 23
ccf
adc hl, bc
ret
fecheckskip:
inc de
push hl
ld hl, $7fff
ccf
sbc hl, de
inc hl
xor a
or h
or l
cp 0
pop hl
jp nz, feloop
ld hl, 0
ret
; writes a buffer to flash memory
; inputs:
; de: location of buffer
; hl: location to write to
; bc: size of buffer
WriteFlashBuffer:
di
call LoadFlashWriterToRAM
wfbloop:
ld a, (de)
push af
push bc
push de
call $8500
pop de
pop bc
pop af
inc hl
inc de
dec bc
ld a, 0
or b
or c
cp 0
jp nz, wfbloop
ei
ret
; writes a byte to flash memory
; inputs:
; hl: location to write
; a: byte to write
WriteFlashByte:
di
call LoadFlashWriterToRAM
call $8500
ei
ret
LoadFlashWriterToRAM:
push hl
push bc
push de
ld hl, WriteFlashByteRAM
ld de, $8500
ld bc, WriteFlashByteRAMEnd-WriteFlashByteRAM
ldir
pop de
pop bc
pop hl
ret
WriteFlashByteRAM:
and (hl)
ld b, a
ld a, $AA
ld ($0AAA), a
ld a, $55
ld ($0555), a
ld a, $A0
ld ($0AAA), a
ld (hl), b
_:
ld a, b
xor (hl)
bit 7, a
jr z, WriteFlashByteRAMDone
bit 5, (hl)
jr z, -_
WriteFlashByteRAMDone:
ld (hl), $F0
ret
WriteFlashByteRAMEnd:

36
src/00/header.z80 Normal file
View file

@ -0,0 +1,36 @@
bootcode:
jp boot
.db "SK" ; magic number
.db $00 ; major ver
.db $01 ; minor ver
.db $00 ; calculator metadata, ignore for now
ret ; rst $08
.fill $10-$
ret ; rst $10
.fill $18-$
ret ; rst $18
.fill $20-$
ret ; rst $20
.fill $28-$
ret ; rst $28
.fill $30-$
ret ; rst $30
.fill $38-$
jp sysInt ; rst $38
.fill $53-$
jp boot
.db $FF, $A5, $FF
boot:
jp kernel

91
src/00/interrupts.z80 Normal file
View file

@ -0,0 +1,91 @@
sysInt:
di
exx
ex af, af'
in a, (4)
bit 0, a
jp nz, handleOn
bit 1, a
jp nz, handleTimer1
bit 2, a
jp nz, handleTimer2
bit 4, a
jp nz, handleLink
;jp sysIntDone
ex af, af'
exx
ei
jp boot
handleOn:
; ack int
in a, (3)
res 0, a
out (3), a
set 0, a
out (3), a
jp sysIntDone
handleTimer1:
; ack int
in a, (3)
res 1, a
out (3), a
set 1, a
out (3), a
ld a, (CLOCK)
cp 0
jp z, timer1IncTime
dec a
ld (CLOCK), a
ld a, (CLOCK+10)
cp 50
call z, ToggleCursor
jp nz, _
ld a, 0
ld (CLOCK+10), a
jp sysIntDone
_: inc a
ld (CLOCK+10), a
jp sysIntDone
timer1IncTime:
;ld hl, string
;call PrintString
ld hl, (CLOCK+1)
inc hl
ld (CLOCK+1), hl
ld a, 118
ld (CLOCK), a
jp sysIntDone
handleTimer2:
; ack int
in a, (3)
res 2, a
out (3), a
set 2, a
out (3), a
jp sysIntDone
handleLink:
; ack int
in a, (3)
res 4, a
out (3), a
set 4, a
out (3), a
; int code
sysIntDone:
ex af, af'
exx
ei
ret

123
src/00/kernel.z80 Normal file
View file

@ -0,0 +1,123 @@
kernel:
call Sleep
kernelboot:
; init
di
ld sp, $00 ; prep stack ptr
ld a, 6
out (4), a ; set memory mode 0
; memory layout:
; $0000 - $3FFF : Page $00 ROM
; $4000 - $7FFF : Page $00 - $1F ROM
; Change this with SwapROMPage
; $8000 - $BFFF : Page 1 RAM
; $C000 - $FFFF : Page 0 RAM
ld a, 1
call SwapRAMPage ; load RAM page 1
ld a, PRIVPAGE
call SwapROMPage ; load privledged page into ROM
call $4001 ; unlock the flash
ld a, $01
call SwapROMPage
call freeall
; init LCD
ld a, $00
out ($10), a ; set to 6-bit mode
call WaitForLCD
ld a, $05
out ($10), a ; Y-increment
call WaitForLCD
ld a, 118
ld (CLOCK), a
ld hl, $0000
ld (CLOCK+1), hl
ei
ld a, $03
out ($10), a ; enable screen
call WaitForLCD
call ClearScreen
ld hl, tidos
call PrintLine
ld a, 10
call PrintChar
ld hl, 0
ld ($8DDD), hl
; todo fix stack things i'm working on
cmd:
ld hl, 0
ld sp, hl
ld hl, caret
call PrintString
ld hl, $8600
call getLine
ld ($8CDB), hl
ld b, 255
ld de, 0
replaceloop:
ld a, (hl)
cp 32
jp nz, _
ld c, a
xor a
ld (hl), a
inc hl \ inc de
;push hl
dec hl
ld a, c
_: cp 0
jp z, replaceloopexit
inc hl
djnz replaceloop
replaceloopexit:
;push de
ld hl, ($8CDB)
ld de, $8900
call strcpy
push de
pop hl
dec hl
ld (hl), '.'
inc hl \ ld (hl), 'e'
inc hl \ ld (hl), 'x'
inc hl \ ld (hl), 'e'
inc hl \ ld (hl), 0
ld hl, $8900
call FindFile
xor a
or h
or l
cp 0
jp z, notfound
call LoadProgram
call $D000
jp cmd
notfound:
ld hl, filenotfound
call PrintLine
jp cmd
tidos:
.db "TI-DOS v0.1", 10, 252, " 2013 Malloc", 0
caret:
.db 32, 10, 255, 0
filenotfound:
.db "Bad cmd/file", 0

568
src/00/keyboard.z80 Normal file
View file

@ -0,0 +1,568 @@
#include "keydefs.z80"
;#define TOGGLE
; gets a line from the user
; inputs:
; hl: string ptr
; outputs:
; hl: string ptr
getLine:
ld ($8ABA), hl
getLineLoop:
ld bc, 20000
feedbackLoop:
nop
dec bc
xor a
or b
or c
cp 0
jp nz, feedbackLoop
push hl
call getChar
pop hl
ld (hl), a
cp 0
jp z, getLineLoop
cp 13
jp z, getLineExit
cp 8
jp z, getLineBackspace
push hl
call PrintChar
pop hl
inc hl
jp getLineLoop
getLineBackspace:
push hl
ld de, ($8ABA)
ccf
sbc hl, de
inc hl
xor a \ or h \ or l
cp 0
pop hl
jp z, getLineLoop
dec hl
ld (hl), 0
push hl
ld hl, (SCREENPTR)
dec hl
ld (SCREENPTR), hl
inc hl
ld (hl), 0
call DrawScreenBuffer
pop hl
jp getLineLoop
getLineExit:
ld (hl), 0
ld a, 0
ld hl, (SCREENPTR)
ld (hl), a
ld a, 10
call PrintChar
ld hl, ($8ABA)
ret
; gets a character representation of a key
; outputs:
; a: key (in ascii)
getChar:
xor a
waitForKeyPress:
call getKeyMatrix
ld a, (KENTER)
cp 1
jp nz, _
ld a, 13
ret
_: ld a, (KDEL)
cp 1
jp nz, _
ld a, 8
ret
_:
#ifdef TOGGLE
ld a, (KALPHA)
cp 1
jp z, numericTests
ld a, (KSECOND)
cp 1
jp z, capitalizedTests
#else
ld a, (KALPHA)
cp 1
jp nz, _
ld a, (NUMS)
xor 1
ld (NUMS), a
ld a, 0
ret
_:
ld a, (KSECOND)
cp 1
jp nz, _
ld a, (CAPS)
xor 1
ld (CAPS), a
ld a, 0
ret
_:
ld a, (NUMS)
cp 1
jp z, numericTests
ld a, (CAPS)
cp 1
jp z, capitalizedTests
#endif
ld a, (KMATH)
cp 1
jp nz, _
ld a, 'a'
ret
_: ld a, (KAPPS)
cp 1
jp nz, _
ld a, 'b'
ret
_: ld a, (KPRGM)
cp 1
jp nz, _
ld a, 'c'
ret
_: ld a, (KINV)
cp 1
jp nz, _
ld a, 'd'
ret
_: ld a, (KSIN)
cp 1
jp nz, _
ld a, 'e'
ret
_: ld a, (KCOS)
cp 1
jp nz, _
ld a, 'f'
ret
_: ld a, (KTAN)
cp 1
jp nz, _
ld a, 'g'
ret
_: ld a, (KPOW)
cp 1
jp nz, _
ld a, 'h'
ret
_: ld a, (KSQR)
cp 1
jp nz, _
ld a, 'i'
ret
_: ld a, (KCOMMA)
cp 1
jp nz, _
ld a, 'j'
ret
_: ld a, (KLPAREN)
cp 1
jp nz, _
ld a, 'k'
ret
_: ld a, (KRPAREN)
cp 1
jp nz, _
ld a, 'l'
ret
_: ld a, (KDIV)
cp 1
jp nz, _
ld a, 'm'
ret
_: ld a, (KLOG)
cp 1
jp nz, _
ld a, 'n'
ret
_: ld a, (KSEVEN)
cp 1
jp nz, _
ld a, 'o'
ret
_: ld a, (KEIGHT)
cp 1
jp nz, _
ld a, 'p'
ret
_: ld a, (KNINE)
cp 1
jp nz, _
ld a, 'q'
ret
_: ld a, (KMULT)
cp 1
jp nz, _
ld a, 'r'
ret
_: ld a, (KLN)
cp 1
jp nz, _
ld a, 's'
ret
_: ld a, (KFOUR)
cp 1
jp nz, _
ld a, 't'
ret
_: ld a, (KFIVE)
cp 1
jp nz, _
ld a, 'u'
ret
_: ld a, (KSIX)
cp 1
jp nz, _
ld a, 'v'
ret
_: ld a, (KMINUS)
cp 1
jp nz, _
ld a, 'w'
ret
_: ld a, (KSTO)
cp 1
jp nz, _
ld a, 'x'
ret
_: ld a, (KONE)
cp 1
jp nz, _
ld a, 'y'
ret
_: ld a, (KTWO)
cp 1
jp nz, _
ld a, 'z'
ret
_: ld a, (KTHREE)
cp 1
jp nz, _
ld a, '~'
ret
_: ld a, (KPLUS)
cp 1
jp nz, _
ld a, '"' ;"
ret
_: ld a, (KZERO)
cp 1
jp nz, _
ld a, ' '
ret
_: ld a, (KPERIOD)
cp 1
jp nz, _
ld a, '.'
ret
_: ld a, (KNEG)
cp 1
jp nz, _
ld a, '?'
ret
_: jp endTests
capitalizedTests:
ld a, (KMATH)
cp 1
jp nz, _
ld a, 'A'
ret
_: ld a, (KAPPS)
cp 1
jp nz, _
ld a, 'B'
ret
_: ld a, (KPRGM)
cp 1
jp nz, _
ld a, 'C'
ret
_: ld a, (KINV)
cp 1
jp nz, _
ld a, 'D'
ret
_: ld a, (KSIN)
cp 1
jp nz, _
ld a, 'E'
ret
_: ld a, (KCOS)
cp 1
jp nz, _
ld a, 'F'
ret
_: ld a, (KTAN)
cp 1
jp nz, _
ld a, 'G'
ret
_: ld a, (KPOW)
cp 1
jp nz, _
ld a, 'H'
ret
_: ld a, (KSQR)
cp 1
jp nz, _
ld a, 'I'
ret
_: ld a, (KCOMMA)
cp 1
jp nz, _
ld a, 'J'
ret
_: ld a, (KLPAREN)
cp 1
jp nz, _
ld a, 'K'
ret
_: ld a, (KRPAREN)
cp 1
jp nz, _
ld a, 'L'
ret
_: ld a, (KDIV)
cp 1
jp nz, _
ld a, 'M'
ret
_: ld a, (KLOG)
cp 1
jp nz, _
ld a, 'N'
ret
_: ld a, (KSEVEN)
cp 1
jp nz, _
ld a, 'O'
ret
_: ld a, (KEIGHT)
cp 1
jp nz, _
ld a, 'P'
ret
_: ld a, (KNINE)
cp 1
jp nz, _
ld a, 'Q'
ret
_: ld a, (KMULT)
cp 1
jp nz, _
ld a, 'R'
ret
_: ld a, (KLN)
cp 1
jp nz, _
ld a, 'S'
ret
_: ld a, (KFOUR)
cp 1
jp nz, _
ld a, 'T'
ret
_: ld a, (KFIVE)
cp 1
jp nz, _
ld a, 'U'
ret
_: ld a, (KSIX)
cp 1
jp nz, _
ld a, 'V'
ret
_: ld a, (KMINUS)
cp 1
jp nz, _
ld a, 'W'
ret
_: ld a, (KSTO)
cp 1
jp nz, _
ld a, 'X'
ret
_: ld a, (KONE)
cp 1
jp nz, _
ld a, 'Y'
ret
_: ld a, (KTWO)
cp 1
jp nz, _
ld a, 'Z'
ret
_: ld a, (KTHREE)
cp 1
jp nz, _
ld a, '~'
ret
_: ld a, (KPLUS)
cp 1
jp nz, _
ld a, '"' ;"
ret
_: ld a, (KZERO)
cp 1
jp nz, _
ld a, ' '
ret
_: ld a, (KPERIOD)
cp 1
jp nz, _
ld a, '.'
ret
_: ld a, (KNEG)
cp 1
jp nz, _
ld a, '?'
ret
_: jp endTests
numericTests:
ld a, (KZERO)
cp 1
jp nz, _
ld a, '0'
ret
_: ld a, (KONE)
cp 1
jp nz, _
ld a, '1'
ret
_: ld a, (KTWO)
cp 1
jp nz, _
ld a, '2'
ret
_: ld a, (KTHREE)
cp 1
jp nz, _
ld a, '3'
ret
_: ld a, (KFOUR)
cp 1
jp nz, _
ld a, '4'
ret
_: ld a, (KFIVE)
cp 1
jp nz, _
ld a, '5'
ret
_: ld a, (KSIX)
cp 1
jp nz, _
ld a, '6'
ret
_: ld a, (KSEVEN)
cp 1
jp nz, _
ld a, '7'
ret
_: ld a, (KEIGHT)
cp 1
jp nz, _
ld a, '8'
ret
_: ld a, (KNINE)
cp 1
jp nz, _
ld a, '9'
ret
_: ld a, (KCOMMA)
cp 1
jp nz, _
ld a, ','
ret
_: ld a, (KPERIOD)
cp 1
jp nz, _
ld a, ':'
ret
_: ld a, (KLPAREN)
cp 1
jp nz, _
ld a, '('
ret
_: ld a, (KRPAREN)
cp 1
jp nz, _
ld a, ')'
ret
_: ld a, (KDIV)
cp 1
jp nz, _
ld a, '/'
ret
_: ld a, (KMULT)
cp 1
jp nz, _
ld a, '*'
ret
_: ld a, (KPLUS)
cp 1
jp nz, _
ld a, '+'
ret
_: ld a, (KMINUS)
cp 1
jp nz, _
ld a, '-'
ret
_:
endTests:
jp waitForKeyPress
ret
getKeyMatrix:
ld hl, KEYBUF
ld a, $FE
ld b, 7
gkmFetchLoop:
push af
ld a, $FF
out (1), a
nop \ nop \ nop \ nop
pop af
out (1), a
nop \ nop \ nop \ nop
push af
in a, (1)
ld d, a
pop af
push af
push bc
ld b, 8
gkmAssignLoop:
ld a, d
and 1
or %11111110
neg
dec a
ld (hl), a
rrc d
inc hl
djnz gkmAssignLoop
pop bc
pop af
rlca
djnz gkmFetchLoop
ret

55
src/00/keydefs.z80 Normal file
View file

@ -0,0 +1,55 @@
#define KDOWN KEYBUF
#define KLEFT KEYBUF+1
#define KRIGHT KEYBUF+2
#define KUP KEYBUF+3
#define KENTER KEYBUF+8
#define KPLUS KEYBUF+9
#define KMINUS KEYBUF+10
#define KMULT KEYBUF+11
#define KDIV KEYBUF+12
#define KPOW KEYBUF+13
#define KCLEAR KEYBUF+14
#define KNEG KEYBUF+16
#define KTHREE KEYBUF+17
#define KSIX KEYBUF+18
#define KNINE KEYBUF+19
#define KRPAREN KEYBUF+20
#define KTAN KEYBUF+21
#define KVARS KEYBUF+22
#define KPERIOD KEYBUF+24
#define KTWO KEYBUF+25
#define KFIVE KEYBUF+26
#define KEIGHT KEYBUF+27
#define KLPAREN KEYBUF+28
#define KCOS KEYBUF+29
#define KPRGM KEYBUF+30
#define KSTAT KEYBUF+31
#define KZERO KEYBUF+32
#define KONE KEYBUF+33
#define KFOUR KEYBUF+34
#define KSEVEN KEYBUF+35
#define KCOMMA KEYBUF+36
#define KSIN KEYBUF+37
#define KAPPS KEYBUF+38
#define KXTTN KEYBUF+39
#define KSTO KEYBUF+41
#define KLN KEYBUF+42
#define KLOG KEYBUF+43
#define KSQR KEYBUF+44
#define KINV KEYBUF+45
#define KMATH KEYBUF+46
#define KALPHA KEYBUF+47
#define KGRAPH KEYBUF+48
#define KTRACE KEYBUF+49
#define KZOOM KEYBUF+50
#define KWINDOW KEYBUF+51
#define KFUNC KEYBUF+52
#define KSECOND KEYBUF+53
#define KMODE KEYBUF+54
#define KDEL KEYBUF+55

140
src/00/memory.z80 Normal file
View file

@ -0,0 +1,140 @@
; swaps out what ROM page should be loaded at $4000
; inputs:
; a: ROM page from $00 to $1F
SwapROMPage:
out (6), a
ret
; determines what ROM page is loaded at $4000
; outputs:
; a: ROM page from $00 to $1F
GetROMPage:
in a, (6)
ret
; swaps out what RAM page should be loaded at $8000
; inputs:
; a: RAM page from $00 to $01
SwapRAMPage:
or RAMMASK
out (7), a
ret
; copies a block of memory to another block of memory
; input:
; hl: pointer to block being copied
; de: pointer to block copying to
; bc: size of block
memcpy:
ldir
ret
; allocates a block of memory
; input:
; de: size in bytes
; output:
; hl: pointer to memory
; special conditions:
; hl is 0 when allocation fails
malloc:
di
ld hl, FREEMEM
inc de \ inc de \ inc de
ld bc, 0
mallocloop:
push hl
push de
pop hl
ccf
sbc hl, bc
pop hl
jp z, mallocend
push bc
push hl
ld bc, PROGRAMRESERVE
ccf
sbc hl, bc
pop hl
pop bc
jp z, mallocfail
ld a, (hl)
cp $AA
jp z, mallocblockfound
inc hl
inc bc
jp mallocloop
mallocblockfound:
inc hl
ld bc, 0
push de
ld e, (hl)
inc hl
ld d, (hl)
add hl, de
inc hl
pop de
jp mallocloop
mallocend:
ccf
sbc hl, de
inc hl
ld (hl), $AA
inc hl
dec de \ dec de \ dec de
ld (hl), e
inc hl
ld (hl), d
inc hl
ei
ret
mallocfail
ld hl, 0
ei
ret
; frees a block of memory
; input:
; hl: memory address
; todo rewrite this with ldir
free:
dec hl
ld d, (hl)
dec hl
ld e, (hl)
dec hl
ld a, (hl)
cp $AA
jp nz, freenotvalidblock
inc de \ inc de \ inc de
ld bc, 0
freeloop:
ld (hl), 0
inc hl
inc bc
push hl
push de
pop hl
ccf
sbc hl, bc
pop hl
jp nz, freeloop
freenotvalidblock:
ret
; overwrites all freemem and progspace with zeroes
; no inputs, no outputs
; todo rewrite this with ldir
freeall:
di
ld hl, SYSRESERVE-1
ld de, STACKRESERVE-2
allfreeloop:
inc hl
ld (hl), 0
push hl
sbc hl, de
pop hl
jp nz, allfreeloop
ei
ret

16
src/00/shutdown.z80 Normal file
View file

@ -0,0 +1,16 @@
ShutdownStart:
.db $BB
.dw EndShutdown-Shutdown
.db "shutdown.exe", 0
.fill (ShutdownStart + 24)-$
.org $D000
Shutdown:
ld a, $02
out ($10), a ; disable screen
call WaitForLCD
call Sleep
jp kernelboot
EndShutdown:

20
src/00/sleep.z80 Normal file
View file

@ -0,0 +1,20 @@
SleeperStart:
.db $BB
.dw EndSleep-Sleeper
.db "sleep.exe", 0
.fill (SleeperStart + 24)-$
.org $D000
Sleeper:
ld a, $02
out ($10), a ; disable screen
call WaitForLCD
call Sleep
ld a, $03
out ($10), a ; enable screen
call WaitForLCD
ret
EndSleep:

166
src/00/utils.z80 Normal file
View file

@ -0,0 +1,166 @@
; puts calculator to sleep until on is pressed
Sleep:
ei
ld a, $11
out (3), a
im 1
halt
ld a, %00010111
out (3), a
ret
; puts calculator to sleep until on is pressed,
; then jumps to beginning of kernel
; reverses a string
; inputs:
; hl: string ptr
; outputs:
; hl: string ptr
ReverseString:
ld bc, 0
push hl
push hl
rslenloop:
ld a, (hl)
cp 0
jp z, rsexitlenloop
inc bc
inc hl
jp rslenloop
rsexitlenloop:
dec hl
push hl
pop de
pop hl
xor a \ or b \ or c
cp 0
jp z, rsend
dec bc
xor a \ or b \ or c
cp 0
jp z, rsend
inc bc
push de
push hl
push bc
pop hl
ld d, 2
call DivideHLD
push hl
pop bc
pop hl
pop de
rsreverseloop:
push af
ld a, (hl)
ld ($8300), a
ld a, (de)
ld (hl), a
ld a, ($8300)
ld (de), a
pop af
ld ($8302), a
dec de \ inc hl \ dec bc
xor a
or b
or c
cp 0
ld a, ($8302)
jp nz, rsreverseloop
rsend:
pop hl
ret
; converts a number to a string
; inputs:
; hl: number
; outputs:
; hl: string pointer
NumberToString:
push hl
ld de, 6
call malloc
push hl
pop bc
pop hl
push bc
ld e, 0
ntsloop:
ld d, 10
push bc
call DivideHLD
pop bc
add a, '0'
ld (bc), a
inc bc
xor a
or h
or l
cp 0
jp nz, ntsloop
ld a, 0
ld (bc), a
pop hl
call ReverseString
ret
; divides hl by d
; inputs:
; hl: divisor
; d: dividend
; outputs:
; hl: quotient
; a: remainder
DivideHLD:
xor a
ld b, 16
_loop:
add hl, hl
rla
jr c, _overflow
cp d
jp c, _skip
_overflow:
sub d
inc l
_skip:
djnz _loop
ret
; multiplies de by a and stores the result in hl
; inputs:
; de: multiplier
; a: multiplicand
MultiplyDEA:
push bc
ld hl, 0
ld b, 8
_loopMDE:
rrca
jr nc, _skipAdditionMDE
add hl, de
_skipAdditionMDE
sla e
rl d
djnz _loopMDE
pop bc
ret
; copies null-terminated string from one place to another
; inputs:
; hl: location of string to be copied
; de: location to be copied to
strcpy:
ld a, (hl)
ld (de), a
inc hl
inc de
cp 0
jp nz, strcpy
ret

10
src/01/UserPrgm1.z80 Normal file
View file

@ -0,0 +1,10 @@
UserPrgm1Start:
.db $BB
.dw EndOfUserPrgm1-UserPrgm1
.db "User.exe", 0
.fill (UserPrgm1Start + 24)-$
.org $D000
UserPrgm1:
ret
EndOfUserPrgm1:

BIN
src/01/base.bin Normal file

Binary file not shown.

3
src/01/base.z80 Normal file
View file

@ -0,0 +1,3 @@
.org $4000
#include "UserPrgm1.z80"

BIN
src/privledged/base.bin Normal file

Binary file not shown.

30
src/privledged/base.z80 Normal file
View file

@ -0,0 +1,30 @@
.org $4000
rst $00
UnlockFlash:
push af
di
ld a, 1
nop
nop
im 1
di
out ($14),a
pop af
ei
ret
LockFlash:
push af
di
xor a
nop
nop
im 1
di
out ($14),a
pop af
ei
ret

BIN
tools/BigInteger.dll Normal file

Binary file not shown.

BIN
tools/Common.dll Normal file

Binary file not shown.

BIN
tools/h2r.exe Normal file

Binary file not shown.

6
tools/keys/01.txt Normal file
View file

@ -0,0 +1,6 @@
TI-92 Plus OS Signing Key:
n=AD49CA3CFEF1F2DE400B5D3790813BF3822CB0BD83E3F565CE81B3A6CEF36FB833D932596D0E979615BAB6811ABE68834CA7CEBF46145C1DD1920AA4E9558DF7
p=331792FFBB24450379CD2FA4F562961625E0EF737006A375CB9ABEA2C9D4E251
q=3644570912C38CD2D25322B5C2074DC9C40B774873F4BCEF8E1D2526237DE51C7
e=11
d=7020B00959AB9D2665AD0014E50853F7EAD19F89AFB19EC9678119E467CAB1B119F600276590FBF65BE2A49E214A26963A827242F8231EBC9EEABFA3B3FFA391

3
tools/keys/0101.key Normal file
View file

@ -0,0 +1,3 @@
406104CDFAD955D41F1ECCB9B622007FE8BC75E8B28DA178334755FEF27C564D47B04FD82498C163B762991C68CF64E29236BC41A4C1BCB9793B6EE965407C74BC
2015A30058B84400F1D456D67CBF6D1DD2CABA346403DD72884F2180310209B3F3
201D1FCF0D74941DD18C0B077E2E56D1C795546D10F9DAFF8A5464ACDF139CF7C5

6
tools/keys/0101.txt Normal file
View file

@ -0,0 +1,6 @@
TI-92 Plus Freeware Flash Application Signing Key:
n=BC747C4065E96E3B79B9BCC1A441BC3692E264CF681C9962B763C19824D84FB0474D567CF2FE55473378A18DB2E875BCE87F0022B6B9CC1E1FD455D9FACD0461
p=C5F79C13DFAC64548AFFDAF9106D5495C7D1562E7E070B8CD11D94740DCF1F1D
q=F3B309023180214F8872DD036434BACAD21D6DBF7CD656D4F10044B85800A315
e=11
d=376D8DF4D2AE115CC972DD29E504466A676FC34C0F8FF0E0CC86C0780AD6358DB12FD9D2F71F976C369853C14E8D2D2A35397B1E919B2E2857CC42C9A44A7CE1

3
tools/keys/0102.key Normal file
View file

@ -0,0 +1,3 @@
4085F11FF810591B84875FDE4C92A5961CDD233A9B7ED76E8CFF65128C71420FCCC80E375DC8D2A8551AE2BEB9FD41654CE7B0A95E32BE9997750407904560BEFC
20AB07CBD3276D78777FE14E6048164F95F3E63AD2973BECC89E319ED972418E54
218FFB96515298A3A08C559840BE71CAFF4D60DD5A5E06396C7686F4661A4E34FD02

6
tools/keys/0102.txt Normal file
View file

@ -0,0 +1,6 @@
TI-73/Explorer Freeware Flash Application Signing Key:
n=FCBE6045900704759799BE325EA9B0E74C6541FDB9BEE21A55A8D2C85D370EC8CC0F42718C1265FF8C6ED77E9B3A23DD1C96A5924CDE5F87841B5910F81FF185
p=548E4172D99E319EC8EC3B97D23AE6F3954F1648604EE17F77786D27D3CB07AB
q=2FD344E1A66F486766C39065E5ADD604DFFCA71BE4098558CA0A398525196FB8F
e=11
d=DF0254F215ABD6C21C5A7AA4EA1D41BD072C2B2B2B6C30EA0F58B9FC16036762F370DA14BB164E291FD783F0D9A5684CFF140B02C4E923B8321D85FD8CC5B425

3
tools/keys/0103.key Normal file
View file

@ -0,0 +1,3 @@
40ED0236FD3D8B0CBA88C1CECFA549F8A838CDBAC487F9253F6C67F20C9627984FEA0D0A0BA035424C7B9F5E702286CEDCC66D2DA93320F7071BF2C93C59DE6B91
209B16C813701163C9221A6926F694971B0A4F777A3BD10E7E2C563B80D18F4155
211721160E2324E54459AE1DFF49D5EA21453027465E1EEEF2CDF8E05554C7A8B401

6
tools/keys/0103.txt Normal file
View file

@ -0,0 +1,6 @@
TI-89 Freeware Flash Application Signing Key:
n=916BDE593CC9F21B07F72033A92D6DC6DCCE8622705E9F7B4C4235A00B0A0DEA4F9827960CF2676C3F25F987C4BACD38A8F849A5CFCEC188BA0C8B3DFD3602ED
p=55418FD1803B562C7E0ED13B7A774F0A1B9794F626691A22C963117013C8169B
q=1B4A8C75455E0F8CDF2EE1E5E4627304521EAD549FF1DAE5944E524230E162117
e=11
d=33533F6ACA292845C69374C6F06A62FAE485204863E5293A9362A983C7A93215BE3D58A0135A9F3739B4219F4CBEB21625ED5DE7A582D05ED3363C5A6B8865D9

3
tools/keys/0104.key Normal file
View file

@ -0,0 +1,3 @@
40AD2431DA2297E4175EAC61A3154FA3D847115794DD330AB7FF36BA59FEDA195FEA7C16743BD7BCED8A0DA885E5E5C34D5BF20D0AB3EF9181ED39BA2C4D898E87
205B2E54E9B5C1FE26CE93261478D3873F3FC41BFFF1F5F934D7A5793A43C1C21C
2197F7707B94079B73858720BF6D4909AB3BEDA1BA9B93112B041340A16ED597B604

6
tools/keys/0104.txt Normal file
View file

@ -0,0 +1,6 @@
TI-83 Plus/Silver Edition Freeware Flash Application Signing Key:
n=878E894D2CBA39ED8191EFB30A0DF25B4DC3E5E585A80D8AEDBCD73B74167CEA5F19DAFE59BA36FFB70A33DD94571147D8A34F15A361AC5E17E49722DA3124AD
p=1CC2C1433A79A5D734F9F5F1FF1BC43F3F87D378142693CE26FEC1B5E9542E5B
q=04B697D56EA14013042B11939BBAA1ED3BAB09496DBF208785739B07947B70F797
e=11
d=7F9535EE4836CD1BC53E0EC6A00D2055EED67E0532800CBEFDDEE8B06D42576EA1A4F4FCB2D3498B9D2BEB9673632CFD1C4D5C693C553D370C82A39E8CA1E0B1

3
tools/keys/0108.key Normal file
View file

@ -0,0 +1,3 @@
407F0754F917A3D549754415DFA71A7FE11247DF26058001A246B0013FF355DA7FE46B1121FBB0E2A36BAC95BBA347261D7FBBC3B947DE3902AE9E8E51EE2532B5
20976B935A1A4E9A0A32C9996EA5B3F51F5E1BD1BB58D246D7DC8EE648346D3049
2159607D0D437D5775C737EB4D5718605CAD8EA3FD0274CBB6224B369920CBC87902

6
tools/keys/0108.txt Normal file
View file

@ -0,0 +1,6 @@
Voyage 200 Freeware Flash Application Signing Key:
n=B53225EE518E9EAE0239DE47B9C3BB7F1D2647A3BB95AC6BA3E2B0FB21116BE47FDA55F33F01B046A201800526DF4712E17F1AA7DF15447549D5A317F954077F
p=49306D3448E68EDCD746D258BBD11B5E1FF5B3A56E99C9320A9A4E1A5A936B97
q=279C8CB2099364B22B6CB7402FDA38EAD5C6018574DEB37C775577D430D7D6059
e=11
d=8A8FC2A72F4EF1D05C0E22731595AD7F5286AF40F8DBDE343207B483CDFE43706342BC4BECAEFE365A89C2AEBD154AE789980EFB56AA8DF5400895E905ABE241

3
tools/keys/0109.key Normal file
View file

@ -0,0 +1,3 @@
405D14C1A69D6985449FBAA57BEB7BA23EC96D4EBC088B6E245FA98DBEFBA68001AF3AF01FCFB73ED7C9976767D6C3350FE26CD865857F5F25E8125880D01E4285
200B5E1657411F43E9F9F98DC688C79380A0E7B43FA6943FC3BDCA25D0976EDC01
2137A0043A3A6051BBB546DBFB768AAC138826901EA2139D678CEB95600429749A47

6
tools/keys/0109.txt Normal file
View file

@ -0,0 +1,6 @@
TI-89 Titanium Freeware Flash Application Signing Key:
n=85421ED0805812E8255F7F8565D86CE20F35C3D6676797C9D73EB7CF1FF03AAF0180A6FBBE8DA95F246E8B08BC4E6DC93EA27BEB7BA5BA9F4485699DA6C1145D
p=1DC6E97D025CABDC33F94A63FB4E7A08093C788C68DF9F9E9431F4157165E0B
q=479A7429046095EB8C679D13A21E90268813AC8A76FBDB46B5BB51603A3A04A037
e=11
d=468C6AAA9E4CBEB722D83473CC81A30E4449A3E9FA82232E9F2134225C33E2AF3591EA056932EA1A29C5B447B95041AF6943072271200451AF07128A83EE842D

3
tools/keys/010A.key Normal file
View file

@ -0,0 +1,3 @@
4005D1EB8485AA14C983FFA04031B27C89950C3D7F4181FE603A353F48DE0933DFE1173BDD2E14FEB7325BAA35A12F21804DCFD30E56119C1305D348A77BCF448F
208BCEED26E2537E897E3AFDD1E831AEC1BF7437F4C9E1A0DD09B67B66938D9D02
21AFE026E1181E8196772F4DC38977E000421AAD8BD66F2C7F614DF20A90642EC736

6
tools/keys/010A.txt Normal file
View file

@ -0,0 +1,6 @@
TI-84 Plus/Silver Edition Freeware Flash Application Signing Key:
n=8F44CF7BA748D305139C11560ED3CF4D80212FA135AA5B32B7FE142EDD3B17E1DF3309DE483F353A60FE81417F3D0C95897CB23140A0FF83C914AA8584EBD105
p=29D8D93667BB609DDA0E1C9F43774BFC1AE31E8D1FD3A7E897E53E226EDCE8B
q=36C72E64900AF24D617F2C6FD68BAD1A4200E07789C34D2F7796811E18E126E0AF
e=11
d=6521836657F72B8B1CE6A2D355C2B072F1085DDB34F0B8D881E086B7AB38C569B4C13DED4C576E7402F58B083BC5FE4A32116F95A61F0027C2A59152B279BD81

3
tools/keys/02.key Normal file
View file

@ -0,0 +1,3 @@
4081396D55C0989BC949FA30821FFE61C9441EDC3827D0E89EEE16DDEF697634B8E10B8B7F42FE7CC1A7478606D6D09F6FE96365E71E3D2AAA7C8D91068F1DFAF3
20E1A6FD4557AB2234E92FACBBADD9E7FA2452B5C238F1EF296AFB2BFE67BACC1E
21A106BE04DC99B4F389D3B96951224E064F417E34EEF53130E9BEDC9A721EE1EB07

6
tools/keys/02.txt Normal file
View file

@ -0,0 +1,6 @@
TI-73/Explorer OS Signing Key:
n=F3FA1D8F06918D7CAA2A3D1EE76563E96F9FD0D6068647A7C17CFE427F8B0BE1B8347669EFDD16EE9EE8D02738DC1E44C961FE1F8230FA49C99B98C0556D3981
p=1ECCBA67FE2BFB6A29EFF138C2B55224FAE7D9ADBBAC2FE93422AB5745FDA6E1
q=7EBE11E729ADCBEE93031F5EE347E414F064E225169B9D389F3B499DC04BE06A1
e=11
d=396806F47A04214A82644A9DDC17DB45FC259A8CB63DB681D32C780FA58A20E7EC982512AB04CA7EE301A03C4BAF2FB8A791E261F7B74923715B5EF4028420F1

3
tools/keys/03.key Normal file
View file

@ -0,0 +1,3 @@
40E7C21F66BD1116F2F4F691121F3330060E24C8C7A1858D49636E24E80015F3AA25C2F6033AB39067D453945ABD8A5F4CFAFADABAF8BA2BFB88895A04B5D47689
202312902DCC81354C43EB01DB7E9404BC1140E85F1A0CC0B00E166B2290C5EE04
216D6E5F7F6C6E7248B28C475B066D447521E4F6168F0DBB7ACFD69EAD277D30DE1B

6
tools/keys/03.txt Normal file
View file

@ -0,0 +1,6 @@
TI-89 OS Signing Key:
n=8976D4B5045A8988FB2BBAF8BADAFAFA4C5F8ABD5A9453D46790B33A03F6C225AAF31500E8246E63498D85A1C7C8240E0630331F1291F6F4F21611BD661FC2E7
p=4EEC590226B160EB0C00C1A5FE84011BC04947EDB01EB434C3581CC2D901223
q=1BDE307D27AD9ED6CF7ABB0D8F16F6E42175446D065B478CB248726E6C7F5F6E6D
e=11
d=7134AF2BA93B8052B0BA99FA034AECCE20C726F64A984509463AEDF38ACB3662685416968C52104F822D49DB8DED0EF07318BF6FA659D1FF7A1E75F4D4BE54C1

3
tools/keys/04.key Normal file
View file

@ -0,0 +1,3 @@
408FE528B340EB1C88B505B2354BAADF47F3616D92CB532E7E5A2A0DFF1C4E4283CEEA2B2F7AD5F28B7E4BE4F3F4C99CABA0D98A8E5F2BE15E2AAC7CED0940EF82
20CDFF9610024DB1B7AD46D691E0E538BB00A1D840F5CCAF8EC0FED20C3A9D700B
21CB4662A9084F5076B117892EBA3FB0DF9EB24988A62A83890B5A0B4E18BD07720B

6
tools/keys/04.txt Normal file
View file

@ -0,0 +1,6 @@
TI-83 Plus/Silver Edition OS Signing Key:
n=82EF4009ED7CAC2A5EE12B5F8E8AD9A0AB9CC9F4F3E44B7E8BF2D57A2F2BEACE83424E1CFF0D2A5A7E2E53CB926D61F347DFAA4B35B205B5881CEB40B328E58F
p=B709D3A0CD2FEC08EAFCCF540D8A100BB38E5E091D646ADB7B14D021096FFCD
q=B7207BD184E0B5A0B89832AA68849B29EDFB03FBA2E8917B176504F08A96246CB
e=11
d=4D0534BA8BB2BFA0740BFB6562E843C7EC7A58AE351CE11D43438CA239DD99276CD125FEBAEE5D2696579FA3A3958FF4FC54C685EAA91723BC8888F292947BA1

3
tools/keys/05.key Normal file
View file

@ -0,0 +1,3 @@
406BABF27E9BF1826FD46CBF934E3360EF1F1D3D09D6C74E9DF78049D01A42F584BD383A10E64330C2EE6F1B1C5162789E91E94677900F85D98E7D99F49B30A2BF
20F59BA0274F1CA6231A882B053AAD9A2B80EBE9D2B6E9FD1CDCFCE1AD9D9414D3
20DFED657A28DE2BFF75DE4F1AEBB7555859779DA38A671B7C76F81B50F02A6AE8

6
tools/keys/05.txt Normal file
View file

@ -0,0 +1,6 @@
Community-created 05 Signing Key:
n=BFA2309BF4997D8ED9850F907746E9919E7862511C1B6FEEC23043E6103A38BD84F5421AD04980F79D4EC7D6093D1D1FEF60334E93BF6CD46F82F19B7EF2AB6B
p=D314949DADE1FCDC1CFDE9B6D2E9EB802B9AAD3A052B881A23A61C4F27A09BF5
q=E86A2AF0501BF8767C1B678AA39D77595855B7EB1A4FDE75FF2BDE287A65EDDF
e=11
d=70B9C23D9EF0E072259990AF5538C5A0F3CE57F379F2059B8149915A27A9C7050D1889078AC306D98A0154CFDDD44F74B7AB2DFA44643FEBF0E0916063D631E1

3
tools/keys/08.key Normal file
View file

@ -0,0 +1,3 @@
40110510EE17B0A300E2BB27441F266843EDB541BAC1077AC203CF18ABB7800F8F0E259495F80D863C49C4EE7E9FB1FE03488A140C7CD5A54CE148C8CE22B00783
207BEE08D9E4AD5B6872E14C48D26633E6E5A5529C84EDFCE80A6FAB848DEEFA08
21E34A0FB79D346138618437BE848BA72A0F4737F6EE6C5786AFF5A3BCEB044B970E

6
tools/keys/08.txt Normal file
View file

@ -0,0 +1,6 @@
Voyage 200 OS Signing Key:
n=8307B022CEC848E14CA5D57C0C148A4803FEB19F7EEEC4493C860DF89594250E8F0F80B7AB18CF03C27A07C1BA41B5ED4368261F4427BBE200A3B017EE100511
p=8FAEE8D84AB6F0AE8FCED849C52A5E5E63366D2484CE172685BADE4D908EE7B
q=E974B04EBBCA3F5AF86576CEEF637470F2AA78B84BE3784613861349DB70F4AE3
e=11
d=2689CA64972BD93334A93ECA21ABB0334C78161FDA09FD7EF3AEF50CE0B319F0EBE0ED4E979597BB36929C6247EAC2A35A2987B35D6C467CB2CB69A466EE8735

3
tools/keys/09.key Normal file
View file

@ -0,0 +1,3 @@
40D1AF8EFD841732F96ABB28D11A557AC2B102B19D9FE6D7926CF8B0122A57A4B0D7F2DDFE1F3B2C2C23A4D3F01519FE4E60A3ACF9C035CD802B45DA0AFA3951D6
20C13946416BCC888549FD70FB37AF33EF95C8844EF429273271A5486627D6390F
21115A5717A51881A626D5B1F7AF134EC6B13937799F1FC652E7EA2F70949E68130E

6
tools/keys/09.txt Normal file
View file

@ -0,0 +1,6 @@
TI-89 Titanium OS Signing Key:
n=D65139FA0ADA452B80CD35C0F9ACA3604EFE1915F0D3A4232C2C3B1FFEDDF2D7B0A4572A12B0F86C92D7E69F9DB102B1C27A551AD128BB6AF9321784FD8EAFD1
p=F39D6276648A571322729F44E84C895EF33AF37FB70FD498588CC6B414639C1
q=E13689E94702FEAE752C61F9F793739B1C64E13AFF7B1D526A68118A517575A11
e=11
d=97486528F89A12B54BDC25F1A12E917128B35D006DC291FAB5C4DE70F02432E8A079CD0284DC85B3CD968CF94BBC004ADBFAC18D516D9565BDFE41BBBFB940F1

3
tools/keys/0A.key Normal file
View file

@ -0,0 +1,3 @@
40B11C71D4EA2C13C9AB2E501C6085FEC87FF3B88BFD783EAC43351E1B10F65AD31C79C1268F75051DC8FC008EBF593AE5912E8B653975C13127E2B60A0BEF5FEF
204DD5B4E544CACBC4EF869CDA30A6908FF7D1BDDB92B1ADE1E1C93CC614904894
21F5E2DFBCA3D5C86F4815DC69452E4FC7D122D650374E880B62294279F21A439D01

6
tools/keys/0A.txt Normal file
View file

@ -0,0 +1,6 @@
TI-84 Plus/Silver Edition OS Signing Key:
n=EF5FEF0B0AB6E22731C17539658B2E91E53A59BF8E00FCC81D05758F26C1791CD35AF6101B1E3543AC3E78FD8BB8F37FC8FE85601C502EABC9132CEAD4711CB1
p=94489014C63CC9E1E1ADB192DBBDD1F78F90A630DA9C86EFC4CBCA44E5B4D54D
q=19D431AF2794229620B884E3750D622D1C74F2E4569DC15486FC8D5A3BCDFE2F5
e=11
d=2A3E1B2010F318D9BD7C7E19300980B055A0E2A9554B77E7142E23CDF7C7CA13C233A3D462FDFC968B1F9CEAF2AC2CF305147992AD9E834192ACEBB517DB9941

3
tools/keys/datestamp.key Normal file
View file

@ -0,0 +1,3 @@
40151ED10541142F250DB7DFD771092E024DC75483E37A84ACA694752E33FF1BB5408B1B4871CE61FB1403C81F4E71FD8F89A7B03A39FC798D19471ABBA737E3A3
204547FD23B5CD3E61524F82EC77DBB72E951F6340F0FA08AE9D5385FF6B31D703
2191C0C80042D8FABCE153EFFC084F4E132C971D000631CB35AE3D2A99B21423AC2A

12
tools/keys/datestamp.txt Normal file
View file

@ -0,0 +1,12 @@
Date Stamp Signing Key for:
TI-73/Explorer
TI-83 Plus/Silver Edition
TI-84 Plus/Silver Edition
TI-89/Titanium
TI-92 Plus
Voyage 200
n=A3E337A7BB1A47198D79FC393AB0A7898FFD714E1FC80314FB61CE71481B8B40B51BFF332E7594A6AC847AE38354C74D022E0971D7DFB70D252F144105D11E15
p=3D7316BFF85539DAE08FAF040631F952EB7DB77EC824F52613ECDB523FD4745
q=2AAC2314B2992A3DAE35CB3106001D972C134E4F08FCEF53E1BCFAD84200C8C091
e=11
d=60678A266E0F751E16FC763FC82BADD872D151B57C1B4D1B66B200F75797BB3A2122E55767292F2657EF3D7C81A9EB9D8017741540F57516405422C20BE86771

BIN
tools/multihex.exe Normal file

Binary file not shown.

BIN
tools/multihexold.exe Normal file

Binary file not shown.

BIN
tools/packxxu.exe Normal file

Binary file not shown.

BIN
tools/rabbitsign.exe Normal file

Binary file not shown.

BIN
tools/spasm.exe Normal file

Binary file not shown.