init commit
there are jigs in the water supply
This commit is contained in:
commit
f95ff516e6
70 changed files with 4543 additions and 0 deletions
22
.gitattributes
vendored
Normal file
22
.gitattributes
vendored
Normal 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
215
.gitignore
vendored
Normal 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
BIN
Wabbitemu.exe
Normal file
Binary file not shown.
41
build.bat
Normal file
41
build.bat
Normal 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
BIN
documentation.docx
Normal file
Binary file not shown.
BIN
os83-signed.8xu
Normal file
BIN
os83-signed.8xu
Normal file
Binary file not shown.
BIN
os84-signed.8xu
Normal file
BIN
os84-signed.8xu
Normal file
Binary file not shown.
BIN
osSE-signed.8xu
Normal file
BIN
osSE-signed.8xu
Normal file
Binary file not shown.
BIN
src/00/base.bin
Normal file
BIN
src/00/base.bin
Normal file
Binary file not shown.
33
src/00/base.z80
Normal file
33
src/00/base.z80
Normal 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
21
src/00/cd.z80
Normal 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
2308
src/00/characters.z80
Normal file
File diff suppressed because it is too large
Load diff
11
src/00/cls.z80
Normal file
11
src/00/cls.z80
Normal 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
10
src/00/cp.z80
Normal 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
49
src/00/dir.z80
Normal 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
262
src/00/display.z80
Normal 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
166
src/00/filesystem.z80
Normal 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
36
src/00/header.z80
Normal 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
91
src/00/interrupts.z80
Normal 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
123
src/00/kernel.z80
Normal 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
568
src/00/keyboard.z80
Normal 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
55
src/00/keydefs.z80
Normal 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
140
src/00/memory.z80
Normal 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
16
src/00/shutdown.z80
Normal 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
20
src/00/sleep.z80
Normal 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
166
src/00/utils.z80
Normal 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
10
src/01/UserPrgm1.z80
Normal 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
BIN
src/01/base.bin
Normal file
Binary file not shown.
3
src/01/base.z80
Normal file
3
src/01/base.z80
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
.org $4000
|
||||||
|
|
||||||
|
#include "UserPrgm1.z80"
|
BIN
src/privledged/base.bin
Normal file
BIN
src/privledged/base.bin
Normal file
Binary file not shown.
30
src/privledged/base.z80
Normal file
30
src/privledged/base.z80
Normal 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
BIN
tools/BigInteger.dll
Normal file
Binary file not shown.
BIN
tools/Common.dll
Normal file
BIN
tools/Common.dll
Normal file
Binary file not shown.
BIN
tools/h2r.exe
Normal file
BIN
tools/h2r.exe
Normal file
Binary file not shown.
6
tools/keys/01.txt
Normal file
6
tools/keys/01.txt
Normal 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
3
tools/keys/0101.key
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
406104CDFAD955D41F1ECCB9B622007FE8BC75E8B28DA178334755FEF27C564D47B04FD82498C163B762991C68CF64E29236BC41A4C1BCB9793B6EE965407C74BC
|
||||||
|
2015A30058B84400F1D456D67CBF6D1DD2CABA346403DD72884F2180310209B3F3
|
||||||
|
201D1FCF0D74941DD18C0B077E2E56D1C795546D10F9DAFF8A5464ACDF139CF7C5
|
6
tools/keys/0101.txt
Normal file
6
tools/keys/0101.txt
Normal 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
3
tools/keys/0102.key
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
4085F11FF810591B84875FDE4C92A5961CDD233A9B7ED76E8CFF65128C71420FCCC80E375DC8D2A8551AE2BEB9FD41654CE7B0A95E32BE9997750407904560BEFC
|
||||||
|
20AB07CBD3276D78777FE14E6048164F95F3E63AD2973BECC89E319ED972418E54
|
||||||
|
218FFB96515298A3A08C559840BE71CAFF4D60DD5A5E06396C7686F4661A4E34FD02
|
6
tools/keys/0102.txt
Normal file
6
tools/keys/0102.txt
Normal 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
3
tools/keys/0103.key
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
40ED0236FD3D8B0CBA88C1CECFA549F8A838CDBAC487F9253F6C67F20C9627984FEA0D0A0BA035424C7B9F5E702286CEDCC66D2DA93320F7071BF2C93C59DE6B91
|
||||||
|
209B16C813701163C9221A6926F694971B0A4F777A3BD10E7E2C563B80D18F4155
|
||||||
|
211721160E2324E54459AE1DFF49D5EA21453027465E1EEEF2CDF8E05554C7A8B401
|
6
tools/keys/0103.txt
Normal file
6
tools/keys/0103.txt
Normal 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
3
tools/keys/0104.key
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
40AD2431DA2297E4175EAC61A3154FA3D847115794DD330AB7FF36BA59FEDA195FEA7C16743BD7BCED8A0DA885E5E5C34D5BF20D0AB3EF9181ED39BA2C4D898E87
|
||||||
|
205B2E54E9B5C1FE26CE93261478D3873F3FC41BFFF1F5F934D7A5793A43C1C21C
|
||||||
|
2197F7707B94079B73858720BF6D4909AB3BEDA1BA9B93112B041340A16ED597B604
|
6
tools/keys/0104.txt
Normal file
6
tools/keys/0104.txt
Normal 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
3
tools/keys/0108.key
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
407F0754F917A3D549754415DFA71A7FE11247DF26058001A246B0013FF355DA7FE46B1121FBB0E2A36BAC95BBA347261D7FBBC3B947DE3902AE9E8E51EE2532B5
|
||||||
|
20976B935A1A4E9A0A32C9996EA5B3F51F5E1BD1BB58D246D7DC8EE648346D3049
|
||||||
|
2159607D0D437D5775C737EB4D5718605CAD8EA3FD0274CBB6224B369920CBC87902
|
6
tools/keys/0108.txt
Normal file
6
tools/keys/0108.txt
Normal 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
3
tools/keys/0109.key
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
405D14C1A69D6985449FBAA57BEB7BA23EC96D4EBC088B6E245FA98DBEFBA68001AF3AF01FCFB73ED7C9976767D6C3350FE26CD865857F5F25E8125880D01E4285
|
||||||
|
200B5E1657411F43E9F9F98DC688C79380A0E7B43FA6943FC3BDCA25D0976EDC01
|
||||||
|
2137A0043A3A6051BBB546DBFB768AAC138826901EA2139D678CEB95600429749A47
|
6
tools/keys/0109.txt
Normal file
6
tools/keys/0109.txt
Normal 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
3
tools/keys/010A.key
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
4005D1EB8485AA14C983FFA04031B27C89950C3D7F4181FE603A353F48DE0933DFE1173BDD2E14FEB7325BAA35A12F21804DCFD30E56119C1305D348A77BCF448F
|
||||||
|
208BCEED26E2537E897E3AFDD1E831AEC1BF7437F4C9E1A0DD09B67B66938D9D02
|
||||||
|
21AFE026E1181E8196772F4DC38977E000421AAD8BD66F2C7F614DF20A90642EC736
|
6
tools/keys/010A.txt
Normal file
6
tools/keys/010A.txt
Normal 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
3
tools/keys/02.key
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
4081396D55C0989BC949FA30821FFE61C9441EDC3827D0E89EEE16DDEF697634B8E10B8B7F42FE7CC1A7478606D6D09F6FE96365E71E3D2AAA7C8D91068F1DFAF3
|
||||||
|
20E1A6FD4557AB2234E92FACBBADD9E7FA2452B5C238F1EF296AFB2BFE67BACC1E
|
||||||
|
21A106BE04DC99B4F389D3B96951224E064F417E34EEF53130E9BEDC9A721EE1EB07
|
6
tools/keys/02.txt
Normal file
6
tools/keys/02.txt
Normal 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
3
tools/keys/03.key
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
40E7C21F66BD1116F2F4F691121F3330060E24C8C7A1858D49636E24E80015F3AA25C2F6033AB39067D453945ABD8A5F4CFAFADABAF8BA2BFB88895A04B5D47689
|
||||||
|
202312902DCC81354C43EB01DB7E9404BC1140E85F1A0CC0B00E166B2290C5EE04
|
||||||
|
216D6E5F7F6C6E7248B28C475B066D447521E4F6168F0DBB7ACFD69EAD277D30DE1B
|
6
tools/keys/03.txt
Normal file
6
tools/keys/03.txt
Normal 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
3
tools/keys/04.key
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
408FE528B340EB1C88B505B2354BAADF47F3616D92CB532E7E5A2A0DFF1C4E4283CEEA2B2F7AD5F28B7E4BE4F3F4C99CABA0D98A8E5F2BE15E2AAC7CED0940EF82
|
||||||
|
20CDFF9610024DB1B7AD46D691E0E538BB00A1D840F5CCAF8EC0FED20C3A9D700B
|
||||||
|
21CB4662A9084F5076B117892EBA3FB0DF9EB24988A62A83890B5A0B4E18BD07720B
|
6
tools/keys/04.txt
Normal file
6
tools/keys/04.txt
Normal 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
3
tools/keys/05.key
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
406BABF27E9BF1826FD46CBF934E3360EF1F1D3D09D6C74E9DF78049D01A42F584BD383A10E64330C2EE6F1B1C5162789E91E94677900F85D98E7D99F49B30A2BF
|
||||||
|
20F59BA0274F1CA6231A882B053AAD9A2B80EBE9D2B6E9FD1CDCFCE1AD9D9414D3
|
||||||
|
20DFED657A28DE2BFF75DE4F1AEBB7555859779DA38A671B7C76F81B50F02A6AE8
|
6
tools/keys/05.txt
Normal file
6
tools/keys/05.txt
Normal 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
3
tools/keys/08.key
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
40110510EE17B0A300E2BB27441F266843EDB541BAC1077AC203CF18ABB7800F8F0E259495F80D863C49C4EE7E9FB1FE03488A140C7CD5A54CE148C8CE22B00783
|
||||||
|
207BEE08D9E4AD5B6872E14C48D26633E6E5A5529C84EDFCE80A6FAB848DEEFA08
|
||||||
|
21E34A0FB79D346138618437BE848BA72A0F4737F6EE6C5786AFF5A3BCEB044B970E
|
6
tools/keys/08.txt
Normal file
6
tools/keys/08.txt
Normal 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
3
tools/keys/09.key
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
40D1AF8EFD841732F96ABB28D11A557AC2B102B19D9FE6D7926CF8B0122A57A4B0D7F2DDFE1F3B2C2C23A4D3F01519FE4E60A3ACF9C035CD802B45DA0AFA3951D6
|
||||||
|
20C13946416BCC888549FD70FB37AF33EF95C8844EF429273271A5486627D6390F
|
||||||
|
21115A5717A51881A626D5B1F7AF134EC6B13937799F1FC652E7EA2F70949E68130E
|
6
tools/keys/09.txt
Normal file
6
tools/keys/09.txt
Normal 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
3
tools/keys/0A.key
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
40B11C71D4EA2C13C9AB2E501C6085FEC87FF3B88BFD783EAC43351E1B10F65AD31C79C1268F75051DC8FC008EBF593AE5912E8B653975C13127E2B60A0BEF5FEF
|
||||||
|
204DD5B4E544CACBC4EF869CDA30A6908FF7D1BDDB92B1ADE1E1C93CC614904894
|
||||||
|
21F5E2DFBCA3D5C86F4815DC69452E4FC7D122D650374E880B62294279F21A439D01
|
6
tools/keys/0A.txt
Normal file
6
tools/keys/0A.txt
Normal 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
3
tools/keys/datestamp.key
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
40151ED10541142F250DB7DFD771092E024DC75483E37A84ACA694752E33FF1BB5408B1B4871CE61FB1403C81F4E71FD8F89A7B03A39FC798D19471ABBA737E3A3
|
||||||
|
204547FD23B5CD3E61524F82EC77DBB72E951F6340F0FA08AE9D5385FF6B31D703
|
||||||
|
2191C0C80042D8FABCE153EFFC084F4E132C971D000631CB35AE3D2A99B21423AC2A
|
12
tools/keys/datestamp.txt
Normal file
12
tools/keys/datestamp.txt
Normal 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
BIN
tools/multihex.exe
Normal file
Binary file not shown.
BIN
tools/multihexold.exe
Normal file
BIN
tools/multihexold.exe
Normal file
Binary file not shown.
BIN
tools/packxxu.exe
Normal file
BIN
tools/packxxu.exe
Normal file
Binary file not shown.
BIN
tools/rabbitsign.exe
Normal file
BIN
tools/rabbitsign.exe
Normal file
Binary file not shown.
BIN
tools/spasm.exe
Normal file
BIN
tools/spasm.exe
Normal file
Binary file not shown.
Loading…
Reference in a new issue