diff --git a/FSHa.asm b/FSHa.asm index fcbc9dc..0f808e2 100644 --- a/FSHa.asm +++ b/FSHa.asm @@ -70,6 +70,7 @@ FshFlags: .DB %00000000 #include "includes/lib/std/std.inc" #include "includes/lib/fsh/fsh.inc" +#include "includes/lib/crypto/crypto.inc" #include "includes/man-db.asm" #include "includes/Command.asm" diff --git a/bin/FSHa.8xp b/bin/FSHa.8xp index ad25169..e2ec91f 100644 Binary files a/bin/FSHa.8xp and b/bin/FSHa.8xp differ diff --git a/bin/FSHa.lst b/bin/FSHa.lst new file mode 100644 index 0000000..1282a50 --- /dev/null +++ b/bin/FSHa.lst @@ -0,0 +1,3209 @@ + 1 00:0000 - - - - #include "includes/static/ti84pce.inc" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\static\ti84pce.inc" + 1 00:0000 - - - - ;TI-84 Plus CE Include File + 2 00:0000 - - - - + 3 00:0000 - - - - ;Various Parts Contributed by + 4 00:0000 - - - - ;- BrandonW + 5 00:0000 - - - - ;- calc84 + 6 00:0000 - - - - ;- MateoConLechuga + 7 00:0000 - - - - ;- Runer112 + 8 00:0000 - - - - ;- tr1p1ea + 9 00:0000 - - - - ;- Kerm Martian + 10 00:0000 - - - - ;- Texas Instruments (ti83plus.inc) +Listing for file "FSHa.asm" + 2 00:0000 - - - - #include "includes/static/define.inc" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\static\define.inc" + 1 00:0000 - - - - ; Included for Assembler Compatibility + 2 00:0000 - - - - ;------------------------------------ + 3 00:0000 - - - - #define equ .equ + 4 00:0000 - - - - #define EQU .equ + 5 00:0000 - - - - #define end .end + 6 00:0000 - - - - #define END .end + 7 00:0000 - - - - + 8 00:0000 - - - - #define FshVarsSize 128 ;256 bytes | 64 words + 9 00:0000 - - - - #define FshCmdSize 64 ;64 bytes | 44 chars , 5 qwords (CMD + args) , + 4 0's| 1 byte null | 2 byte optcode | 1 byte arg flags |1 byte (err code) | 6 unused + 10 00:0000 - - - - #define FshCmdInptSize 44 + 11 00:0000 - - - - #define FshCmdCmdSize 8 + 12 00:0000 - - - - #define FshScratchSize FshCmdSize - FshCmdInptSize + 13 00:0000 - - - - #define FshPrgmSize 1024 + 14 00:0000 - - - - + 15 00:0000 - - - - RamVars equ 0D0EA1Fh ;saveSScreen | 21945 bytes + 16 00:0000 - - - - FshVars equ RamVars + 17 00:0000 - - - - FshCmd equ FshVars + FshVarsSize + 18 00:0000 - - - - FshPrgm equ FshCmd + FshCmdSize + 19 00:0000 - - - - + 20 00:0000 - - - - FshCmdNull equ FshCmd + FshCmdInptSize + 21 00:0000 - - - - FshCmdOP equ FshCmdNull + 1 + 22 00:0000 - - - - FshCmdArg0 equ FshCmd + 9 + 23 00:0000 - - - - FshCmdArg1 equ FshCmdArg0 + 9 + 24 00:0000 - - - - FshCmdArg2 equ FshCmdArg1 + 9 + 25 00:0000 - - - - FshCmdArg3 equ FshCmdArg2 + 9 + 26 00:0000 - - - - FshCmdArgFlags equ FshCmdArg3 + 10 + 27 00:0000 - - - - FshCmdErrCode equ FshCmdArgFlags + 1 + 28 00:0000 - - - - + 29 00:0000 - - - - FshScratch equ FshCmdErrCode + 1 +Listing for file "FSHa.asm" + 3 00:0000 - - - - #include "includes/macros/macros.inc" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\macros\macros.inc" + 1 00:0000 - - - - #include "includes/macros/misc.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\macros\misc.asm" + 1 00:0000 - - - - ;;rgbto565 + 2 00:0000 - - - - ;;turns an rgb input into the 656 format that the lcd uses + 3 00:0000 - - - - ;;Inputs: + 4 00:0000 - - - - ;; r,g,b + 5 00:0000 - - - - ;;Outputs: + 6 00:0000 - - - - ;; HL: color + 7 00:0000 - - - - #macro rgbto565(red, green, blue) + 8 00:0000 ld hl, ((red / 255 * 31) << 11) | ((green / 255 * 63) << 5) | ((blue / 255 * 31)) + 9 00:0000 #endmacro +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\macros\macros.inc" + 2 00:0000 - - - - #include "includes/macros/pixel.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\macros\pixel.asm" + 1 00:0000 - - - - ;;pixel + 2 00:0000 - - - - ;;Gets vRam location of coordinates + 3 00:0000 - - - - ;;Inputs: + 4 00:0000 - - - - ;; x: x axis + 5 00:0000 - - - - ;; y: y axis + 6 00:0000 - - - - ;;Outputs: + 7 00:0000 - - - - ;; DE: vRam location + 8 00:0000 - - - - #macro pixel(x, y) + 9 00:0000 ld de, vRam + (y * 320 * 2) + (x * 2) + 10 00:0000 #endmacro +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\macros\macros.inc" + 3 00:0000 - - - - #include "includes/macros/draw.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\macros\draw.asm" + 1 00:0000 - - - - #macro drawpixelxyM(x, y) + 2 00:0000 ld de, x + 3 00:0000 ld a, y + 4 00:0000 call drawpixelxy + 5 00:0000 #endmacro + 6 00:0000 - - - - + 7 00:0000 - - - - #macro drawlineM(x1, y1, x2, y2) + 8 00:0000 ;TODO + 9 00:0000 #endmacro + 10 00:0000 - - - - + 11 00:0000 - - - - #macro drawrowM(y) + 12 00:0000 ld a, y + 13 00:0000 call drawrow + 14 00:0000 #endmacro + 15 00:0000 - - - - + 16 00:0000 - - - - #macro drawbarM(y, height) + 17 00:0000 ld a, y + 18 00:0000 ld bc, height + 19 00:0000 call drawbar + 20 00:0000 #endmacro + 21 00:0000 - - - - + 22 00:0000 - - - - #macro drawrectfilledM(x, y, width, height) + 23 00:0000 ex de, hl + 24 00:0000 ld ixl, e + 25 00:0000 ld ixh, d + 26 00:0000 ex de, hl + 27 00:0000 ld hl, width + 28 00:0000 ld de, x + 29 00:0000 ld bc, 0 + 30 00:0000 ld c, y + 31 00:0000 ld a, height + 32 00:0000 call drawrectfilled + 33 00:0000 #endmacro +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\macros\macros.inc" + 4 00:0000 - - - - #include "includes/macros/command.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\macros\command.asm" + 1 00:0000 - - - - ;;decodecmdopt + 2 00:0000 - - - - ;;compares cmdXs to command input and conditionally sets opt to optcode + 3 00:0000 - - - - ;;Inputs: + 4 00:0000 - - - - ;; HL: cmd string input + 5 00:0000 - - - - ;; DE: op code mem location + 6 00:0000 - - - - #macro decodecmdopt(cmdXs, cmdXo) + 7 00:0000 push hl + 8 00:0000 push de + 9 00:0000 ld de, cmdXs + 10 00:0000 call strcmp + 11 00:0000 ld hl, cmdXo + 12 00:0000 pop de + 13 00:0000 call z, bytecpy + 14 00:0000 pop hl + 15 00:0000 #endmacro + 16 00:0000 - - - - + 17 00:0000 - - - - #macro routeoptjp(cmdXo, cmdXf) + 18 00:0000 ld de, cmdXo + 19 00:0000 call bytecmp + 20 00:0000 jp z, cmdXf + 21 00:0000 #endmacro +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\macros\macros.inc" +Listing for file "FSHa.asm" + 4 00:0000 - - - - + 5 00:0000 - - - - .assume ADL=1 + 6 00:0000 - - - - .org userMem-2 + 7 D1:A87F EF 7B - - .DB tExtTok,tAsm84CeCmp + 8 D1:A881 - - - - + 9 D1:A881 - - - - Setup: + 10 D1:A881 CD 48 08 02 CALL _RunIndicOff + 11 D1:A885 CD 38 11 02 CALL _EnableAPD + 12 D1:A889 FD CB 08 DE SET apdRunning,(iy+apdFlags) + 13 D1:A88D CD 28 08 02 CALL _homeup + 14 D1:A891 CD 08 08 02 CALL _ClrLCDFull + 15 D1:A895 - - - - + 16 D1:A895 CD 8D B3 D1 CALL drawstatusbar + 17 D1:A899 - - - - + 18 D1:A899 CD C2 B1 D1 CALL fshvarreset + 19 D1:A89D - - - - + 20 D1:A89D CD 68 B3 D1 CALL printmotd + 21 D1:A8A1 - - - - + 22 D1:A8A1 - - - - Input: + 23 D1:A8A1 - - - - ;; TODO: Update status bar sometimes + 24 D1:A8A1 3E 00 - - LD A, $00 + 25 D1:A8A3 CD B3 AF D1 CALL commandfill + 26 D1:A8A7 - - - - + 27 D1:A8A7 21 2B A9 D1 LD HL, PS1 + 28 D1:A8AB CD 89 AA D1 CALL printprompt + 29 D1:A8AF - - - - + 30 D1:A8AF 21 9F EA D0 LD HL, FshCmd + 31 D1:A8B3 11 2C 00 00 LD DE, FshCmdInptSize + 32 D1:A8B7 CD 77 AC D1 CALL inputstr + 33 D1:A8BB - - - - + 34 D1:A8BB 21 9F EA D0 LD HL, FshCmd + 35 D1:A8BF CD CE AF D1 CALL fshparsecommand + 36 D1:A8C3 - - - - + 37 D1:A8C3 CD F0 07 02 CALL _NewLine + 38 D1:A8C7 - - - - + 39 D1:A8C7 - - - - Decode: + 40 D1:A8C7 21 9F EA D0 LD HL, FshCmd + 41 D1:A8CB 11 CC EA D0 LD DE, FshCmdOP + 42 D1:A8CF CD 3C B4 D1 CALL commanddecode + 43 D1:A8D3 - - - - + 44 D1:A8D3 - - - - Route: + 45 D1:A8D3 21 CC EA D0 LD HL, FshCmdOP + 46 D1:A8D7 C3 45 B4 D1 JP commandroute + 47 D1:A8DB - - - - + 48 D1:A8DB - - - - Fin: + 49 D1:A8DB C3 A1 A8 D1 JP Input + 50 D1:A8DF - - - - + 51 D1:A8DF - - - - Err: + 52 D1:A8DF C3 ED B1 D1 JP ErrRoute + 53 D1:A8E3 - - - - + 54 D1:A8E3 - - - - Cleanup: + 55 D1:A8E3 FD CB 03 C6 SET graphdraw,(IY+graphflags) + 56 D1:A8E7 CD 08 08 02 CALL _ClrLCDFull + 57 D1:A8EB CD 18 08 02 CALL _ClrTxtShdw + 58 D1:A8EF CD 28 08 02 CALL _homeup + 59 D1:A8F3 CD 3C 1A 02 call _DrawStatusBar + 60 D1:A8F7 - - - - + 61 D1:A8F7 - - - - Exit: + 62 D1:A8F7 FD CB 00 AE RES donePrgm,(iy+doneFlags) + 63 D1:A8FB C9 - - - RET + 64 D1:A8FC - - - - + 65 D1:A8FC - - - - #include "includes/Text.inc" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\Text.inc" + 1 D1:A8FC - - - - ;STRINGS ------------------------- + 2 D1:A8FC 46 73 68 20 + 53 48 65 6C + 6C 00 - - FshName: .db "Fsh SHell", 0 + 3 D1:A906 42 79 20 70 + 69 78 69 79 + 73 00 - - FshBy: .db "By pixiys", 0 + 4 D1:A910 73 74 65 70 + 68 65 6E 6C + 74 6F 74 68 + 2E 63 6F 6D + 2F 66 73 68 + 2D 73 68 65 + 6C 6C 00 - FshSite: .db "stephenltoth.com/fsh-shell", 0 + 5 D1:A92B 46 53 48 3E + 20 00 - - PS1: .db "FSH> ", 0 + 6 D1:A931 36 34 77 00 FshVVars: .db "64w", 0 + 7 D1:A935 30 00 - - FshVMajor: .db "0", 0 + 8 D1:A937 31 00 - - FshVMinor: .db "1", 0 + 9 D1:A939 30 00 - - FshVPatch: .db "0", 0 + 10 D1:A93B 32 30 35 00 FshVBuild: .db "205", 0 + 11 D1:A93F 2E 00 - - FshVSeparator: .db ".", 0 + 12 D1:A941 50 72 65 73 + 73 20 32 6E + 64 20 66 6F + 72 20 6E 75 + 6D 62 65 72 + 73 00 - - FshMotd2nd: .db "Press 2nd for numbers", 0 + 13 D1:A957 54 79 70 65 + 20 27 48 45 + 4C 50 27 20 + 66 6F 72 20 + 68 65 6C 70 + 00 - - - FshMotdHelp: .db "Type 'HELP' for help", 0 +Listing for file "FSHa.asm" + 66 D1:A96C 00 - - - FshFlags: .DB %00000000 + 67 D1:A96D - - - - ; 0: Debug Flag + 68 D1:A96D - - - - ; 1: Error Flag + 69 D1:A96D - - - - ; 2: Program Flag + 70 D1:A96D - - - - + 71 D1:A96D - - - - #include "includes/lib/std/std.inc" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\std\std.inc" + 1 D1:A96D - - - - #include "includes/lib/std/Math.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\std\Math.asm" + 1 D1:A96D - - - - ;;cpHLDE + 2 D1:A96D - - - - ;;Compares HL to DE. + 3 D1:A96D - - - - ;;Output: + 4 D1:A96D - - - - ;; Same as z80 CP instruction. + 5 D1:A96D - - - - cpHLDE: + 6 D1:A96D B7 - - - or a + 7 D1:A96E ED 52 - - sbc hl, de + 8 D1:A970 19 - - - add hl,de + 9 D1:A971 C9 - - - ret + 10 D1:A972 - - - - + 11 D1:A972 - - - - ;;cpHLBC + 12 D1:A972 - - - - ;;Compares HL to BC. + 13 D1:A972 - - - - ;;Output: + 14 D1:A972 - - - - ;; Same as z80 CP instruction. + 15 D1:A972 - - - - cpHLBC: + 16 D1:A972 B7 - - - or a + 17 D1:A973 ED 42 - - sbc hl, bc + 18 D1:A975 09 - - - add hl,bc + 19 D1:A976 C9 - - - ret + 20 D1:A977 - - - - + 21 D1:A977 - - - - ;;cpBCDE + 22 D1:A977 - - - - ;;Compares DE to BC. + 23 D1:A977 - - - - ;;Output: + 24 D1:A977 - - - - ;; Same as z80 CP instruction. + 25 D1:A977 - - - - cpBCDE: + 26 D1:A977 E5 - - - push hl + 27 D1:A978 60 - - - ld h, b + 28 D1:A979 69 - - - ld l, c + 29 D1:A97A B7 - - - or a + 30 D1:A97B ED 52 - - sbc hl, de + 31 D1:A97D E1 - - - pop hl + 32 D1:A97E C9 - - - ret + 33 D1:A97F - - - - + 34 D1:A97F - - - - ;;mulAbyB + 35 D1:A97F - - - - ;;Multiplys AxB + 36 D1:A97F - - - - ;;Inputs: + 37 D1:A97F - - - - ;; A: Multiplier + 38 D1:A97F - - - - ;; B: Multiplicand + 39 D1:A97F - - - - ;;Outputs: + 40 D1:A97F - - - - ;; A: Product of A and B. + 41 D1:A97F - - - - mulAbyB: + 42 D1:A97F C5 - - - push bc + 43 D1:A980 4F - - - ld c, a + 44 D1:A981 - - - - mulAbyBLoop: + 45 D1:A981 81 - - - add a, c + 46 D1:A982 10 FD - - djnz mulAbyBLoop + 47 D1:A984 91 - - - sub c + 48 D1:A985 C1 - - - pop bc + 49 D1:A986 C9 - - - ret + 50 D1:A987 - - - - + 51 D1:A987 - - - - ;;mulAbyHL + 52 D1:A987 - - - - ;;Multiplys AxHL + 53 D1:A987 - - - - ;;Inputs: + 54 D1:A987 - - - - ;; A: Multiplier + 55 D1:A987 - - - - ;; HL: Multiplicand + 56 D1:A987 - - - - ;;Outputs: + 57 D1:A987 - - - - ;; HL: Product of A and HL. + 58 D1:A987 - - - - mulAbyHL: + 59 D1:A987 C5 - - - push bc + 60 D1:A988 D5 - - - push de + 61 D1:A989 11 00 00 00 ld de, 0 + 62 D1:A98D EB - - - ex de, hl + 63 D1:A98E FE 00 - - cp 0 + 64 D1:A990 28 04 - - jr z, mulAbyHLEnd + 65 D1:A992 47 - - - ld b, a + 66 D1:A993 - - - - mulAbyHLLoop: + 67 D1:A993 19 - - - add hl, de + 68 D1:A994 10 FD - - djnz mulAbyHLLoop + 69 D1:A996 - - - - mulAbyHLEnd: + 70 D1:A996 D1 - - - pop de + 71 D1:A997 C1 - - - pop bc + 72 D1:A998 C9 - - - ret + 73 D1:A999 - - - - + 74 D1:A999 - - - - + 75 D1:A999 - - - - ;;mul32By8 + 76 D1:A999 - - - - ;;Performs an unsigned multiplication of DEHL and A. + 77 D1:A999 - - - - ;;Outputs: + 78 D1:A999 - - - - ;; DEHL: product of DEHL and A + 79 D1:A999 - - - - mul32By8: + 80 D1:A999 C5 DD E5 - push bc \ push ix + 81 D1:A99C DD 2E 08 - ld ixl, 8 + 82 D1:A99F D5 - - - push de + 83 D1:A9A0 E5 - - - push hl + 84 D1:A9A1 21 00 00 00 ld hl, 0 + 85 D1:A9A5 54 - - - ld d, h + 86 D1:A9A6 5D - - - ld e, l + 87 D1:A9A7 - - - - mul32by8loop: + 88 D1:A9A7 29 - - - add hl, hl + 89 D1:A9A8 CB 13 - - rl e + 90 D1:A9AA CB 12 - - rl d + 91 D1:A9AC 17 - - - rla + 92 D1:A9AD 30 0A - - jr nc, mul32by8noAdd + 93 D1:A9AF C1 - - - pop bc + 94 D1:A9B0 09 - - - add hl, bc + 95 D1:A9B1 E3 - - - ex (sp), hl + 96 D1:A9B2 E5 - - - push hl + 97 D1:A9B3 ED 5A - - adc hl, de + 98 D1:A9B5 D1 - - - pop de + 99 D1:A9B6 EB - - - ex de, hl + 100 D1:A9B7 E3 - - - ex (sp), hl + 101 D1:A9B8 C5 - - - push bc + 102 D1:A9B9 - - - - mul32by8noAdd: + 103 D1:A9B9 DD 2D - - dec ixl + 104 D1:A9BB 20 EA - - jr nz, mul32by8loop + 105 D1:A9BD C1 - - - pop bc + 106 D1:A9BE C1 - - - pop bc + 107 D1:A9BF DD E1 C1 - pop ix \ pop bc + 108 D1:A9C2 C9 - - - ret + 109 D1:A9C3 - - - - +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\std\std.inc" + 2 D1:A9C3 - - - - #include "includes/lib/std/Byte.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\std\Byte.asm" + 1 D1:A9C3 - - - - ;;bytecmp + 2 D1:A9C3 - - - - ;;Determines if two bytes are equal. + 3 D1:A9C3 - - - - ;;Inputs: + 4 D1:A9C3 - - - - ;; HL: Byte pointer + 5 D1:A9C3 - - - - ;; DE: Byte pointer + 6 D1:A9C3 - - - - ;;Outputs: + 7 D1:A9C3 - - - - ;; Z: Set if equal, reset if not equal + 8 D1:A9C3 - - - - bytecmp: + 9 D1:A9C3 E5 - - - push hl + 10 D1:A9C4 D5 - - - push de + 11 D1:A9C5 1A - - - ld a, (de) + 12 D1:A9C6 B7 - - - or a + 13 D1:A9C7 BE - - - cp (hl) + 14 D1:A9C8 D1 - - - pop de + 15 D1:A9C9 E1 - - - pop hl + 16 D1:A9CA C9 - - - ret + 17 D1:A9CB - - - - + 18 D1:A9CB - - - - ;;bytecpy + 19 D1:A9CB - - - - ;; Copies a byte. + 20 D1:A9CB - - - - ;;Inputs: + 21 D1:A9CB - - - - ;; HL: Byte pointer + 22 D1:A9CB - - - - ;; DE: Destination + 23 D1:A9CB - - - - bytecpy: + 24 D1:A9CB D5 - - - push de + 25 D1:A9CC E5 - - - push hl + 26 D1:A9CD EB - - - ex de, hl + 27 D1:A9CE 1A - - - ld a, (de) + 28 D1:A9CF 77 - - - ld (hl), a + 29 D1:A9D0 E1 - - - pop hl + 30 D1:A9D1 D1 - - - pop de + 31 D1:A9D2 C9 - - - ret +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\std\std.inc" + 3 D1:A9D3 - - - - #include "includes/lib/std/Mem.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\std\Mem.asm" + 1 D1:A9D3 - - - - ;;memset + 2 D1:A9D3 - - - - ;;Fills B amount of bytes from hl with a + 3 D1:A9D3 - - - - ;;Inputs: + 4 D1:A9D3 - - - - ;; HL: start + 5 D1:A9D3 - - - - ;; B: how many bytes + 6 D1:A9D3 - - - - ;; A: Byte + 7 D1:A9D3 - - - - memset: + 8 D1:A9D3 E5 - - - push hl + 9 D1:A9D4 C5 - - - push bc + 10 D1:A9D5 - - - - memsetLoop: + 11 D1:A9D5 77 - - - ld (hl), a + 12 D1:A9D6 23 - - - inc hl + 13 D1:A9D7 10 FC - - djnz memsetLoop + 14 D1:A9D9 C1 - - - pop bc + 15 D1:A9DA E1 - - - pop hl + 16 D1:A9DB C9 - - - ret +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\std\std.inc" + 4 D1:A9DC - - - - #include "includes/lib/std/Char.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\std\Char.asm" + 1 D1:A9DC - - - - #include "includes/tables/CSC.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\tables\CSC.asm" + 1 D1:A9DC - - - - charMapCSC: + 2 D1:A9DC 22 57 52 4D + 48 FF FF - .DB "\"WRMH", $FF, $FF + 3 D1:A9E3 3F 5B 56 51 + 4C 47 FF FF .DB Lquestion, Ltheta, "VQLG", $FF, $FF + 4 D1:A9EB 3A 5A 55 50 + 4B 46 43 FF .DB ":ZUPKFC", $FF + 5 D1:A9F3 20 59 54 4F + 4A 45 42 FF .DB " YTOJEB", $FF + 6 D1:A9FB FF 58 53 4E + 49 44 41 - .DB $FF, "XSNIDA" + 7 D1:AA02 - - - - + 8 D1:AA02 - - - - numsymMapCSC + 9 D1:AA02 2B 2D 2A 2F + 5E FF FF - .DB "+-*/^", $FF, $FF + 10 D1:AA09 5F 33 36 39 + 29 C1 5D FF .DB "_369)", $C1, "]", $FF + 11 D1:AA11 2E 32 35 38 + 28 7B 7D 3B .DB ".258({};" + 12 D1:AA19 30 31 34 37 + 2C 20 3C 3E + 7C FF - - .DB "0147, <>|", $FF + 13 D1:AA23 05 21 40 23 + 25 26 - - .DB $05, "!@#%&" + 14 D1:AA29 - - - - + 15 D1:AA29 - - - - numMapCSC + 16 D1:AA29 FF FF FF FF + FF FF FF - .DB $FF, $FF, $FF, $FF, $FF, $FF, $FF + 17 D1:AA30 FF 33 36 39 + FF FF FF FF .DB $FF, "369", $FF, $FF, $FF, $FF + 18 D1:AA38 FF 32 35 38 + FF FF FF FF .DB $FF, "258", $FF, $FF, $FF, $FF + 19 D1:AA40 30 31 34 37 + FF FF FF FF + FF FF - - .DB "0147", $FF, $FF, $FF, $FF, $FF, $FF + 20 D1:AA4A FF FF FF FF + FF FF - - .DB $FF, $FF, $FF, $FF, $FF, $FF +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\std\Char.asm" + 2 D1:AA50 - - - - ;;chartoascii + 3 D1:AA50 - - - - ;;Converts a char to "ascii" + 4 D1:AA50 - - - - ;;Inputs: + 5 D1:AA50 - - - - ;; A: char code (csc) + 6 D1:AA50 - - - - ;;Outputs: + 7 D1:AA50 - - - - ;; A: ascii char + 8 D1:AA50 - - - - chartoascii: + 9 D1:AA50 E5 - - - push hl + 10 D1:AA51 21 00 00 00 ld hl, 0 + 11 D1:AA55 26 00 - - ld h, 0 + 12 D1:AA57 6F - - - ld l, a + 13 D1:AA58 11 DC A9 D1 ld de, charMapCSC + 14 D1:AA5C 19 - - - add hl, de + 15 D1:AA5D 7E - - - ld a, (hl) + 16 D1:AA5E E1 - - - pop hl + 17 D1:AA5F C9 - - - ret + 18 D1:AA60 - - - - + 19 D1:AA60 - - - - ;;Charnumtoascii + 20 D1:AA60 - - - - ;;Converts a char to "ascii" + 21 D1:AA60 - - - - ;;Inputs: + 22 D1:AA60 - - - - ;; A: char code (csc) + 23 D1:AA60 - - - - ;;Outputs: + 24 D1:AA60 - - - - ;; A: ascii char + 25 D1:AA60 - - - - charnumtoascii: + 26 D1:AA60 E5 - - - push hl + 27 D1:AA61 21 00 00 00 ld hl, 0 + 28 D1:AA65 26 00 - - ld h, 0 + 29 D1:AA67 6F - - - ld l, a + 30 D1:AA68 11 29 AA D1 ld de, numMapCSC + 31 D1:AA6C 19 - - - add hl, de + 32 D1:AA6D 7E - - - ld a, (hl) + 33 D1:AA6E E1 - - - pop hl + 34 D1:AA6F C9 - - - ret + 35 D1:AA70 - - - - + 36 D1:AA70 - - - - ;;charnumsymtoascii + 37 D1:AA70 - - - - ;;Converts a char to "ascii" + 38 D1:AA70 - - - - ;;Inputs: + 39 D1:AA70 - - - - ;; A: char code (csc) + 40 D1:AA70 - - - - ;;Outputs: + 41 D1:AA70 - - - - ;; A: ascii char + 42 D1:AA70 - - - - charnumsymtoascii: + 43 D1:AA70 E5 - - - push hl + 44 D1:AA71 21 00 00 00 ld hl, 0 + 45 D1:AA75 26 00 - - ld h, 0 + 46 D1:AA77 6F - - - ld l, a + 47 D1:AA78 11 02 AA D1 ld de, numsymMapCSC + 48 D1:AA7C 19 - - - add hl, de + 49 D1:AA7D 7E - - - ld a, (hl) + 50 D1:AA7E E1 - - - pop hl + 51 D1:AA7F C9 - - - ret +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\std\std.inc" + 5 D1:AA80 - - - - #include "includes/lib/std/Cursor.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\std\Cursor.asm" + 1 D1:AA80 - - - - ;;cursorcharunderreset + 2 D1:AA80 - - - - ;;Sets curUnder to 0 + 3 D1:AA80 - - - - cursorcurunderreset: + 4 D1:AA80 E5 - - - push hl + 5 D1:AA81 21 99 05 D0 ld hl, curUnder + 6 D1:AA85 36 20 - - ld (hl), ' ' + 7 D1:AA87 E1 - - - pop hl + 8 D1:AA88 C9 - - - ret +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\std\std.inc" + 6 D1:AA89 - - - - #include "includes/lib/std/Print.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\std\Print.asm" + 1 D1:AA89 - - - - ;;printprompt + 2 D1:AA89 - - - - ;;Sets curcol to 0 and prints prompt + 3 D1:AA89 - - - - ;;Inputs: + 4 D1:AA89 - - - - ;; HL: Prompt String Location + 5 D1:AA89 - - - - printprompt: + 6 D1:AA89 E5 - - - push hl + 7 D1:AA8A AF - - - xor a + 8 D1:AA8B 32 96 05 D0 ld (CurCol), a + 9 D1:AA8F CD C0 07 02 call _PutS + 10 D1:AA93 E1 - - - pop hl + 11 D1:AA94 C9 - - - ret +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\std\std.inc" + 7 D1:AA95 - - - - #include "includes/lib/std/Draw.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\std\Draw.asm" + 1 D1:AA95 - - - - ;;drawpixel + 2 D1:AA95 - - - - ;;Sets a pixel to specified color (565) + 3 D1:AA95 - - - - ;;Inputs: + 4 D1:AA95 - - - - ;; HL: color + 5 D1:AA95 - - - - ;; DE: vRam location + 6 D1:AA95 - - - - drawpixel: + 7 D1:AA95 E5 - - - push hl + 8 D1:AA96 D5 - - - push de + 9 D1:AA97 EB - - - ex de, hl + 10 D1:AA98 73 - - - ld (hl), e + 11 D1:AA99 23 - - - inc hl + 12 D1:AA9A 72 - - - ld (hl), d + 13 D1:AA9B D1 - - - pop de + 14 D1:AA9C E1 - - - pop hl + 15 D1:AA9D C9 - - - ret + 16 D1:AA9E - - - - + 17 D1:AA9E - - - - ;;drawpixelxy + 18 D1:AA9E - - - - ;;Sets a pixel to specified color + 19 D1:AA9E - - - - ;;Inputs: + 20 D1:AA9E - - - - ;; HL: color + 21 D1:AA9E - - - - ;; DE: x + 22 D1:AA9E - - - - ;; A: y + 23 D1:AA9E - - - - drawpixelxy + 24 D1:AA9E D5 - - - push de + 25 D1:AA9F E5 - - - push hl + 26 D1:AAA0 EB - - - ex de, hl + 27 D1:AAA1 29 - - - add hl, hl + 28 D1:AAA2 E5 - - - push hl + 29 D1:AAA3 21 80 02 00 ld hl, 640 + 30 D1:AAA7 CD 87 A9 D1 call mulAbyHL + 31 D1:AAAB EB - - - ex de, hl + 32 D1:AAAC E1 - - - pop hl + 33 D1:AAAD 19 - - - add hl, de + 34 D1:AAAE 11 00 00 D4 ld de, vRam + 35 D1:AAB2 19 - - - add hl, de + 36 D1:AAB3 EB - - - ex de, hl + 37 D1:AAB4 E1 - - - pop hl + 38 D1:AAB5 CD 95 AA D1 call drawpixel + 39 D1:AAB9 D1 - - - pop de + 40 D1:AABA C9 - - - ret + 41 D1:AABB - - - - + 42 D1:AABB - - - - ;;drawrow + 43 D1:AABB - - - - ;;Draws a row on lcd + 44 D1:AABB - - - - ;;Inputs: + 45 D1:AABB - - - - ;; A: y + 46 D1:AABB - - - - ;; HL: color + 47 D1:AABB - - - - drawrow: + 48 D1:AABB E5 - - - push hl + 49 D1:AABC C5 - - - push bc + 50 D1:AABD E5 - - - push hl + 51 D1:AABE 21 E0 01 00 ld hl, lcdHeight * 2 + 52 D1:AAC2 CD 87 A9 D1 call mulAbyHL + 53 D1:AAC6 11 00 00 D4 ld de, vRam + 54 D1:AACA 19 - - - add hl, de + 55 D1:AACB EB - - - ex de, hl + 56 D1:AACC E1 - - - pop hl + 57 D1:AACD 01 40 01 00 ld bc, lcdWidth + 58 D1:AAD1 - - - - drawrowLoop: + 59 D1:AAD1 CD 95 AA D1 call drawpixel + 60 D1:AAD5 13 - - - inc de + 61 D1:AAD6 13 - - - inc de + 62 D1:AAD7 0B - - - dec bc + 63 D1:AAD8 E5 - - - push hl + 64 D1:AAD9 21 00 00 00 ld hl, 0 + 65 D1:AADD CD 72 A9 D1 call cpHLBC + 66 D1:AAE1 E1 - - - pop hl + 67 D1:AAE2 20 ED - - jr nz, drawrowLoop + 68 D1:AAE4 C1 - - - pop bc + 69 D1:AAE5 E1 - - - pop hl + 70 D1:AAE6 C9 - - - ret + 71 D1:AAE7 - - - - + 72 D1:AAE7 - - - - ;;drawbar + 73 D1:AAE7 - - - - ;;Loops drawing row + 74 D1:AAE7 - - - - ;;Inputs: + 75 D1:AAE7 - - - - ;; A: y + 76 D1:AAE7 - - - - ;; [B]C: height + 77 D1:AAE7 - - - - ;; HL: color + 78 D1:AAE7 - - - - drawbar: + 79 D1:AAE7 C5 - - - push bc + 80 D1:AAE8 - - - - drawbarLoop: + 81 D1:AAE8 CD BB AA D1 call drawrow + 82 D1:AAEC 0B - - - dec bc + 83 D1:AAED 3C - - - inc a + 84 D1:AAEE E5 - - - push hl + 85 D1:AAEF 21 00 00 00 ld hl, 0 + 86 D1:AAF3 CD 72 A9 D1 call cpHLBC + 87 D1:AAF7 E1 - - - pop hl + 88 D1:AAF8 20 EE - - jr nz, drawbarLoop + 89 D1:AAFA C1 - - - pop bc + 90 D1:AAFB C9 - - - ret + 91 D1:AAFC - - - - + 92 D1:AAFC - - - - ;;drawrectfilled + 93 D1:AAFC - - - - ;;Draws a rectangle from coordinates (Slow) + 94 D1:AAFC - - - - ;;Inputs: + 95 D1:AAFC - - - - ;; DE: x + 96 D1:AAFC - - - - ;; C: y + 97 D1:AAFC - - - - ;; HL: width + 98 D1:AAFC - - - - ;; A: height + 99 D1:AAFC - - - - ;; IXH+IXL: color + 100 D1:AAFC - - - - drawrectfilled: + 101 D1:AAFC 19 - - - add hl, de + 102 D1:AAFD 81 - - - add a, c + 103 D1:AAFE 47 - - - ld b, a + 104 D1:AAFF - - - - drawrectfilledLoopY: + 105 D1:AAFF D5 - - - push de + 106 D1:AB00 - - - - drawrectfilledLoopX: + 107 D1:AB00 E5 - - - push hl + 108 D1:AB01 C5 - - - push bc + 109 D1:AB02 EB - - - ex de, hl + 110 D1:AB03 DD 54 - - ld d, ixh + 111 D1:AB05 DD 5D - - ld e, ixl + 112 D1:AB07 EB - - - ex de, hl + 113 D1:AB08 79 - - - ld a, c + 114 D1:AB09 CD 9E AA D1 call drawpixelxy + 115 D1:AB0D C1 - - - pop bc + 116 D1:AB0E E1 - - - pop hl + 117 D1:AB0F 13 - - - inc de + 118 D1:AB10 CD 6D A9 D1 call cpHLDE + 119 D1:AB14 20 EA - - jr nz, drawrectfilledLoopX + 120 D1:AB16 D1 - - - pop de + 121 D1:AB17 0C - - - inc c + 122 D1:AB18 78 - - - ld a, b + 123 D1:AB19 B9 - - - cp c + 124 D1:AB1A 20 E3 - - jr nz, drawrectfilledLoopY + 125 D1:AB1C C9 - - - ret +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\std\std.inc" + 8 D1:AB1D - - - - #include "includes/lib/std/Array.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\std\Array.asm" + 1 D1:AB1D - - - - ;;array2d + 2 D1:AB1D - - - - ;;gets the address of 2d array + 3 D1:AB1D - - - - ;;Inputs: + 4 D1:AB1D - - - - ;; H: y + 5 D1:AB1D - - - - ;; L: x width + 6 D1:AB1D - - - - ;; B: x + 7 D1:AB1D - - - - ;; DE: Array start + 8 D1:AB1D - - - - ;;Outputs: + 9 D1:AB1D - - - - ;; DE: Array loc address + 10 D1:AB1D - - - - array2d: + 11 D1:AB1D E5 - - - push hl + 12 D1:AB1E ED 6C - - mlt hl + 13 D1:AB20 19 - - - add hl, de + 14 D1:AB21 11 00 00 00 ld de, 0 + 15 D1:AB25 58 - - - ld e, b + 16 D1:AB26 19 - - - add hl, de + 17 D1:AB27 EB - - - ex de, hl + 18 D1:AB28 E1 - - - pop hl + 19 D1:AB29 C9 - - - ret +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\std\std.inc" + 9 D1:AB2A - - - - + 10 D1:AB2A - - - - #include "includes/lib/std/String.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\std\String.asm" + 1 D1:AB2A - - - - ;;strlen + 2 D1:AB2A - - - - ;;Determines the length of a zero delimited string. + 3 D1:AB2A - - - - ;;Inputs: + 4 D1:AB2A - - - - ;; HL: String pointer + 5 D1:AB2A - - - - ;;Outputs: + 6 D1:AB2A - - - - ;; BC: String length + 7 D1:AB2A - - - - strlen: + 8 D1:AB2A F5 - - - push af + 9 D1:AB2B E5 - - - push hl + 10 D1:AB2C AF - - - xor a + 11 D1:AB2D 47 - - - ld b, a + 12 D1:AB2E 4F - - - ld c, a + 13 D1:AB2F ED B1 - - cpir + 14 D1:AB31 - - - - ; bc = -bc + 15 D1:AB31 AF 91 4F 9F + 90 47 - - xor a \ sub c \ ld c, a \ sbc a, a \ sub b \ ld b, a + 16 D1:AB37 0B - - - dec bc + 17 D1:AB38 E1 - - - pop hl + 18 D1:AB39 F1 - - - pop af + 19 D1:AB3A C9 - - - ret + 20 D1:AB3B - - - - + 21 D1:AB3B - - - - ;;strcmp + 22 D1:AB3B - - - - ;;Determines if two strings are equal, and checks alphabetical sort order. + 23 D1:AB3B - - - - ;;Inputs: + 24 D1:AB3B - - - - ;; HL: String pointer + 25 D1:AB3B - - - - ;; DE: String pointer + 26 D1:AB3B - - - - ;;Outputs: + 27 D1:AB3B - - - - ;; Z: Set if equal, reset if not equal + 28 D1:AB3B - - - - ;; C: Set if string HL is alphabetically earlier than string DE + 29 D1:AB3B - - - - strcmp: + 30 D1:AB3B E5 - - - push hl + 31 D1:AB3C D5 - - - push de + 32 D1:AB3D - - - - strcmpLoop: + 33 D1:AB3D 1A - - - ld a, (de) + 34 D1:AB3E B7 - - - or a + 35 D1:AB3F 28 07 - - jr z, strCmpEnd + 36 D1:AB41 BE - - - cp (hl) + 37 D1:AB42 20 06 - - jr nz, strcmpExit + 38 D1:AB44 23 - - - inc hl + 39 D1:AB45 13 - - - inc de + 40 D1:AB46 18 F5 - - jr strcmpLoop + 41 D1:AB48 - - - - strcmpEnd: + 42 D1:AB48 7E - - - ld a, (hl) + 43 D1:AB49 B7 - - - or a + 44 D1:AB4A - - - - strcmpExit: + 45 D1:AB4A 3F - - - ccf + 46 D1:AB4B D1 - - - pop de + 47 D1:AB4C E1 - - - pop hl + 48 D1:AB4D C9 - - - ret + 49 D1:AB4E - - - - + 50 D1:AB4E - - - - ;;strcpy + 51 D1:AB4E - - - - ;;Copies a string. + 52 D1:AB4E - - - - ;;Inputs: + 53 D1:AB4E - - - - ;; HL: String pointer + 54 D1:AB4E - - - - ;; DE: Destination + 55 D1:AB4E - - - - ;;Notes: + 56 D1:AB4E - - - - ;; This will trample into undefined territory if you try to copy a string into some + 57 D1:AB4E - - - - ;;allocated memory it won't fit in. + 58 D1:AB4E - - - - strcpy: + 59 D1:AB4E D5 - - - push de + 60 D1:AB4F E5 - - - push hl + 61 D1:AB50 EB - - - ex de, hl + 62 D1:AB51 1A - - - _: ld a, (de) + 63 D1:AB52 77 - - - ld (hl), a + 64 D1:AB53 B7 - - - or a + 65 D1:AB54 28 04 - - jr z, _ + 66 D1:AB56 23 13 - - inc hl \ inc de + 67 D1:AB58 18 F7 - - jr -_ + 68 D1:AB5A E1 - - - _: pop hl + 69 D1:AB5B D1 - - - pop de + 70 D1:AB5C C9 - - - ret + 71 D1:AB5D - - - - + 72 D1:AB5D - - - - ;;strchr + 73 D1:AB5D - - - - ;;Returns a pointer on the first occurence of a character in a string. + 74 D1:AB5D - - - - ;;Inputs: + 75 D1:AB5D - - - - ;; HL: Haystack + 76 D1:AB5D - - - - ;; B: Needle + 77 D1:AB5D - - - - ;;Outputs: + 78 D1:AB5D - - - - ;; HL: Pointer to first occurence of character + 79 D1:AB5D - - - - ;; Z: Set if character found + 80 D1:AB5D - - - - ;; A: Destroyed + 81 D1:AB5D - - - - strchr: + 82 D1:AB5D - - - - strchrLoop: + 83 D1:AB5D 7E - - - ld a, (hl) + 84 D1:AB5E B7 - - - or a + 85 D1:AB5F 28 05 - - jr z, strchrNoCharFound + 86 D1:AB61 B8 - - - cp b + 87 D1:AB62 C8 - - - ret z + 88 D1:AB63 23 - - - inc hl + 89 D1:AB64 18 F7 - - jr strchrLoop + 90 D1:AB66 - - - - strchrNoCharFound: + 91 D1:AB66 3C - - - inc a + 92 D1:AB67 C9 - - - ret + 93 D1:AB68 - - - - + 94 D1:AB68 - - - - ;;strtob + 95 D1:AB68 - - - - ;;Converts a string to a byte + 96 D1:AB68 - - - - ;;Inputs: + 97 D1:AB68 - - - - ;; HL: string pointer + 98 D1:AB68 - - - - ;;Outputs: + 99 D1:AB68 - - - - ;; A: byte + 100 D1:AB68 - - - - strtob: + 101 D1:AB68 C5 - - - push bc + 102 D1:AB69 D5 - - - push de + 103 D1:AB6A 0E 00 - - ld c, 0 + 104 D1:AB6C - - - - strtobNumFind: + 105 D1:AB6C 7E - - - ld a, (hl) + 106 D1:AB6D FE 00 - - cp $00 + 107 D1:AB6F CA C1 AB D1 jp z, strtobEXIT + 108 D1:AB73 0E 00 - - ld c, 0 + 109 D1:AB75 D6 31 - - sub '1' + 110 D1:AB77 FE 3A - - cp '9' + 1 + 111 D1:AB79 38 03 - - jr c, strtobNumWhile + 112 D1:AB7B 23 - - - inc hl + 113 D1:AB7C 18 EE - - jr strtobNumFind + 114 D1:AB7E - - - - strtobNumWhile: + 115 D1:AB7E E5 - - - push hl + 116 D1:AB7F - - - - strtobNumWhileLoop: + 117 D1:AB7F 79 - - - ld a, c + 118 D1:AB80 FE 03 - - cp 3 + 119 D1:AB82 D2 93 AB D1 jp nc, strtobConvert + 120 D1:AB86 7E - - - ld a, (hl) + 121 D1:AB87 D6 2F - - sub '0' - 1 + 122 D1:AB89 38 08 - - jr c, strtobConvert + 123 D1:AB8B FE 3A - - cp '9' + 1 + 124 D1:AB8D 30 04 - - jr nc, strtobConvert + 125 D1:AB8F 23 - - - inc hl + 126 D1:AB90 0C - - - inc c + 127 D1:AB91 18 EC - - jr strtobNumWhileLoop + 128 D1:AB93 - - - - strtobConvert: + 129 D1:AB93 2B - - - dec hl + 130 D1:AB94 7E - - - ld a, (hl) + 131 D1:AB95 D6 30 - - sub '0' + 132 D1:AB97 4F - - - ld c, a + 133 D1:AB98 2B - - - dec hl + 134 D1:AB99 D1 - - - pop de + 135 D1:AB9A CD 6D A9 D1 call cpHLDE + 136 D1:AB9E DA C1 AB D1 jp c, strtobExit + 137 D1:ABA2 7E - - - ld a, (hl) + 138 D1:ABA3 D6 30 - - sub '0' + 139 D1:ABA5 06 0A - - ld b, 10 + 140 D1:ABA7 CD 7F A9 D1 call mulAbyB + 141 D1:ABAB 81 - - - add a, c + 142 D1:ABAC 4F - - - ld c, a + 143 D1:ABAD 2B - - - dec hl + 144 D1:ABAE CD 6D A9 D1 call cpHLDE + 145 D1:ABB2 DA C1 AB D1 jp c, strtobExit + 146 D1:ABB6 7E - - - ld a, (hl) + 147 D1:ABB7 D6 30 - - sub '0' + 148 D1:ABB9 06 64 - - ld b, 100 + 149 D1:ABBB CD 7F A9 D1 call mulAbyB + 150 D1:ABBF 81 - - - add a, c + 151 D1:ABC0 4F - - - ld c, a + 152 D1:ABC1 - - - - strtobExit: + 153 D1:ABC1 79 - - - ld a, c + 154 D1:ABC2 D1 - - - pop de + 155 D1:ABC3 C1 - - - pop bc + 156 D1:ABC4 C9 - - - ret + 157 D1:ABC5 - - - - + 158 D1:ABC5 - - - - ;;strtow + 159 D1:ABC5 - - - - ;;Converts a string to a byte + 160 D1:ABC5 - - - - ;;Inputs: + 161 D1:ABC5 - - - - ;; HL: string pointer + 162 D1:ABC5 - - - - ;;Outputs: + 163 D1:ABC5 - - - - ;; HL: byte + 164 D1:ABC5 - - - - strtow: + 165 D1:ABC5 C5 - - - push bc + 166 D1:ABC6 D5 - - - push de + 167 D1:ABC7 01 00 00 00 ld bc, 0 + 168 D1:ABCB - - - - strtowNumFind: + 169 D1:ABCB 7E - - - ld a, (hl) + 170 D1:ABCC FE 00 - - cp $00 + 171 D1:ABCE CA 64 AC D1 jp z, strtowEXIT + 172 D1:ABD2 0E 00 - - ld c, 0 + 173 D1:ABD4 D6 31 - - sub '1' + 174 D1:ABD6 FE 3A - - cp '9' + 1 + 175 D1:ABD8 38 03 - - jr c, strtowNumWhile + 176 D1:ABDA 23 - - - inc hl + 177 D1:ABDB 18 EE - - jr strtowNumFind + 178 D1:ABDD - - - - strtowNumWhile: + 179 D1:ABDD E5 - - - push hl + 180 D1:ABDE - - - - strtowNumWhileLoop: + 181 D1:ABDE 79 - - - ld a, c + 182 D1:ABDF FE 05 - - cp 5 + 183 D1:ABE1 D2 F2 AB D1 jp nc, strtowConvert + 184 D1:ABE5 7E - - - ld a, (hl) + 185 D1:ABE6 D6 2F - - sub '0' - 1 + 186 D1:ABE8 38 08 - - jr c, strtowConvert + 187 D1:ABEA FE 3A - - cp '9' + 1 + 188 D1:ABEC 30 04 - - jr nc, strtowConvert + 189 D1:ABEE 23 - - - inc hl + 190 D1:ABEF 0C - - - inc c + 191 D1:ABF0 18 EC - - jr strtowNumWhileLoop + 192 D1:ABF2 - - - - strtowConvert: + 193 D1:ABF2 01 00 00 00 ld bc, 0 + 194 D1:ABF6 2B - - - dec hl + 195 D1:ABF7 7E - - - ld a, (hl) + 196 D1:ABF8 D6 30 - - sub '0' + 197 D1:ABFA 01 00 00 00 ld bc, 0 + 198 D1:ABFE 4F - - - ld c, a + 199 D1:ABFF 2B - - - dec hl + 200 D1:AC00 - - - - + 201 D1:AC00 D1 - - - pop de + 202 D1:AC01 CD 6D A9 D1 call cpHLDE + 203 D1:AC05 DA 64 AC D1 jp c, strtowExit + 204 D1:AC09 7E - - - ld a, (hl) + 205 D1:AC0A D6 30 - - sub '0' + 206 D1:AC0C E5 - - - push hl + 207 D1:AC0D 21 0A 00 00 ld hl, 10 + 208 D1:AC11 CD 87 A9 D1 call mulAbyHL + 209 D1:AC15 09 - - - add hl, bc + 210 D1:AC16 44 - - - ld b, h + 211 D1:AC17 4D - - - ld c, l + 212 D1:AC18 E1 - - - pop hl + 213 D1:AC19 2B - - - dec hl + 214 D1:AC1A - - - - + 215 D1:AC1A CD 6D A9 D1 call cpHLDE + 216 D1:AC1E DA 64 AC D1 jp c, strtowExit + 217 D1:AC22 7E - - - ld a, (hl) + 218 D1:AC23 D6 30 - - sub '0' + 219 D1:AC25 E5 - - - push hl + 220 D1:AC26 21 64 00 00 ld hl, 100 + 221 D1:AC2A CD 87 A9 D1 call mulAbyHL + 222 D1:AC2E 09 - - - add hl, bc + 223 D1:AC2F 44 - - - ld b, h + 224 D1:AC30 4D - - - ld c, l + 225 D1:AC31 E1 - - - pop hl + 226 D1:AC32 2B - - - dec hl + 227 D1:AC33 - - - - + 228 D1:AC33 CD 6D A9 D1 call cpHLDE + 229 D1:AC37 DA 64 AC D1 jp c, strtowExit + 230 D1:AC3B 7E - - - ld a, (hl) + 231 D1:AC3C D6 30 - - sub '0' + 232 D1:AC3E E5 - - - push hl + 233 D1:AC3F 21 E8 03 00 ld hl, 1000 + 234 D1:AC43 CD 87 A9 D1 call mulAbyHL + 235 D1:AC47 09 - - - add hl, bc + 236 D1:AC48 44 - - - ld b, h + 237 D1:AC49 4D - - - ld c, l + 238 D1:AC4A E1 - - - pop hl + 239 D1:AC4B 2B - - - dec hl + 240 D1:AC4C - - - - + 241 D1:AC4C CD 6D A9 D1 call cpHLDE + 242 D1:AC50 DA 64 AC D1 jp c, strtowExit + 243 D1:AC54 7E - - - ld a, (hl) + 244 D1:AC55 D6 30 - - sub '0' + 245 D1:AC57 E5 - - - push hl + 246 D1:AC58 21 10 27 00 ld hl, 10000 + 247 D1:AC5C CD 87 A9 D1 call mulAbyHL + 248 D1:AC60 09 - - - add hl, bc + 249 D1:AC61 44 - - - ld b, h + 250 D1:AC62 4D - - - ld c, l + 251 D1:AC63 E1 - - - pop hl + 252 D1:AC64 - - - - + 253 D1:AC64 - - - - strtowExit: + 254 D1:AC64 21 00 00 00 ld hl, 0 + 255 D1:AC68 60 - - - ld h, b + 256 D1:AC69 69 - - - ld l, c + 257 D1:AC6A D1 - - - pop de + 258 D1:AC6B C1 - - - pop bc + 259 D1:AC6C C9 - - - ret + 260 D1:AC6D - - - - + 261 D1:AC6D - - - - ;;toLower [Strings] + 262 D1:AC6D - - - - ;;Converts every alpha character of a string to lowercase. + 263 D1:AC6D - - - - ;;Inputs: + 264 D1:AC6D - - - - ;; HL: Pointer to string + 265 D1:AC6D - - - - ;;Notes: + 266 D1:AC6D - - - - ;; This modifies the string in-place. + 267 D1:AC6D - - - - ;toLower: + 268 D1:AC6D - - - - ; push af \ push hl + 269 D1:AC6D - - - - ; ld a, (hl) + 270 D1:AC6D - - - - ; or a + 271 D1:AC6D - - - - ; jr z, toLowerExit + 272 D1:AC6D - - - - ; call isAlphaNum + 273 D1:AC6D - - - - ; jr nc, toLowerNotUpperAlpha + 274 D1:AC6D - - - - ; cp 'a' + 275 D1:AC6D - - - - ; jr nc, toLowerNotUpperAlpha + 276 D1:AC6D - - - - ; add a, 'a' - 'A' + 277 D1:AC6D - - - - ; ld (hl), a + 278 D1:AC6D - - - - ;toLowerNotUpperAlpha: + 279 D1:AC6D - - - - ; inc hl + 280 D1:AC6D - - - - ; jr toLower + 2 + 281 D1:AC6D - - - - ;toLowerExit: + 282 D1:AC6D - - - - ; pop hl \ pop af + 283 D1:AC6D - - - - ; ret + 284 D1:AC6D - - - - + 285 D1:AC6D - - - - ;;toUpper [Strings] + 286 D1:AC6D - - - - ;;Converts every alpha character of a string to uppercase. + 287 D1:AC6D - - - - ;;Inputs: + 288 D1:AC6D - - - - ;; HL: Pointer to string + 289 D1:AC6D - - - - ;;Notes: + 290 D1:AC6D - - - - ;; This modifies the string in-place. + 291 D1:AC6D - - - - ;toUpper: + 292 D1:AC6D - - - - ; push af \ push hl + 293 D1:AC6D - - - - ; ld a, (hl) + 294 D1:AC6D - - - - ; or a + 295 D1:AC6D - - - - ; jr z, toUpperExit + 296 D1:AC6D - - - - ; call isAlphaNum + 297 D1:AC6D - - - - ; jr nc, toUpperNotLowerAlpha + 298 D1:AC6D - - - - ; cp 'a' + 299 D1:AC6D - - - - ; jr c, toUpperNotLowerAlpha + 300 D1:AC6D - - - - ; sub 'a' - 'A' + 301 D1:AC6D - - - - ; ld (hl), a + 302 D1:AC6D - - - - ;toUpperNotLowerAlpha: + 303 D1:AC6D - - - - ; inc hl + 304 D1:AC6D - - - - ; jr toUpper + 2 + 305 D1:AC6D - - - - ;toUpperExit: + 306 D1:AC6D - - - - ; pop hl \ pop af + 307 D1:AC6D - - - - ; ret +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\std\std.inc" + 11 D1:AC6D - - - - + 12 D1:AC6D - - - - #include "includes/lib/std/Input.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\std\Input.asm" + 1 D1:AC6D - - - - ;;inputgetkey + 2 D1:AC6D - - - - ;;Gets keycode + 3 D1:AC6D - - - - ;;Outputs: + 4 D1:AC6D - - - - ;; A: keycode + 5 D1:AC6D - - - - ;;Destroys: + 6 D1:AC6D - - - - ;; DE + 7 D1:AC6D - - - - inputgetkey: + 8 D1:AC6D EB - - - ex de, hl + 9 D1:AC6E CD 4C 01 02 call _GetCSC + 10 D1:AC72 EB - - - ex de, hl + 11 D1:AC73 B7 - - - or a + 12 D1:AC74 28 F7 - - jr z, inputgetkey + 13 D1:AC76 C9 - - - ret + 14 D1:AC77 - - - - + 15 D1:AC77 - - - - ;;inputstr + 16 D1:AC77 - - - - ;;Inputs string of length [Buffer Size] and puts it in (Destination) + 17 D1:AC77 - - - - ;;Inputs: + 18 D1:AC77 - - - - ;; HL: Destination + 19 D1:AC77 - - - - ;; D[E]: Buffer Size + 20 D1:AC77 - - - - ;;Ouptuts: + 21 D1:AC77 - - - - ;; (HL): String + 22 D1:AC77 - - - - inputstr: + 23 D1:AC77 D5 - - - push de + 24 D1:AC78 E5 - - - push hl + 25 D1:AC79 ED 53 97 AD + D1 - - - ld (inputstrSizeBuf), de + 26 D1:AC7E E5 - - - push hl + 27 D1:AC7F D5 - - - push de + 28 D1:AC80 21 96 05 D0 ld hl, CurCol + 29 D1:AC84 11 99 AD D1 ld de, inputstrCurColBuf + 30 D1:AC88 CD CB A9 D1 call bytecpy + 31 D1:AC8C 21 95 05 D0 ld hl, CurRow + 32 D1:AC90 11 9A AD D1 ld de, inputstrCurRowBuf + 33 D1:AC94 CD CB A9 D1 call bytecpy + 34 D1:AC98 D1 - - - pop de + 35 D1:AC99 E1 - - - pop hl + 36 D1:AC9A - - - - + 37 D1:AC9A FD CB 12 9E res Shift2nd, (IY + ShiftFlags) + 38 D1:AC9E CD B0 08 02 call _CursorOn + 39 D1:ACA2 - - - - + 40 D1:ACA2 AF - - - xor a + 41 D1:ACA3 47 - - - ld b, a + 42 D1:ACA4 - - - - inputstrKeyInput: + 43 D1:ACA4 CD 80 AA D1 call cursorcurunderreset + 44 D1:ACA8 CD 6D AC D1 call inputgetkey + 45 D1:ACAC - - - - + 46 D1:ACAC FE 36 - - cp sk2nd + 47 D1:ACAE CA 05 AD D1 jp z, inputstrKey2nd + 48 D1:ACB2 FE 38 - - cp skDel + 49 D1:ACB4 CA 13 AD D1 jp z, inputstrKeyDel + 50 D1:ACB8 FE 0F - - cp skClear + 51 D1:ACBA CA 33 AD D1 jp z, inputstrKeyClear + 52 D1:ACBE FE 09 - - cp skEnter + 53 D1:ACC0 CA 83 AD D1 jp z, inputstrKeyEnter + 54 D1:ACC4 - - - - + 55 D1:ACC4 4F - - - ld c, a + 56 D1:ACC5 78 - - - ld a, b + 57 D1:ACC6 D5 - - - push de + 58 D1:ACC7 ED 5B 97 AD + D1 - - - ld de, (inputstrSizeBuf) + 59 D1:ACCC BB - - - cp e + 60 D1:ACCD D1 - - - pop de + 61 D1:ACCE 28 D4 - - jr z, inputstrKeyInput + 62 D1:ACD0 79 - - - ld a, c + 63 D1:ACD1 - - - - + 64 D1:ACD1 D6 0A - - sub skAdd + 65 D1:ACD3 38 CF - - jr c, inputstrKeyInput + 66 D1:ACD5 FE 26 - - cp skMath - skAdd + 1 + 67 D1:ACD7 30 CB - - jr nc, inputstrKeyInput + 68 D1:ACD9 - - - - + 69 D1:ACD9 FD CB 12 5E bit Shift2nd, (IY + ShiftFlags) ; TIOS BASED + 70 D1:ACDD CC 50 AA D1 call z, chartoascii + 71 D1:ACE1 C4 70 AA D1 call nz, charnumsymtoascii + 72 D1:ACE5 - - - - + 73 D1:ACE5 FE FF - - cp $FF + 74 D1:ACE7 28 BB - - jr z, inputstrKeyInput + 75 D1:ACE9 - - - - + 76 D1:ACE9 FD CB 05 96 res textScrolled, (iy+textFlags) + 77 D1:ACED - - - - + 78 D1:ACED CD B8 07 02 call _PutC + 79 D1:ACF1 - - - - + 80 D1:ACF1 77 - - - ld (hl), a + 81 D1:ACF2 23 - - - inc hl + 82 D1:ACF3 04 - - - inc b + 83 D1:ACF4 - - - - + 84 D1:ACF4 FD CB 05 56 bit textScrolled, (iy+textFlags) + 85 D1:ACF8 28 AA - - jr z, inputstrKeyInput + 86 D1:ACFA E5 - - - push hl + 87 D1:ACFB 21 9A AD D1 ld hl, inputstrCurRowBuf + 88 D1:ACFF 7E - - - ld a, (hl) + 89 D1:AD00 3D - - - dec a + 90 D1:AD01 77 - - - ld (hl), a + 91 D1:AD02 E1 - - - pop hl + 92 D1:AD03 18 9F - - jr inputstrKeyInput + 93 D1:AD05 - - - - inputstrKey2nd: + 94 D1:AD05 E5 - - - push hl + 95 D1:AD06 21 92 00 D0 ld hl, Flags + ShiftFlags + 96 D1:AD0A 7E - - - ld a, (hl) + 97 D1:AD0B EE 08 - - xor 1 << Shift2nd ; Toggle state of Shift2nd flag + 98 D1:AD0D 77 - - - ld (hl), a + 99 D1:AD0E E1 - - - pop hl + 100 D1:AD0F C3 A4 AC D1 jp inputstrKeyInput + 101 D1:AD13 - - - - inputstrKeyDel: + 102 D1:AD13 78 - - - ld a, b + 103 D1:AD14 FE 00 - - cp 0 + 104 D1:AD16 CA A4 AC D1 jp z, inputstrKeyInput + 105 D1:AD1A - - - - + 106 D1:AD1A 3E 20 - - ld a, ' ' + 107 D1:AD1C CD B4 07 02 call _PutMap + 108 D1:AD20 - - - - + 109 D1:AD20 E5 - - - push hl + 110 D1:AD21 21 96 05 D0 ld hl, CurCol + 111 D1:AD25 35 - - - dec (hl) + 112 D1:AD26 E1 - - - pop hl + 113 D1:AD27 - - - - + 114 D1:AD27 3E 20 - - ld a, ' ' + 115 D1:AD29 CD B4 07 02 call _PutMap + 116 D1:AD2D - - - - + 117 D1:AD2D 2B - - - dec hl + 118 D1:AD2E 05 - - - dec b + 119 D1:AD2F C3 A4 AC D1 jp inputstrKeyInput + 120 D1:AD33 - - - - + 121 D1:AD33 - - - - inputstrKeyClear: + 122 D1:AD33 78 - - - ld a, b + 123 D1:AD34 FE 00 - - cp 0 + 124 D1:AD36 CA A4 AC D1 jp z, inputstrKeyInput + 125 D1:AD3A - - - - + 126 D1:AD3A E5 - - - push hl + 127 D1:AD3B D5 - - - push de + 128 D1:AD3C 21 99 AD D1 ld hl, inputstrCurColBuf + 129 D1:AD40 11 96 05 D0 ld de, CurCol + 130 D1:AD44 CD CB A9 D1 call bytecpy + 131 D1:AD48 21 9A AD D1 ld hl, inputstrCurRowBuf + 132 D1:AD4C 11 95 05 D0 ld de, CurRow + 133 D1:AD50 CD CB A9 D1 call bytecpy + 134 D1:AD54 D1 - - - pop de + 135 D1:AD55 E1 - - - pop hl + 136 D1:AD56 - - - - + 137 D1:AD56 3E 20 - - ld a, ' ' + 138 D1:AD58 04 - - - inc b + 139 D1:AD59 - - - - inputstrKeyClearLoop: + 140 D1:AD59 CD B8 07 02 call _PutC + 141 D1:AD5D 10 FA - - djnz inputstrKeyClearLoop + 142 D1:AD5F 06 00 - - ld b, 0 + 143 D1:AD61 - - - - + 144 D1:AD61 D5 - - - push de + 145 D1:AD62 E5 - - - push hl + 146 D1:AD63 21 99 AD D1 ld hl, inputstrCurColBuf + 147 D1:AD67 11 96 05 D0 ld de, CurCol + 148 D1:AD6B CD CB A9 D1 call bytecpy + 149 D1:AD6F 21 9A AD D1 ld hl, inputstrCurRowBuf + 150 D1:AD73 11 95 05 D0 ld de, CurRow + 151 D1:AD77 CD CB A9 D1 call bytecpy + 152 D1:AD7B E1 - - - pop hl + 153 D1:AD7C D1 - - - pop de + 154 D1:AD7D E1 - - - pop hl + 155 D1:AD7E E5 - - - push hl + 156 D1:AD7F C3 A4 AC D1 jp inputstrKeyInput + 157 D1:AD83 - - - - + 158 D1:AD83 - - - - inputstrKeyEnter: + 159 D1:AD83 36 00 - - ld (hl), 0 + 160 D1:AD85 CD A8 08 02 call _CursorOff + 161 D1:AD89 3E 20 - - ld a, ' ' + 162 D1:AD8B CD B4 07 02 call _PutMap + 163 D1:AD8F E1 - - - pop hl + 164 D1:AD90 D1 - - - pop de + 165 D1:AD91 FD CB 12 9E res Shift2nd, (IY + ShiftFlags) + 166 D1:AD95 C9 - - - ret + 167 D1:AD96 - - - - + 168 D1:AD96 00 - - - inputstrFlags: .db %00000000 + 169 D1:AD97 - - - - ; 0: num Flag + 170 D1:AD97 00 00 - - inputstrSizeBuf: .dw $0000 + 171 D1:AD99 00 - - - inputstrCurColBuf: .db $00 + 172 D1:AD9A 00 - - - inputstrCurRowBuf: .db $00 + 173 D1:AD9B - - - - + 174 D1:AD9B - - - - ;;inputcharstr + 175 D1:AD9B - - - - ;;Inputs string of (only letters) of length [Buffer Size] and puts it in (Destination) + 176 D1:AD9B - - - - ;;Inputs: + 177 D1:AD9B - - - - ;; HL: Destination + 178 D1:AD9B - - - - ;; D[E]: Buffer Size + 179 D1:AD9B - - - - ;;Ouptuts: + 180 D1:AD9B - - - - ;; (HL): String + 181 D1:AD9B - - - - inputcharstr: + 182 D1:AD9B D5 - - - push de + 183 D1:AD9C E5 - - - push hl + 184 D1:AD9D ED 53 97 AD + D1 - - - ld (inputstrSizeBuf), de + 185 D1:ADA2 E5 - - - push hl + 186 D1:ADA3 D5 - - - push de + 187 D1:ADA4 21 96 05 D0 ld hl, CurCol + 188 D1:ADA8 11 99 AD D1 ld de, inputstrCurColBuf + 189 D1:ADAC CD CB A9 D1 call bytecpy + 190 D1:ADB0 21 95 05 D0 ld hl, CurRow + 191 D1:ADB4 11 9A AD D1 ld de, inputstrCurRowBuf + 192 D1:ADB8 CD CB A9 D1 call bytecpy + 193 D1:ADBC D1 - - - pop de + 194 D1:ADBD E1 - - - pop hl + 195 D1:ADBE - - - - + 196 D1:ADBE CD B0 08 02 call _CursorOn + 197 D1:ADC2 - - - - + 198 D1:ADC2 AF - - - xor a + 199 D1:ADC3 47 - - - ld b, a + 200 D1:ADC4 - - - - inputcharstrKeyInput: + 201 D1:ADC4 CD 80 AA D1 call cursorcurunderreset + 202 D1:ADC8 CD 6D AC D1 call inputgetkey + 203 D1:ADCC - - - - + 204 D1:ADCC FE 38 - - cp skDel + 205 D1:ADCE CA 17 AE D1 jp z, inputcharstrKeyDel + 206 D1:ADD2 FE 0F - - cp skClear + 207 D1:ADD4 CA 37 AE D1 jp z, inputcharstrKeyClear + 208 D1:ADD8 FE 09 - - cp skEnter + 209 D1:ADDA CA 9C AE D1 jp z, inputcharstrKeyEnter + 210 D1:ADDE - - - - + 211 D1:ADDE 4F - - - ld c, a + 212 D1:ADDF 78 - - - ld a, b + 213 D1:ADE0 D5 - - - push de + 214 D1:ADE1 ED 5B AB AE + D1 - - - ld de, (inputcharstrSizeBuf) + 215 D1:ADE6 BB - - - cp e + 216 D1:ADE7 D1 - - - pop de + 217 D1:ADE8 28 DA - - jr z, inputcharstrKeyInput + 218 D1:ADEA 79 - - - ld a, c + 219 D1:ADEB - - - - + 220 D1:ADEB D6 0A - - sub skAdd + 221 D1:ADED 38 D5 - - jr c, inputcharstrKeyInput + 222 D1:ADEF FE 26 - - cp skMath - skAdd + 1 + 223 D1:ADF1 30 D1 - - jr nc, inputcharstrKeyInput + 224 D1:ADF3 - - - - + 225 D1:ADF3 CD 50 AA D1 call chartoascii + 226 D1:ADF7 - - - - + 227 D1:ADF7 FE FF - - cp $FF + 228 D1:ADF9 28 C9 - - jr z, inputcharstrKeyInput + 229 D1:ADFB - - - - + 230 D1:ADFB FD CB 05 96 res textScrolled, (iy+textFlags) + 231 D1:ADFF - - - - + 232 D1:ADFF CD B8 07 02 call _PutC + 233 D1:AE03 - - - - + 234 D1:AE03 77 - - - ld (hl), a + 235 D1:AE04 23 - - - inc hl + 236 D1:AE05 04 - - - inc b + 237 D1:AE06 - - - - + 238 D1:AE06 FD CB 05 56 bit textScrolled, (iy+textFlags) + 239 D1:AE0A 28 B8 - - jr z, inputcharstrKeyInput + 240 D1:AE0C E5 - - - push hl + 241 D1:AE0D 21 AE AE D1 ld hl, inputcharstrCurRowBuf + 242 D1:AE11 7E - - - ld a, (hl) + 243 D1:AE12 3D - - - dec a + 244 D1:AE13 77 - - - ld (hl), a + 245 D1:AE14 E1 - - - pop hl + 246 D1:AE15 18 AD - - jr inputcharstrKeyInput + 247 D1:AE17 - - - - inputcharstrKeyDel: + 248 D1:AE17 78 - - - ld a, b + 249 D1:AE18 FE 00 - - cp 0 + 250 D1:AE1A CA C4 AD D1 jp z, inputcharstrKeyInput + 251 D1:AE1E - - - - + 252 D1:AE1E 3E 20 - - ld a, ' ' + 253 D1:AE20 CD B4 07 02 call _PutMap + 254 D1:AE24 - - - - + 255 D1:AE24 E5 - - - push hl + 256 D1:AE25 21 96 05 D0 ld hl, CurCol + 257 D1:AE29 35 - - - dec (hl) + 258 D1:AE2A E1 - - - pop hl + 259 D1:AE2B - - - - + 260 D1:AE2B 3E 20 - - ld a, ' ' + 261 D1:AE2D CD B4 07 02 call _PutMap + 262 D1:AE31 - - - - + 263 D1:AE31 2B - - - dec hl + 264 D1:AE32 05 - - - dec b + 265 D1:AE33 C3 C4 AD D1 jp inputcharstrKeyInput + 266 D1:AE37 - - - - + 267 D1:AE37 - - - - inputcharstrKeyClear: + 268 D1:AE37 78 - - - ld a, b + 269 D1:AE38 FE 00 - - cp 0 + 270 D1:AE3A CA C4 AD D1 jp z, inputcharstrKeyInput + 271 D1:AE3E - - - - + 272 D1:AE3E E5 - - - push hl + 273 D1:AE3F 21 95 05 D0 ld hl, CurRow + 274 D1:AE43 4E - - - ld c, (hl) + 275 D1:AE44 E1 - - - pop hl + 276 D1:AE45 - - - - + 277 D1:AE45 E5 - - - push hl + 278 D1:AE46 D5 - - - push de + 279 D1:AE47 21 AD AE D1 ld hl, inputcharstrCurColBuf + 280 D1:AE4B 11 96 05 D0 ld de, CurCol + 281 D1:AE4F CD CB A9 D1 call bytecpy + 282 D1:AE53 21 AE AE D1 ld hl, inputcharstrCurRowBuf + 283 D1:AE57 11 95 05 D0 ld de, CurRow + 284 D1:AE5B CD CB A9 D1 call bytecpy + 285 D1:AE5F D1 - - - pop de + 286 D1:AE60 E1 - - - pop hl + 287 D1:AE61 - - - - + 288 D1:AE61 3E 20 - - ld a, ' ' + 289 D1:AE63 04 - - - inc b + 290 D1:AE64 - - - - inputcharstrKeyClearLoop: + 291 D1:AE64 CD B8 07 02 call _PutC + 292 D1:AE68 10 FA - - djnz inputcharstrKeyClearLoop + 293 D1:AE6A - - - - + 294 D1:AE6A E5 - - - push hl + 295 D1:AE6B D5 - - - push de + 296 D1:AE6C 21 AD AE D1 ld hl, inputcharstrCurColBuf + 297 D1:AE70 11 96 05 D0 ld de, CurCol + 298 D1:AE74 CD CB A9 D1 call bytecpy + 299 D1:AE78 D1 - - - pop de + 300 D1:AE79 E1 - - - pop hl + 301 D1:AE7A - - - - + 302 D1:AE7A D5 - - - push de + 303 D1:AE7B E5 - - - push hl + 304 D1:AE7C 21 AD AE D1 ld hl, inputcharstrCurColBuf + 305 D1:AE80 11 96 05 D0 ld de, CurCol + 306 D1:AE84 CD CB A9 D1 call bytecpy + 307 D1:AE88 21 AE AE D1 ld hl, inputcharstrCurRowBuf + 308 D1:AE8C 11 95 05 D0 ld de, CurRow + 309 D1:AE90 CD CB A9 D1 call bytecpy + 310 D1:AE94 E1 - - - pop hl + 311 D1:AE95 D1 - - - pop de + 312 D1:AE96 E1 - - - pop hl + 313 D1:AE97 E5 - - - push hl + 314 D1:AE98 C3 C4 AD D1 jp inputcharstrKeyInput + 315 D1:AE9C - - - - + 316 D1:AE9C - - - - inputcharstrKeyEnter: + 317 D1:AE9C 36 00 - - ld (hl), 0 + 318 D1:AE9E CD A8 08 02 call _CursorOff + 319 D1:AEA2 3E 20 - - ld a, ' ' + 320 D1:AEA4 CD B4 07 02 call _PutMap + 321 D1:AEA8 E1 - - - pop hl + 322 D1:AEA9 D1 - - - pop de + 323 D1:AEAA C9 - - - ret + 324 D1:AEAB - - - - + 325 D1:AEAB 00 00 - - inputcharstrSizeBuf: .dw $0000 + 326 D1:AEAD 00 - - - inputcharstrCurColBuf: .db $00 + 327 D1:AEAE 00 - - - inputcharstrCurRowBuf: .db $00 + 328 D1:AEAF - - - - + 329 D1:AEAF - - - - ;;inputnumstr + 330 D1:AEAF - - - - ;;Inputs string of (only numbers) of length [Buffer Size] and puts it in (Destination) + 331 D1:AEAF - - - - ;;Inputs: + 332 D1:AEAF - - - - ;; HL: Destination + 333 D1:AEAF - - - - ;; D[E]: Buffer Size + 334 D1:AEAF - - - - ;;Ouptuts: + 335 D1:AEAF - - - - ;; (HL): String + 336 D1:AEAF - - - - inputnumstr: + 337 D1:AEAF D5 - - - push de + 338 D1:AEB0 E5 - - - push hl + 339 D1:AEB1 ED 53 AF AF + D1 - - - ld (inputnumstrSizeBuf), de + 340 D1:AEB6 E5 - - - push hl + 341 D1:AEB7 D5 - - - push de + 342 D1:AEB8 21 96 05 D0 ld hl, CurCol + 343 D1:AEBC 11 B1 AF D1 ld de, inputnumstrCurColBuf + 344 D1:AEC0 CD CB A9 D1 call bytecpy + 345 D1:AEC4 21 95 05 D0 ld hl, CurRow + 346 D1:AEC8 11 B2 AF D1 ld de, inputnumstrCurRowBuf + 347 D1:AECC CD CB A9 D1 call bytecpy + 348 D1:AED0 D1 - - - pop de + 349 D1:AED1 E1 - - - pop hl + 350 D1:AED2 - - - - + 351 D1:AED2 CD B0 08 02 call _CursorOn + 352 D1:AED6 - - - - + 353 D1:AED6 AF - - - xor a + 354 D1:AED7 47 - - - ld b, a + 355 D1:AED8 - - - - + 356 D1:AED8 - - - - inputnumstrKeyInput: + 357 D1:AED8 CD 80 AA D1 call cursorcurunderreset + 358 D1:AEDC CD 6D AC D1 call inputgetkey + 359 D1:AEE0 - - - - + 360 D1:AEE0 FE 38 - - cp skDel + 361 D1:AEE2 CA 2B AF D1 jp z, inputnumstrKeyDel + 362 D1:AEE6 FE 0F - - cp skClear + 363 D1:AEE8 CA 4B AF D1 jp z, inputnumstrKeyClear + 364 D1:AEEC FE 09 - - cp skEnter + 365 D1:AEEE CA A0 AF D1 jp z, inputnumstrKeyEnter + 366 D1:AEF2 - - - - + 367 D1:AEF2 4F - - - ld c, a + 368 D1:AEF3 78 - - - ld a, b + 369 D1:AEF4 D5 - - - push de + 370 D1:AEF5 ED 5B AF AF + D1 - - - ld de, (inputnumstrSizeBuf) + 371 D1:AEFA BB - - - cp e + 372 D1:AEFB D1 - - - pop de + 373 D1:AEFC 28 DA - - jr z, inputnumstrKeyInput + 374 D1:AEFE 79 - - - ld a, c + 375 D1:AEFF - - - - + 376 D1:AEFF D6 0A - - sub skAdd + 377 D1:AF01 38 D5 - - jr c, inputnumstrKeyInput + 378 D1:AF03 FE 26 - - cp skMath - skAdd + 1 + 379 D1:AF05 30 D1 - - jr nc, inputnumstrKeyInput + 380 D1:AF07 - - - - + 381 D1:AF07 CD 60 AA D1 call charnumtoascii + 382 D1:AF0B FE FF - - cp $FF + 383 D1:AF0D 28 C9 - - jr z, inputnumstrKeyInput + 384 D1:AF0F - - - - + 385 D1:AF0F FD CB 05 96 res textScrolled, (iy+textFlags) + 386 D1:AF13 - - - - + 387 D1:AF13 CD B8 07 02 call _PutC + 388 D1:AF17 - - - - + 389 D1:AF17 77 - - - ld (hl), a + 390 D1:AF18 23 - - - inc hl + 391 D1:AF19 04 - - - inc b + 392 D1:AF1A - - - - + 393 D1:AF1A FD CB 05 56 bit textScrolled, (iy+textFlags) + 394 D1:AF1E 28 B8 - - jr z, inputnumstrKeyInput + 395 D1:AF20 E5 - - - push hl + 396 D1:AF21 21 B2 AF D1 ld hl, inputnumstrCurRowBuf + 397 D1:AF25 7E - - - ld a, (hl) + 398 D1:AF26 3D - - - dec a + 399 D1:AF27 77 - - - ld (hl), a + 400 D1:AF28 E1 - - - pop hl + 401 D1:AF29 18 AD - - jr inputnumstrKeyInput + 402 D1:AF2B - - - - inputnumstrkeydel: + 403 D1:AF2B 78 - - - ld a, b + 404 D1:AF2C FE 00 - - cp 0 + 405 D1:AF2E CA D8 AE D1 jp z, inputnumstrKeyInput + 406 D1:AF32 - - - - + 407 D1:AF32 3E 20 - - ld a, ' ' + 408 D1:AF34 CD B4 07 02 call _PutMap + 409 D1:AF38 - - - - + 410 D1:AF38 E5 - - - push hl + 411 D1:AF39 21 96 05 D0 ld hl, CurCol + 412 D1:AF3D 35 - - - dec (hl) + 413 D1:AF3E E1 - - - pop hl + 414 D1:AF3F - - - - + 415 D1:AF3F 3E 20 - - ld a, ' ' + 416 D1:AF41 CD B4 07 02 call _PutMap + 417 D1:AF45 - - - - + 418 D1:AF45 2B - - - dec hl + 419 D1:AF46 05 - - - dec b + 420 D1:AF47 C3 D8 AE D1 jp inputnumstrKeyInput + 421 D1:AF4B - - - - + 422 D1:AF4B - - - - inputnumstrKeyClear: + 423 D1:AF4B 78 - - - ld a, b + 424 D1:AF4C FE 00 - - cp 0 + 425 D1:AF4E CA D8 AE D1 jp z, inputnumstrKeyInput + 426 D1:AF52 - - - - + 427 D1:AF52 E5 - - - push hl + 428 D1:AF53 21 95 05 D0 ld hl, CurRow + 429 D1:AF57 4E - - - ld c, (hl) + 430 D1:AF58 E1 - - - pop hl + 431 D1:AF59 - - - - + 432 D1:AF59 E5 - - - push hl + 433 D1:AF5A D5 - - - push de + 434 D1:AF5B 21 B1 AF D1 ld hl, inputnumstrCurColBuf + 435 D1:AF5F 11 96 05 D0 ld de, CurCol + 436 D1:AF63 CD CB A9 D1 call bytecpy + 437 D1:AF67 21 B2 AF D1 ld hl, inputnumstrCurRowBuf + 438 D1:AF6B 11 95 05 D0 ld de, CurRow + 439 D1:AF6F CD CB A9 D1 call bytecpy + 440 D1:AF73 D1 - - - pop de + 441 D1:AF74 E1 - - - pop hl + 442 D1:AF75 - - - - + 443 D1:AF75 3E 20 - - ld a, ' ' + 444 D1:AF77 04 - - - inc b + 445 D1:AF78 - - - - inputnumstrKeyClearLoop: + 446 D1:AF78 CD B8 07 02 call _PutC + 447 D1:AF7C 10 FA - - djnz inputnumstrKeyClearLoop + 448 D1:AF7E - - - - + 449 D1:AF7E D5 - - - push de + 450 D1:AF7F E5 - - - push hl + 451 D1:AF80 21 B1 AF D1 ld hl, inputnumstrCurColBuf + 452 D1:AF84 11 96 05 D0 ld de, CurCol + 453 D1:AF88 CD CB A9 D1 call bytecpy + 454 D1:AF8C 21 B2 AF D1 ld hl, inputnumstrCurRowBuf + 455 D1:AF90 11 95 05 D0 ld de, CurRow + 456 D1:AF94 CD CB A9 D1 call bytecpy + 457 D1:AF98 E1 - - - pop hl + 458 D1:AF99 D1 - - - pop de + 459 D1:AF9A E1 - - - pop hl + 460 D1:AF9B E5 - - - push hl + 461 D1:AF9C C3 D8 AE D1 jp inputnumstrKeyInput + 462 D1:AFA0 - - - - + 463 D1:AFA0 - - - - inputnumstrKeyEnter: + 464 D1:AFA0 36 00 - - ld (hl), 0 + 465 D1:AFA2 CD A8 08 02 call _CursorOff + 466 D1:AFA6 3E 20 - - ld a, ' ' + 467 D1:AFA8 CD B4 07 02 call _PutMap + 468 D1:AFAC E1 - - - pop hl + 469 D1:AFAD D1 - - - pop de + 470 D1:AFAE C9 - - - ret + 471 D1:AFAF - - - - + 472 D1:AFAF 00 00 - - inputnumstrSizeBuf: .dw $0000 + 473 D1:AFB1 00 - - - inputnumstrCurColBuf: .db $00 + 474 D1:AFB2 00 - - - inputnumstrCurRowBuf: .db $00 +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\std\std.inc" +Listing for file "FSHa.asm" + 72 D1:AFB3 - - - - #include "includes/lib/fsh/fsh.inc" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\fsh\fsh.inc" + 1 D1:AFB3 - - - - #include "includes/lib/fsh/Command.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\fsh\Command.asm" + 1 D1:AFB3 - - - - ;;commandfill + 2 D1:AFB3 - - - - ;;Fills command mem with byte a + 3 D1:AFB3 - - - - ;;Inputs: + 4 D1:AFB3 - - - - ;; A: byte + 5 D1:AFB3 - - - - commandfill: + 6 D1:AFB3 E5 - - - push hl + 7 D1:AFB4 C5 - - - push bc + 8 D1:AFB5 D5 - - - push de + 9 D1:AFB6 06 00 - - ld b, 0 + 10 D1:AFB8 11 00 00 00 ld de, 0 + 11 D1:AFBC 4F - - - ld c, a + 12 D1:AFBD 21 9F EA D0 ld hl, FshCmd + 13 D1:AFC1 - - - - commandfillLoop: + 14 D1:AFC1 71 - - - ld (hl), c + 15 D1:AFC2 23 - - - inc hl + 16 D1:AFC3 04 - - - inc b + 17 D1:AFC4 13 - - - inc de + 18 D1:AFC5 78 - - - ld a, b + 19 D1:AFC6 FE 40 - - cp FshCmdSize + 20 D1:AFC8 38 F7 - - jr c, commandfillLoop + 21 D1:AFCA D1 - - - pop de + 22 D1:AFCB C1 - - - pop bc + 23 D1:AFCC E1 - - - pop hl + 24 D1:AFCD C9 - - - ret +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\fsh\fsh.inc" + 2 D1:AFCE - - - - #include "includes/lib/fsh/Parse.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\fsh\Parse.asm" + 1 D1:AFCE - - - - ;;fshparsecommand + 2 D1:AFCE - - - - ;;Inputs: + 3 D1:AFCE - - - - ;; HL: FshCmd + 4 D1:AFCE - - - - ;;b = buf row + 5 D1:AFCE - - - - ;;c = char in row + 6 D1:AFCE - - - - ;de = scratch + 7 D1:AFCE - - - - fshparsecommand: + 8 D1:AFCE E5 - - - push hl + 9 D1:AFCF C5 - - - push bc + 10 D1:AFD0 D5 - - - push de + 11 D1:AFD1 E5 - - - push hl + 12 D1:AFD2 E5 - - - push hl + 13 D1:AFD3 21 E5 B0 D1 ld hl, fshparsecommandCmd + 14 D1:AFD7 06 2D - - ld b, 45 + 15 D1:AFD9 3E 00 - - ld a, $00 + 16 D1:AFDB CD D3 A9 D1 call memset + 17 D1:AFDF E1 - - - pop hl + 18 D1:AFE0 - - - - + 19 D1:AFE0 01 00 00 00 ld bc, 0 + 20 D1:AFE4 11 00 00 00 ld de, 0 + 21 D1:AFE8 - - - - fshparsecommandLoop: + 22 D1:AFE8 7E - - - ld a, (hl) + 23 D1:AFE9 - - - - fshparsecommandCheckSpace: + 24 D1:AFE9 FE 20 - - cp ' ' ;end of word + 25 D1:AFEB 20 0C - - jr nz, fshparsecommandCheckEnd + 26 D1:AFED 3E 00 - - ld a, $00 + 27 D1:AFEF CD 18 B1 D1 call fshparsecommandCopyChar + 28 D1:AFF3 0E 00 - - ld c, 0 + 29 D1:AFF5 04 - - - inc b + 30 D1:AFF6 23 - - - inc hl + 31 D1:AFF7 18 EF - - jr fshparsecommandLoop + 32 D1:AFF9 - - - - + 33 D1:AFF9 - - - - fshparsecommandCheckEnd: + 34 D1:AFF9 FE 00 - - cp $00 ;end of string + 35 D1:AFFB 28 13 - - jr z, fshparsecommandCheckArgStatus + 36 D1:AFFD - - - - + 37 D1:AFFD - - - - fshparsecommandLoopEnd: + 38 D1:AFFD CD 18 B1 D1 call fshparsecommandCopyChar + 39 D1:B001 23 - - - inc hl + 40 D1:B002 0C - - - inc c + 41 D1:B003 - - - - + 42 D1:B003 79 - - - ld a, c + 43 D1:B004 FE 08 - - cp FshCmdCmdSize + 44 D1:B006 20 E0 - - jr nz, fshparsecommandLoop + 45 D1:B008 - - - - ;inc hl + 46 D1:B008 0E 00 - - ld c, 0 + 47 D1:B00A 04 - - - inc b + 48 D1:B00B 78 - - - ld a, b + 49 D1:B00C FE 05 - - cp 5 + 50 D1:B00E 20 D8 - - jr nz, fshparsecommandLoop + 51 D1:B010 - - - - ; ld bc, 0 + 52 D1:B010 - - - - + 53 D1:B010 - - - - fshparsecommandCheckArgStatus: + 54 D1:B010 AF - - - xor a + 55 D1:B011 21 CD EA D0 ld hl, FshCmdArgFlags + 56 D1:B015 77 - - - ld (hl), a + 57 D1:B016 - - - - fshparsecommandCheckArg0: + 58 D1:B016 21 EE B0 D1 ld hl, fshparsecommandArg0 + 59 D1:B01A 7E - - - ld a, (hl) + 60 D1:B01B FE 00 - - cp $00 + 61 D1:B01D 28 27 - - jr z, fshparsecommandCheckArg1 + 62 D1:B01F 21 CD EA D0 ld hl, FshCmdArgFlags + 63 D1:B023 CB C6 - - set 0, (hl) + 64 D1:B025 7E - - - ld a, (hl) + 65 D1:B026 21 EE B0 D1 ld hl, fshparsecommandArg0 + 66 D1:B02A 7E - - - ld a, (hl) + 67 D1:B02B D6 30 - - sub '0' + 68 D1:B02D FE 0A - - cp '9' - '0' + 1 + 69 D1:B02F 30 15 - - jr nc, fshparsecommandCheckArg1 + 70 D1:B031 CD C5 AB D1 call strtow + 71 D1:B035 11 EE B0 D1 ld de, fshparsecommandArg0 + 72 D1:B039 EB - - - ex de, hl + 73 D1:B03A 73 - - - ld (hl), e + 74 D1:B03B 23 - - - inc hl + 75 D1:B03C 72 - - - ld (hl), d + 76 D1:B03D 34 - - - inc (hl) + 77 D1:B03E 36 00 - - ld (hl), $00 + 78 D1:B040 21 CD EA D0 ld hl, FshCmdArgFlags + 79 D1:B044 CB CE - - set 1, (hl) + 80 D1:B046 - - - - fshparsecommandCheckArg1: + 81 D1:B046 21 F7 B0 D1 ld hl, fshparsecommandArg1 + 82 D1:B04A 7E - - - ld a, (hl) + 83 D1:B04B FE 00 - - cp $00 + 84 D1:B04D 28 26 - - jr z, fshparsecommandCheckArg2 + 85 D1:B04F 21 CD EA D0 ld hl, FshCmdArgFlags + 86 D1:B053 CB D6 - - set 2, (hl) + 87 D1:B055 21 F7 B0 D1 ld hl, fshparsecommandArg1 + 88 D1:B059 7E - - - ld a, (hl) + 89 D1:B05A D6 30 - - sub '0' + 90 D1:B05C FE 0A - - cp '9' - '0' + 1 + 91 D1:B05E 30 15 - - jr nc, fshparsecommandCheckArg2 + 92 D1:B060 CD C5 AB D1 call strtow + 93 D1:B064 11 F7 B0 D1 ld de, fshparsecommandArg1 + 94 D1:B068 EB - - - ex de, hl + 95 D1:B069 73 - - - ld (hl), e + 96 D1:B06A 23 - - - inc hl + 97 D1:B06B 72 - - - ld (hl), d + 98 D1:B06C 23 - - - inc hl + 99 D1:B06D 36 00 - - ld (hl), $00 + 100 D1:B06F 21 CD EA D0 ld hl, FshCmdArgFlags + 101 D1:B073 CB DE - - set 3, (hl) + 102 D1:B075 - - - - fshparsecommandCheckArg2: + 103 D1:B075 21 00 B1 D1 ld hl, fshparsecommandArg2 + 104 D1:B079 7E - - - ld a, (hl) + 105 D1:B07A FE 00 - - cp $00 + 106 D1:B07C 28 26 - - jr z, fshparsecommandCheckArg3 + 107 D1:B07E 21 CD EA D0 ld hl, FshCmdArgFlags + 108 D1:B082 CB E6 - - set 4, (hl) + 109 D1:B084 21 00 B1 D1 ld hl, fshparsecommandArg2 + 110 D1:B088 7E - - - ld a, (hl) + 111 D1:B089 D6 30 - - sub '0' + 112 D1:B08B FE 0A - - cp '9' - '0' + 1 + 113 D1:B08D 30 15 - - jr nc, fshparsecommandCheckArg3 + 114 D1:B08F CD C5 AB D1 call strtow + 115 D1:B093 11 00 B1 D1 ld de, fshparsecommandArg2 + 116 D1:B097 EB - - - ex de, hl + 117 D1:B098 73 - - - ld (hl), e + 118 D1:B099 23 - - - inc hl + 119 D1:B09A 72 - - - ld (hl), d + 120 D1:B09B 23 - - - inc hl + 121 D1:B09C 36 00 - - ld (hl), $00 + 122 D1:B09E 21 CD EA D0 ld hl, FshCmdArgFlags + 123 D1:B0A2 CB EE - - set 5, (hl) + 124 D1:B0A4 - - - - fshparsecommandCheckArg3: + 125 D1:B0A4 21 09 B1 D1 ld hl, fshparsecommandArg3 + 126 D1:B0A8 7E - - - ld a, (hl) + 127 D1:B0A9 FE 00 - - cp $00 + 128 D1:B0AB 28 26 - - jr z, fshparsecommandCopyBack + 129 D1:B0AD 21 CD EA D0 ld hl, FshCmdArgFlags + 130 D1:B0B1 CB F6 - - set 6, (hl) + 131 D1:B0B3 21 09 B1 D1 ld hl, fshparsecommandArg3 + 132 D1:B0B7 7E - - - ld a, (hl) + 133 D1:B0B8 D6 30 - - sub '0' + 134 D1:B0BA FE 0A - - cp '9' - '0' + 1 + 135 D1:B0BC 30 15 - - jr nc, fshparsecommandCopyBack + 136 D1:B0BE CD C5 AB D1 call strtow + 137 D1:B0C2 11 09 B1 D1 ld de, fshparsecommandArg3 + 138 D1:B0C6 EB - - - ex de, hl + 139 D1:B0C7 73 - - - ld (hl), e + 140 D1:B0C8 23 - - - inc hl + 141 D1:B0C9 72 - - - ld (hl), d + 142 D1:B0CA 23 - - - inc hl + 143 D1:B0CB 36 00 - - ld (hl), $00 + 144 D1:B0CD 21 CD EA D0 ld hl, FshCmdArgFlags + 145 D1:B0D1 CB FE - - set 7, (hl) + 146 D1:B0D3 - - - - fshparsecommandCopyBack: + 147 D1:B0D3 E1 - - - pop hl + 148 D1:B0D4 C5 - - - push bc + 149 D1:B0D5 EB - - - ex de, hl + 150 D1:B0D6 21 E5 B0 D1 ld hl, fshparsecommandCmd + 151 D1:B0DA 01 2D 00 00 ld bc, 45 + 152 D1:B0DE ED B0 - - ldir + 153 D1:B0E0 C1 - - - pop bc + 154 D1:B0E1 - - - - + 155 D1:B0E1 D1 - - - pop de + 156 D1:B0E2 C1 - - - pop bc + 157 D1:B0E3 E1 - - - pop hl + 158 D1:B0E4 C9 - - - ret + 159 D1:B0E5 - - - - + 160 D1:B0E5 00 00 00 00 + 00 00 00 00 + 00 - - - fshparsecommandCmd: .db $00, $00, $00, $00, $00, $00, $00, $00, $00 + 161 D1:B0EE 00 00 00 00 + 00 00 00 00 + 00 - - - fshparsecommandArg0: .db $00, $00, $00, $00, $00, $00, $00, $00, $00 + 162 D1:B0F7 00 00 00 00 + 00 00 00 00 + 00 - - - fshparsecommandArg1: .db $00, $00, $00, $00, $00, $00, $00, $00, $00 + 163 D1:B100 00 00 00 00 + 00 00 00 00 + 00 - - - fshparsecommandArg2: .db $00, $00, $00, $00, $00, $00, $00, $00, $00 + 164 D1:B109 00 00 00 00 + 00 00 00 00 + 00 - - - fshparsecommandArg3: .db $00, $00, $00, $00, $00, $00, $00, $00, $00 + 165 D1:B112 00 00 00 00 + 00 00 - - fshparsecommandOverB: .db $00, $00, $00, $00, $00, $00 + 166 D1:B118 - - - - + 167 D1:B118 - - - - fshparsecommandCopyChar: + 168 D1:B118 - - - - ;Copy + 169 D1:B118 E5 - - - push hl + 170 D1:B119 C5 - - - push bc + 171 D1:B11A 21 00 00 00 ld hl, 0 + 172 D1:B11E 60 - - - ld h, b + 173 D1:B11F 2E 09 - - ld l, 9 + 174 D1:B121 41 - - - ld b, c + 175 D1:B122 11 E5 B0 D1 ld de, fshparsecommandCmd + 176 D1:B126 CD 1D AB D1 call array2d + 177 D1:B12A C1 - - - pop bc + 178 D1:B12B E1 - - - pop hl + 179 D1:B12C - - - - ;push hl + 180 D1:B12C - - - - ; ld hl, fshparsecommandCmd+45+1 + 181 D1:B12C - - - - ; call cpHLDE + 182 D1:B12C - - - - ;pop hl + 183 D1:B12C - - - - ;pop de + 184 D1:B12C - - - - ;ret c + 185 D1:B12C - - - - ;push de + 186 D1:B12C 12 - - - ld (de), a ;ld buffer + 187 D1:B12D C9 - - - ret +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\fsh\fsh.inc" + 3 D1:B12E - - - - #include "includes/lib/fsh/FshVar.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\fsh\FshVar.asm" + 1 D1:B12E - - - - ;;fshvarset + 2 D1:B12E - - - - ;;Sets a Word in FshVars. + 3 D1:B12E - - - - ;;Inputs: + 4 D1:B12E - - - - ;; HL: 16b + 5 D1:B12E - - - - ;; DE: Destination Word Relitive to FshVars + 6 D1:B12E - - - - fshvarset: + 7 D1:B12E C5 - - - push bc + 8 D1:B12F 01 3F 00 00 ld bc, FshVarsSize / 2 - 1 + 9 D1:B133 CD 77 A9 D1 call cpBCDE + 10 D1:B137 C1 - - - pop bc + 11 D1:B138 38 11 - - jr c, fshvarsetOOBException + 12 D1:B13A C5 - - - push bc + 13 D1:B13B D5 - - - push de + 14 D1:B13C E5 - - - push hl + 15 D1:B13D 01 1F EA D0 ld bc, FshVars + 16 D1:B141 EB - - - ex de, hl + 17 D1:B142 29 - - - add hl, hl + 18 D1:B143 09 - - - add hl, bc + 19 D1:B144 73 - - - ld (hl), e + 20 D1:B145 23 - - - inc hl + 21 D1:B146 72 - - - ld (hl), d + 22 D1:B147 E1 - - - pop hl + 23 D1:B148 D1 - - - pop de + 24 D1:B149 C1 - - - pop bc + 25 D1:B14A C9 - - - ret + 26 D1:B14B - - - - fshvarsetOOBException: + 27 D1:B14B E5 - - - push hl + 28 D1:B14C 21 70 B2 D1 ld hl, ErrOutOfBoundso + 29 D1:B150 CD 2B B2 D1 call ErrSet + 30 D1:B154 E1 - - - pop hl + 31 D1:B155 C9 - - - ret + 32 D1:B156 - - - - + 33 D1:B156 - - - - ;;fshvarget + 34 D1:B156 - - - - ;;Gets a Word in FshVars. + 35 D1:B156 - - - - ;;Inputs: + 36 D1:B156 - - - - ;; DE: Destination Word Relitive to FshVars + 37 D1:B156 - - - - ;;Outputs: + 38 D1:B156 - - - - ;; HL: Word in (DE) + 39 D1:B156 - - - - fshvarget: + 40 D1:B156 C5 - - - push bc + 41 D1:B157 01 3F 00 00 ld bc, FshVarsSize / 2 - 1 + 42 D1:B15B CD 77 A9 D1 call cpBCDE + 43 D1:B15F C1 - - - pop bc + 44 D1:B160 38 14 - - jr c, fshvargetOOBException + 45 D1:B162 C5 - - - push bc + 46 D1:B163 D5 - - - push de + 47 D1:B164 21 00 00 00 ld hl, 0 + 48 D1:B168 01 1F EA D0 ld bc, FshVars + 49 D1:B16C EB - - - ex de, hl + 50 D1:B16D 29 - - - add hl, hl + 51 D1:B16E 09 - - - add hl, bc + 52 D1:B16F 5E - - - ld e, (hl) + 53 D1:B170 23 - - - inc hl + 54 D1:B171 56 - - - ld d, (hl) + 55 D1:B172 EB - - - ex de, hl + 56 D1:B173 D1 - - - pop de + 57 D1:B174 C1 - - - pop bc + 58 D1:B175 C9 - - - ret + 59 D1:B176 - - - - fshvargetOOBException: + 60 D1:B176 E5 - - - push hl + 61 D1:B177 21 70 B2 D1 ld hl, ErrOutOfBoundso + 62 D1:B17B CD 2B B2 D1 call ErrSet + 63 D1:B17F E1 - - - pop hl + 64 D1:B180 C9 - - - ret + 65 D1:B181 - - - - ;;fshvarcpy + 66 D1:B181 - - - - ;;Copies a word. + 67 D1:B181 - - - - ;;Inputs: + 68 D1:B181 - - - - ;; HL: Byte pointer + 69 D1:B181 - - - - ;; DE: Destination + 70 D1:B181 - - - - fshvarcpy: + 71 D1:B181 C5 - - - push bc + 72 D1:B182 01 3F 00 00 ld bc, FshVarsSize / 2 - 1 + 73 D1:B186 CD 77 A9 D1 call cpBCDE + 74 D1:B18A C1 - - - pop bc + 75 D1:B18B 38 2A - - jr c, fshvarcpyOOBException + 76 D1:B18D C5 - - - push bc + 77 D1:B18E 01 40 00 00 ld bc, FshVarsSize / 2 + 78 D1:B192 CD 72 A9 D1 call cpHLBC + 79 D1:B196 C1 - - - pop bc + 80 D1:B197 30 1E - - jr nc, fshvarcpyOOBException + 81 D1:B199 D5 - - - push de + 82 D1:B19A E5 - - - push hl + 83 D1:B19B 01 40 00 00 ld bc, FshVarsSize / 2 + 84 D1:B19F CD 77 A9 D1 call cpBCDE + 85 D1:B1A3 38 12 - - jr c, fshvarcpyOOBException + 86 D1:B1A5 01 1F EA D0 ld bc, FshVars + 87 D1:B1A9 29 - - - add hl, hl + 88 D1:B1AA 09 - - - add hl, bc + 89 D1:B1AB EB - - - ex de, hl + 90 D1:B1AC 29 - - - add hl, hl + 91 D1:B1AD 09 - - - add hl, bc + 92 D1:B1AE 1A - - - ld a, (de) + 93 D1:B1AF 77 - - - ld (hl), a + 94 D1:B1B0 13 - - - inc de + 95 D1:B1B1 23 - - - inc hl + 96 D1:B1B2 1A - - - ld a, (de) + 97 D1:B1B3 77 - - - ld (hl), a + 98 D1:B1B4 E1 - - - pop hl + 99 D1:B1B5 D1 - - - pop de + 100 D1:B1B6 C9 - - - ret + 101 D1:B1B7 - - - - + 102 D1:B1B7 - - - - fshvarcpyOOBException: + 103 D1:B1B7 E5 - - - push hl + 104 D1:B1B8 21 70 B2 D1 ld hl, ErrOutOfBoundso + 105 D1:B1BC CD 2B B2 D1 call ErrSet + 106 D1:B1C0 E1 - - - pop hl + 107 D1:B1C1 C9 - - - ret + 108 D1:B1C2 - - - - + 109 D1:B1C2 - - - - ;;fshvarreset + 110 D1:B1C2 - - - - ;;Fills fshvars with $00 + 111 D1:B1C2 - - - - fshvarreset: + 112 D1:B1C2 E5 - - - push hl + 113 D1:B1C3 C5 - - - push bc + 114 D1:B1C4 D5 - - - push de + 115 D1:B1C5 06 00 - - ld b, 0 + 116 D1:B1C7 11 00 00 00 ld de, 0 + 117 D1:B1CB 21 00 00 00 ld hl, 0 + 118 D1:B1CF - - - - fshvarfillLoop: + 119 D1:B1CF CD 2E B1 D1 call fshvarset + 120 D1:B1D3 04 - - - inc b + 121 D1:B1D4 13 - - - inc de + 122 D1:B1D5 78 - - - ld a, b + 123 D1:B1D6 FE 40 - - cp FshVarsSize / 2 + 124 D1:B1D8 38 F5 - - jr c, fshvarfillLoop + 125 D1:B1DA D1 - - - pop de + 126 D1:B1DB C1 - - - pop bc + 127 D1:B1DC E1 - - - pop hl + 128 D1:B1DD C9 - - - ret +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\fsh\fsh.inc" + 4 D1:B1DE - - - - #include "includes/lib/fsh/Err.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\fsh\Err.asm" + 1 D1:B1DE - - - - ;;ErrCatch + 2 D1:B1DE - - - - ;;Checks err bit and jp to err route + 3 D1:B1DE - - - - ErrCatch: + 4 D1:B1DE C1 - - - pop bc + 5 D1:B1DF E5 - - - push hl + 6 D1:B1E0 21 6C A9 D1 ld hl, FshFlags + 7 D1:B1E4 CB 4E - - bit 1, (hl) + 8 D1:B1E6 E1 - - - pop hl + 9 D1:B1E7 C2 ED B1 D1 jp nz, ErrRoute + 10 D1:B1EB C5 - - - push bc + 11 D1:B1EC C9 - - - ret + 12 D1:B1ED - - - - + 13 D1:B1ED - - - - ;;ErrRoute + 14 D1:B1ED - - - - ;;Routes err codes. + 15 D1:B1ED - - - - ErrRoute: + 16 D1:B1ED - - - - + 17 D1:B1ED 21 6C A9 D1 ld hl, FshFlags + 18 D1:B1F1 CB 8E - - res 1, (hl) + 19 D1:B1F3 - - - - + 20 D1:B1F3 21 CE EA D0 ld hl, FshCmdErrCode + 21 D1:B1F7 - - - - + 22 D1:B1F7 11 3A B2 D1 ld de, ErrCmdNotFoundo + 23 D1:B1FB CD C3 A9 D1 call bytecmp + 24 D1:B1FF CA 3B B2 D1 jp z, ErrCmdNotFoundf + 25 D1:B203 - - - - + 26 D1:B203 11 70 B2 D1 ld de, ErrOutOfBoundso + 27 D1:B207 CD C3 A9 D1 call bytecmp + 28 D1:B20B CA 71 B2 D1 jp z, ErrOutOfBoundsf + 29 D1:B20F - - - - + 30 D1:B20F 11 96 B2 D1 ld de, ErrArgso + 31 D1:B213 CD C3 A9 D1 call bytecmp + 32 D1:B217 CA 97 B2 D1 jp z, ErrArgsf + 33 D1:B21B - - - - + 34 D1:B21B 11 C0 B2 D1 ld de, ErrUsageo + 35 D1:B21F CD C3 A9 D1 call bytecmp + 36 D1:B223 CA C1 B2 D1 jp z, ErrUsagef + 37 D1:B227 - - - - + 38 D1:B227 C3 EC B2 D1 jp ErrDefault + 39 D1:B22B - - - - + 40 D1:B22B - - - - + 41 D1:B22B - - - - ;;ErrSet + 42 D1:B22B - - - - ;;Sets all things relating to Err codes + 43 D1:B22B - - - - ;;Inputs: + 44 D1:B22B - - - - ;; HL: Err_____o + 45 D1:B22B - - - - ErrSet: + 46 D1:B22B E5 - - - push hl + 47 D1:B22C 7E - - - ld a, (hl) + 48 D1:B22D 21 CE EA D0 ld hl, FshCmdErrCode + 49 D1:B231 77 - - - ld (hl), a + 50 D1:B232 21 6C A9 D1 ld hl, FshFlags + 51 D1:B236 CB CE - - set 1, (hl) + 52 D1:B238 E1 - - - pop hl + 53 D1:B239 C9 - - - ret + 54 D1:B23A - - - - + 55 D1:B23A - - - - ;;ERR FUNCS------------------- + 56 D1:B23A - - - - + 57 D1:B23A 01 - - - ErrCmdNotFoundo: .db $01 + 58 D1:B23B - - - - ErrCmdNotFoundf: + 59 D1:B23B 21 9F EA D0 ld hl, FshCmd + 60 D1:B23F 7E - - - ld a, (hl) + 61 D1:B240 FE 00 - - cp $00 + 62 D1:B242 CA DB A8 D1 jp z, Fin + 63 D1:B246 21 5E B2 D1 ld hl, ErrCmdNotFoundt + 64 D1:B24A CD C0 07 02 call _PutS + 65 D1:B24E 21 9F EA D0 ld hl, FshCmd + 66 D1:B252 CD C0 07 02 call _PutS + 67 D1:B256 CD F0 07 02 call _NewLine + 68 D1:B25A C3 DB A8 D1 jp Fin + 69 D1:B25E 65 72 72 6F + 72 3A 4E 6F + 20 43 6F 6D + 6D 61 6E 64 + 3A 00 - - ErrCmdNotFoundt: .db "error:No Command:", 0 + 70 D1:B270 - - - - + 71 D1:B270 02 - - - ErrOutOfBoundso: .db $02 + 72 D1:B271 - - - - ErrOutOfBoundsf: + 73 D1:B271 21 81 B2 D1 ld hl, ErrOutOfBoundst + 74 D1:B275 CD C0 07 02 call _PutS + 75 D1:B279 CD F0 07 02 call _NewLine + 76 D1:B27D C3 DB A8 D1 jp Fin + 77 D1:B281 65 72 72 6F + 72 3A 20 4F + 75 74 20 4F + 66 20 42 6F + 75 6E 64 73 + 00 - - - ErrOutOfBoundst: .db "error: Out Of Bounds", 0 + 78 D1:B296 - - - - + 79 D1:B296 03 - - - ErrArgso: .db $03 + 80 D1:B297 - - - - ErrArgsf: + 81 D1:B297 21 A7 B2 D1 ld hl, ErrArgst + 82 D1:B29B CD C0 07 02 call _PutS + 83 D1:B29F CD F0 07 02 call _NewLine + 84 D1:B2A3 C3 DB A8 D1 jp Fin + 85 D1:B2A7 65 72 72 6F + 72 3A 20 49 + 6E 76 61 6C + 69 64 20 41 + 72 67 75 6D + 65 6E 74 73 + 00 - - - ErrArgst: .db "error: Invalid Arguments", 0 + 86 D1:B2C0 - - - - + 87 D1:B2C0 04 - - - ErrUsageo: .db $04 + 88 D1:B2C1 - - - - ErrUsagef: + 89 D1:B2C1 21 DD B2 D1 ld hl, ErrUsaget + 90 D1:B2C5 CD C0 07 02 call _PutS + 91 D1:B2C9 21 9F EA D0 ld hl, FshCmd + 92 D1:B2CD CD 2A B4 D1 call manrouteu + 93 D1:B2D1 CD C0 07 02 call _PutS + 94 D1:B2D5 CD F0 07 02 call _NewLine + 95 D1:B2D9 C3 DB A8 D1 jp Fin + 96 D1:B2DD 65 72 72 6F + 72 3A 20 55 + 73 61 67 65 + 3A 20 00 - ErrUsaget: .db "error: Usage: ", 0 + 97 D1:B2EC - - - - + 98 D1:B2EC - - - - ErrDefault: + 99 D1:B2EC 21 F8 B2 D1 ld hl, ErrDefaultt + 100 D1:B2F0 CD C0 07 02 call _PutS + 101 D1:B2F4 C3 F7 A8 D1 jp Exit + 102 D1:B2F8 65 72 72 6F + 72 3A 20 44 + 65 66 61 75 + 6C 74 3B 20 + 45 78 69 74 + 00 - - - ErrDefaultt: .db "error: Default; Exit", 0 +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\fsh\fsh.inc" + 5 D1:B30D - - - - #include "includes/lib/fsh/Print.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\fsh\Print.asm" + 1 D1:B30D - - - - ;;printfshnamelong + 2 D1:B30D - - - - ;;prints Name + Varsv + Version to screen + 3 D1:B30D - - - - printfshnamelong: + 4 D1:B30D E5 - - - push hl + 5 D1:B30E 21 FC A8 D1 ld hl, FshName + 6 D1:B312 CD C0 07 02 call _PutS + 7 D1:B316 3E 20 - - ld a, ' ' + 8 D1:B318 CD B8 07 02 call _PutC + 9 D1:B31C 21 31 A9 D1 ld hl, FshVVars + 10 D1:B320 CD C0 07 02 call _PutS + 11 D1:B324 3E 20 - - ld a, ' ' + 12 D1:B326 CD B8 07 02 call _PutC + 13 D1:B32A 3E 76 - - ld a, 'v' + 14 D1:B32C CD B8 07 02 call _PutC + 15 D1:B330 21 35 A9 D1 ld hl, FshVMajor + 16 D1:B334 CD C0 07 02 call _PutS + 17 D1:B338 21 3F A9 D1 ld hl, FshVSeparator + 18 D1:B33C CD C0 07 02 call _PutS + 19 D1:B340 21 37 A9 D1 ld hl, FshVMinor + 20 D1:B344 CD C0 07 02 call _PutS + 21 D1:B348 21 3F A9 D1 ld hl, FshVSeparator + 22 D1:B34C CD C0 07 02 call _PutS + 23 D1:B350 21 39 A9 D1 ld hl, FshVPatch + 24 D1:B354 CD C0 07 02 call _PutS + 25 D1:B358 3E 20 - - ld a, ' ' + 26 D1:B35A CD B8 07 02 call _PutC + 27 D1:B35E 21 3B A9 D1 ld hl, FshVBuild + 28 D1:B362 CD C0 07 02 call _PutS + 29 D1:B366 E1 - - - pop hl + 30 D1:B367 C9 - - - ret + 31 D1:B368 - - - - + 32 D1:B368 - - - - ;;printmotd + 33 D1:B368 - - - - ;;prints the motd to screen + 34 D1:B368 - - - - printmotd: + 35 D1:B368 CD 0D B3 D1 call printfshnamelong + 36 D1:B36C CD F0 07 02 call _NewLine + 37 D1:B370 CD F0 07 02 call _NewLine + 38 D1:B374 21 41 A9 D1 ld hl, FshMotd2nd + 39 D1:B378 CD C0 07 02 call _PutS + 40 D1:B37C CD F0 07 02 call _NewLine + 41 D1:B380 21 57 A9 D1 ld hl, FshMotdHelp + 42 D1:B384 CD C0 07 02 call _PutS + 43 D1:B388 CD F0 07 02 call _NewLine + 44 D1:B38C C9 - - - ret +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\fsh\fsh.inc" + 6 D1:B38D - - - - #include "includes/lib/fsh/Draw.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\fsh\Draw.asm" + 1 D1:B38D - - - - ;;drawstatusbar + 2 D1:B38D - - - - ;;draws the FSH status bar + 3 D1:B38D - - - - drawstatusbar: + 4 D1:B38D - - - - ;rgbto565(84, 84, 84) + 5 D1:B38D 21 AA 52 00 ld hl, $52AA + 6 D1:B391 3E 00 - - ld a, 0 + 7 D1:B393 01 1E 00 00 ld bc, 30 + 8 D1:B397 CD E7 AA D1 call drawbar + 9 D1:B39B - - - - ;rgbto565(0, 159, 209) + 10 D1:B39B 21 FA 04 00 ld hl, $04FA + 11 D1:B39F - - - - ;ld hl, %1111100000000000 + 12 D1:B39F EB DD 6B DD + 62 EB 21 02 + 00 00 11 00 + 00 00 01 00 + 00 00 0E 00 + 3E 1E CD FC + AA D1 - - drawrectfilledM(0, 0, 2, 30) +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\fsh\Draw.asm" + 13 D1:B3B9 CD 50 1A 02 call _DrawBatteryIndicator + 14 D1:B3BD - - - - ;draw name + 15 D1:B3BD FD CB 32 D6 set fracDrawLFont, (iy + fontFlags) + 16 D1:B3C1 3E 06 - - ld a, 6 + 17 D1:B3C3 32 D5 08 D0 ld (penRow), a + 18 D1:B3C7 3E 07 - - ld a, 7 + 19 D1:B3C9 32 D2 08 D0 ld (penCol), a + 20 D1:B3CD 21 AA 52 00 ld hl, $52AA + 21 D1:B3D1 22 AA 26 D0 ld (drawBGcolor), hl + 22 D1:B3D5 21 FF FF 00 ld hl, $ffff + 23 D1:B3D9 22 AC 26 D0 ld (drawFGcolor), hl + 24 D1:B3DD 21 FC A8 D1 ld hl, FshName + 25 D1:B3E1 CD 34 08 02 call _VPutS + 26 D1:B3E5 21 FF FF 00 ld hl, $ffff + 27 D1:B3E9 22 AA 26 D0 ld (drawBGcolor), hl + 28 D1:B3ED 21 00 00 00 ld hl, $0000 + 29 D1:B3F1 22 AC 26 D0 ld (drawFGcolor), hl + 30 D1:B3F5 C9 - - - ret +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\fsh\fsh.inc" +Listing for file "FSHa.asm" + 73 D1:B3F6 - - - - #include "includes/lib/crypto/crypto.inc" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\crypto\crypto.inc" + 1 D1:B3F6 - - - - #include "includes/lib/crypto/rot.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\crypto\rot.asm" + 1 D1:B3F6 - - - - ;;rotasciiencrypt + 2 D1:B3F6 - - - - ;;Encrypts a string in rot-x (uses $00 to $EF) + 3 D1:B3F6 - - - - ;;Inputs: + 4 D1:B3F6 - - - - ;; HL: string pointer + 5 D1:B3F6 - - - - ;; A: x + 6 D1:B3F6 - - - - ;;Notes: + 7 D1:B3F6 - - - - ;; Changes string in place. + 8 D1:B3F6 - - - - rotasciiencrypt: + 9 D1:B3F6 E5 - - - push hl + 10 D1:B3F7 C5 - - - push bc + 11 D1:B3F8 0E 00 - - ld c, 0 + 12 D1:B3FA 4F - - - ld c, a + 13 D1:B3FB - - - - rotasciiencryptLoop: + 14 D1:B3FB 7E - - - ld a, (hl) + 15 D1:B3FC - - - - ;call _PutC + 16 D1:B3FC FE 00 - - cp 0 + 17 D1:B3FE 28 13 - - jr z, rotasciiencryptEnd + 18 D1:B400 81 - - - add a, c + 19 D1:B401 - - - - ;call _PutC + 20 D1:B401 FE 00 - - cp 0 + 21 D1:B403 20 01 - - jr nz, rotasciiencryptLd + 22 D1:B405 3C - - - inc a + 23 D1:B406 - - - - rotasciiencryptLd: + 24 D1:B406 77 - - - ld (hl), a + 25 D1:B407 23 - - - inc hl + 26 D1:B408 FE EF - - cp a, $EF + 27 D1:B40A 38 EF - - jr c, rotasciiencryptLoop + 28 D1:B40C 2B - - - dec hl + 29 D1:B40D D6 0F - - sub a, $0F + 30 D1:B40F 77 - - - ld (hl), a + 31 D1:B410 23 - - - inc hl + 32 D1:B411 18 E8 - - jr rotasciiencryptLoop + 33 D1:B413 - - - - rotasciiencryptEnd: + 34 D1:B413 36 00 - - ld (hl), $00 + 35 D1:B415 C1 - - - pop bc + 36 D1:B416 E1 - - - pop hl + 37 D1:B417 C9 - - - ret + 38 D1:B418 - - - - +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\lib\crypto\crypto.inc" +Listing for file "FSHa.asm" + 74 D1:B418 - - - - + 75 D1:B418 - - - - #include "includes/man-db.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\man-db.asm" + 1 D1:B418 - - - - ;;TODO: move module specific macros to diffrent file + 2 D1:B418 - - - - ;;manroute + 3 D1:B418 - - - - ;;routes command string to discription + 4 D1:B418 - - - - ;;Inputs: + 5 D1:B418 - - - - ;; HL: Command String + 6 D1:B418 - - - - ;;Outputs: + 7 D1:B418 - - - - ;; HL: Command Discription String + 8 D1:B418 - - - - manroute: + 9 D1:B418 D5 - - - push de + 10 D1:B419 - - - - #macro routestrjp(cmdXs, cmdXm) + 11 D1:B419 ld de, cmdXs + 12 D1:B419 call strcmp + 13 D1:B419 ld de, cmdXm + 14 D1:B419 jp z, manrouteReturn + 15 D1:B419 #endmacro + 16 D1:B419 - - - - + 17 D1:B419 CD C5 B5 D1 call fshcmdmanroute + 18 D1:B41D - - - - ;Extention Point + 19 D1:B41D - - - - + 20 D1:B41D 21 CE EA D0 ld hl, FshCmdErrCode + 21 D1:B421 36 01 - - ld (hl), $01 + 22 D1:B423 11 00 00 00 ld de, $00 + 23 D1:B427 - - - - manrouteReturn: + 24 D1:B427 EB - - - ex de, hl + 25 D1:B428 D1 - - - pop de + 26 D1:B429 C9 - - - ret + 27 D1:B42A - - - - + 28 D1:B42A - - - - ;;manrouteu + 29 D1:B42A - - - - ;;routes command string to usage + 30 D1:B42A - - - - ;;Inputs: + 31 D1:B42A - - - - ;; HL: Command String + 32 D1:B42A - - - - ;;Outputs: + 33 D1:B42A - - - - ;; HL: Command Usage String + 34 D1:B42A - - - - manrouteu: + 35 D1:B42A D5 - - - push de + 36 D1:B42B - - - - #macro routeustrjp(cmdXs, cmdXu) + 37 D1:B42B ld de, cmdXs + 38 D1:B42B call strcmp + 39 D1:B42B ld de, cmdXu + 40 D1:B42B jp z, manrouteuReturn + 41 D1:B42B #endmacro + 42 D1:B42B - - - - + 43 D1:B42B CD 78 B6 D1 call fshcmdmanrouteu + 44 D1:B42F - - - - ;Extention Point + 45 D1:B42F - - - - + 46 D1:B42F 21 CE EA D0 ld hl, FshCmdErrCode + 47 D1:B433 36 01 - - ld (hl), $01 + 48 D1:B435 11 00 00 00 ld de, $00 + 49 D1:B439 - - - - manrouteuReturn: + 50 D1:B439 EB - - - ex de, hl + 51 D1:B43A D1 - - - pop de + 52 D1:B43B C9 - - - ret +Listing for file "FSHa.asm" + 76 D1:B43C - - - - #include "includes/Command.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\Command.asm" + 1 D1:B43C - - - - ;;Commanddecode + 2 D1:B43C - - - - ;;Decodes all commands. + 3 D1:B43C - - - - ;;Inputs: + 4 D1:B43C - - - - ;; HL: Cmd String mem loc + 5 D1:B43C - - - - ;; DE: Op code mem loc + 6 D1:B43C - - - - ;;Output: + 7 D1:B43C - - - - ;; Sets (DE) with command op code + 8 D1:B43C - - - - commanddecode: + 9 D1:B43C CD 61 B4 D1 call fshcmddecode + 10 D1:B440 CD A9 BE D1 call cryptocmddecode + 11 D1:B444 - - - - ;Extention Point + 12 D1:B444 - - - - + 13 D1:B444 C9 - - - ret + 14 D1:B445 - - - - + 15 D1:B445 - - - - ;;commandroute + 16 D1:B445 - - - - ;;Routes all commamds. + 17 D1:B445 - - - - ;;Inputs: + 18 D1:B445 - - - - ;; HL: Op code mem loc + 19 D1:B445 - - - - commandroute: + 20 D1:B445 CD 3E B5 D1 call fshcmdroute + 21 D1:B449 CD BE BE D1 call cryptocmdroute + 22 D1:B44D - - - - ;Extention Point + 23 D1:B44D - - - - + 24 D1:B44D 21 3A B2 D1 ld hl, ErrCmdNotFoundo + 25 D1:B451 11 CE EA D0 ld de, FshCmdErrCode + 26 D1:B455 CD CB A9 D1 call bytecpy + 27 D1:B459 CD 2B B2 D1 call ErrSet + 28 D1:B45D C3 DF A8 D1 jp Err + 29 D1:B461 - - - - + 30 D1:B461 - - - - #include "includes/FshCommands/FshCommand.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\FshCommands\FshCommand.asm" + 1 D1:B461 - - - - fshcmddecode: + 2 D1:B461 E5 D5 11 2B + B7 D1 CD 3B + AB D1 21 30 + B7 D1 D1 CC + CB A9 D1 E1 decodecmdopt(fshcmdEXIT, fshcmdEXITo) +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\FshCommands\FshCommand.asm" + 3 D1:B475 E5 D5 11 44 + B7 D1 CD 3B + AB D1 21 48 + B7 D1 D1 CC + CB A9 D1 E1 decodecmdopt(fshcmdSET, fshcmdSETo) + 4 D1:B489 E5 D5 11 3B + B8 D1 CD 3B + AB D1 21 40 + B8 D1 D1 CC + CB A9 D1 E1 decodecmdopt(fshcmdCOPY, fshcmdCOPYo) + 5 D1:B49D E5 D5 11 49 + B9 D1 CD 3B + AB D1 21 4E + B9 D1 D1 CC + CB A9 D1 E1 decodecmdopt(fshcmdMOVE, fshcmdMOVEo) + 6 D1:B4B1 E5 D5 11 5F + BA D1 CD 3B + AB D1 21 63 + BA D1 D1 CC + CB A9 D1 E1 decodecmdopt(fshcmdCLS, fshcmdCLSo) + 7 D1:B4C5 E5 D5 11 8B + BA D1 CD 3B + AB D1 21 8F + BA D1 D1 CC + CB A9 D1 E1 decodecmdopt(fshcmdVAR, fshcmdVARo) + 8 D1:B4D9 E5 D5 11 2D + BB D1 CD 3B + AB D1 21 32 + BB D1 D1 CC + CB A9 D1 E1 decodecmdopt(fshcmdVARS, fshcmdVARSo) + 9 D1:B4ED E5 D5 11 9D + BB D1 CD 3B + AB D1 21 A3 + BB D1 D1 CC + CB A9 D1 E1 decodecmdopt(fshcmdSLEEP, fshcmdSLEEPo) + 10 D1:B501 E5 D5 11 EB + BB D1 CD 3B + AB D1 21 F0 + BB D1 D1 CC + CB A9 D1 E1 decodecmdopt(fshcmdINFO, fshcmdINFOo) + 11 D1:B515 E5 D5 11 8D + BC D1 CD 3B + AB D1 21 92 + BC D1 D1 CC + CB A9 D1 E1 decodecmdopt(fshcmdHELP, fshcmdHELPo) + 12 D1:B529 E5 D5 11 C1 + BD D1 CD 3B + AB D1 21 C5 + BD D1 D1 CC + CB A9 D1 E1 decodecmdopt(fshcmdMAN, fshcmdMANo) + 13 D1:B53D C9 - - - ret + 14 D1:B53E - - - - + 15 D1:B53E - - - - fshcmdroute: + 16 D1:B53E C1 - - - pop bc ;pop the ret loc from stack into bc + 17 D1:B53F 11 30 B7 D1 + CD C3 A9 D1 + CA 40 B7 D1 routeoptjp(fshcmdEXITo, fshcmdEXITf) + 18 D1:B54B 11 48 B7 D1 + CD C3 A9 D1 + CA 86 B7 D1 routeoptjp(fshcmdSETo, fshcmdSETf) + 19 D1:B557 11 40 B8 D1 + CD C3 A9 D1 + CA 9B B8 D1 routeoptjp(fshcmdCOPYo, fshcmdCOPYf) + 20 D1:B563 11 4E B9 D1 + CD C3 A9 D1 + CA A8 B9 D1 routeoptjp(fshcmdMOVEo, fshcmdMOVEf) + 21 D1:B56F 11 63 BA D1 + CD C3 A9 D1 + CA 7A BA D1 routeoptjp(fshcmdCLSo, fshcmdCLSf) + 22 D1:B57B 11 8F BA D1 + CD C3 A9 D1 + CA C6 BA D1 routeoptjp(fshcmdVARo, fshcmdVARf) + 23 D1:B587 11 32 BB D1 + CD C3 A9 D1 + CA 4E BB D1 routeoptjp(fshcmdVARSo, fshcmdVARSf) + 24 D1:B593 11 A3 BB D1 + CD C3 A9 D1 + CA D4 BB D1 routeoptjp(fshcmdSLEEPo, fshcmdSLEEPf) + 25 D1:B59F 11 F0 BB D1 + CD C3 A9 D1 + CA 1C BC D1 routeoptjp(fshcmdINFOo, fshcmdINFOf) + 26 D1:B5AB 11 92 BC D1 + CD C3 A9 D1 + CA AE BC D1 routeoptjp(fshcmdHELPo, fshcmdHELPf) + 27 D1:B5B7 11 C5 BD D1 + CD C3 A9 D1 + CA F2 BD D1 routeoptjp(fshcmdMANo, fshcmdMANf) + 28 D1:B5C3 C5 - - - push bc ;put ret location back on stack + 29 D1:B5C4 C9 - - - ret + 30 D1:B5C5 - - - - + 31 D1:B5C5 - - - - fshcmdmanroute: + 32 D1:B5C5 C1 - - - pop bc + 33 D1:B5C6 11 2B B7 D1 + CD 3B AB D1 + 11 31 B7 D1 + CA 27 B4 D1 routestrjp(fshcmdEXIT, fshCmdEXITm) + 34 D1:B5D6 11 44 B7 D1 + CD 3B AB D1 + 11 49 B7 D1 + CA 27 B4 D1 routestrjp(fshcmdSET, fshCmdSETm) + 35 D1:B5E6 11 3B B8 D1 + CD 3B AB D1 + 11 41 B8 D1 + CA 27 B4 D1 routestrjp(fshcmdCOPY, fshCmdCOPYm) + 36 D1:B5F6 11 49 B9 D1 + CD 3B AB D1 + 11 4F B9 D1 + CA 27 B4 D1 routestrjp(fshcmdMOVE, fshCmdMOVEm) + 37 D1:B606 11 5F BA D1 + CD 3B AB D1 + 11 64 BA D1 + CA 27 B4 D1 routestrjp(fshcmdCLS, fshCmdCLSm) + 38 D1:B616 11 8B BA D1 + CD 3B AB D1 + 11 90 BA D1 + CA 27 B4 D1 routestrjp(fshcmdVAR, fshCmdVARm) + 39 D1:B626 11 2D BB D1 + CD 3B AB D1 + 11 33 BB D1 + CA 27 B4 D1 routestrjp(fshcmdVARS, fshCmdVARSm) + 40 D1:B636 11 9D BB D1 + CD 3B AB D1 + 11 A4 BB D1 + CA 27 B4 D1 routestrjp(fshcmdSLEEP, fshCmdSLEEPm) + 41 D1:B646 11 EB BB D1 + CD 3B AB D1 + 11 F1 BB D1 + CA 27 B4 D1 routestrjp(fshcmdINFO, fshCmdINFOm) + 42 D1:B656 11 8D BC D1 + CD 3B AB D1 + 11 93 BC D1 + CA 27 B4 D1 routestrjp(fshcmdHELP, fshCmdHELPm) + 43 D1:B666 11 C1 BD D1 + CD 3B AB D1 + 11 C6 BD D1 + CA 27 B4 D1 routestrjp(fshcmdMAN, fshCmdMANm) + 44 D1:B676 C5 - - - push bc + 45 D1:B677 C9 - - - ret + 46 D1:B678 - - - - + 47 D1:B678 - - - - fshcmdmanrouteu: + 48 D1:B678 C1 - - - pop bc + 49 D1:B679 11 2B B7 D1 + CD 3B AB D1 + 11 3B B7 D1 + CA 39 B4 D1 routeustrjp(fshcmdEXIT, fshCmdEXITu) + 50 D1:B689 11 44 B7 D1 + CD 3B AB D1 + 11 64 B7 D1 + CA 39 B4 D1 routeustrjp(fshcmdSET, fshCmdSETu) + 51 D1:B699 11 3B B8 D1 + CD 3B AB D1 + 11 6F B8 D1 + CA 39 B4 D1 routeustrjp(fshcmdCOPY, fshCmdCOPYu) + 52 D1:B6A9 11 49 B9 D1 + CD 3B AB D1 + 11 7C B9 D1 + CA 39 B4 D1 routeustrjp(fshcmdMOVE, fshCmdMOVEu) + 53 D1:B6B9 11 5F BA D1 + CD 3B AB D1 + 11 76 BA D1 + CA 39 B4 D1 routeustrjp(fshcmdCLS, fshCmdCLSu) + 54 D1:B6C9 11 8B BA D1 + CD 3B AB D1 + 11 B1 BA D1 + CA 39 B4 D1 routeustrjp(fshcmdVAR, fshCmdVARu) + 55 D1:B6D9 11 2D BB D1 + CD 3B AB D1 + 11 49 BB D1 + CA 39 B4 D1 routeustrjp(fshcmdVARS, fshCmdVARSu) + 56 D1:B6E9 11 9D BB D1 + CD 3B AB D1 + 11 CE BB D1 + CA 39 B4 D1 routeustrjp(fshcmdSLEEP, fshCmdSLEEPu) + 57 D1:B6F9 11 EB BB D1 + CD 3B AB D1 + 11 17 BC D1 + CA 39 B4 D1 routeustrjp(fshcmdINFO, fshCmdINFOu) + 58 D1:B709 11 8D BC D1 + CD 3B AB D1 + 11 A9 BC D1 + CA 39 B4 D1 routeustrjp(fshcmdHELP, fshCmdHELPu) + 59 D1:B719 11 C1 BD D1 + CD 3B AB D1 + 11 E4 BD D1 + CA 39 B4 D1 routeustrjp(fshcmdMAN, fshCmdMANu) + 60 D1:B729 C5 - - - push bc + 61 D1:B72A C9 - - - ret + 62 D1:B72B - - - - + 63 D1:B72B - - - - #include "includes/FshCommands/FshCommands.inc" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\FshCommands\FshCommands.inc" + 1 D1:B72B - - - - #include "includes/FshCommands/EXIT.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\FshCommands\EXIT.asm" + 1 D1:B72B 45 58 49 54 + 00 - - - fshcmdEXIT: .db "EXIT", 0 + 2 D1:B730 FF - - - fshcmdEXITo: .db $FF + 3 D1:B731 45 78 69 74 + 73 20 46 73 + 68 00 - - fshcmdEXITm: .db "Exits Fsh", 0 + 4 D1:B73B 45 58 49 54 + 00 - - - fshcmdEXITu: .db "EXIT", 0 + 5 D1:B740 C3 E3 A8 D1 fshcmdEXITf: JP Cleanup +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\FshCommands\FshCommands.inc" + 2 D1:B744 - - - - #include "includes/FshCommands/SET.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\FshCommands\SET.asm" + 1 D1:B744 53 45 54 00 fshcmdSET: .db "SET", 0 + 2 D1:B748 01 - - - fshcmdSETo: .db $01 + 3 D1:B749 53 65 74 73 + 20 61 20 76 + 61 6C 75 65 + 20 69 6E 20 + 46 53 48 20 + 6D 65 6D 6F + 72 79 00 - fshcmdSETm: .db "Sets a value in FSH memory", 0 + 4 D1:B764 53 45 54 20 + 3C 64 65 73 + 74 69 6E 61 + 74 69 6F 6E + 20 61 64 64 + 72 65 73 73 + 3E 20 3C 76 + 61 6C 75 65 + 3E 00 - - fshcmdSETu: .db "SET ", 0 + 5 D1:B786 - - - - fshcmdSETf: + 6 D1:B786 - - - - fshcmdSETfArg0: + 7 D1:B786 21 CD EA D0 ld hl, FshCmdArgFlags + 8 D1:B78A CB 4E - - bit 1, (hl) + 9 D1:B78C 20 34 - - jr nz, fshcmdSETfArg1 + 10 D1:B78E CB 46 - - bit 0, (hl) + 11 D1:B790 28 0C - - jr z, fshcmdSETfArg0Get + 12 D1:B792 21 C0 B2 D1 ld hl, ErrUsageo + 13 D1:B796 CD 2B B2 D1 call ErrSet + 14 D1:B79A CD DE B1 D1 call ErrCatch + 15 D1:B79E - - - - fshcmdSETfArg0Get: + 16 D1:B79E 21 25 B8 D1 ld hl, fshcmdSETfDIndex + 17 D1:B7A2 CD 89 AA D1 call printprompt + 18 D1:B7A6 21 1F B8 D1 ld hl, fshcmdSETfInputBuffer + 19 D1:B7AA 11 03 00 00 ld de, 3 + 20 D1:B7AE CD AF AE D1 call inputnumstr + 21 D1:B7B2 CD C5 AB D1 call strtow + 22 D1:B7B6 11 A8 EA D0 ld de, FshCmdArg0 + 23 D1:B7BA EB - - - ex de, hl + 24 D1:B7BB 73 - - - ld (hl), e + 25 D1:B7BC 23 - - - inc hl + 26 D1:B7BD 72 - - - ld (hl), d + 27 D1:B7BE CD F0 07 02 call _NewLine + 28 D1:B7C2 - - - - fshcmdSETfArg1: + 29 D1:B7C2 21 CD EA D0 ld hl, FshCmdArgFlags + 30 D1:B7C6 CB 5E - - bit 3, (hl) + 31 D1:B7C8 20 34 - - jr nz, fshcmdSETfExe + 32 D1:B7CA CB 56 - - bit 2, (hl) + 33 D1:B7CC 28 0C - - jr z, fshcmdSETfArg1Get + 34 D1:B7CE 21 C0 B2 D1 ld hl, ErrUsageo + 35 D1:B7D2 CD 2B B2 D1 call ErrSet + 36 D1:B7D6 CD DE B1 D1 call ErrCatch + 37 D1:B7DA - - - - fshcmdSETfArg1Get: + 38 D1:B7DA 21 33 B8 D1 ld hl, fshcmdSETfDValue + 39 D1:B7DE CD 89 AA D1 call printprompt + 40 D1:B7E2 21 1F B8 D1 ld hl, fshcmdSETfInputBuffer + 41 D1:B7E6 11 05 00 00 ld de, 5 + 42 D1:B7EA CD AF AE D1 call inputnumstr + 43 D1:B7EE CD C5 AB D1 call strtow + 44 D1:B7F2 EB - - - ex de, hl + 45 D1:B7F3 21 B1 EA D0 ld hl, FshCmdArg1 + 46 D1:B7F7 73 - - - ld (hl), e + 47 D1:B7F8 23 - - - inc hl + 48 D1:B7F9 72 - - - ld (hl), d + 49 D1:B7FA CD F0 07 02 call _NewLine + 50 D1:B7FE - - - - fshcmdSETfExe: + 51 D1:B7FE 21 A8 EA D0 ld hl, FshCmdArg0 + 52 D1:B802 11 00 00 00 ld de, 0 + 53 D1:B806 5E - - - ld e, (hl) + 54 D1:B807 23 - - - inc hl + 55 D1:B808 56 - - - ld d, (hl) + 56 D1:B809 D5 - - - push de + 57 D1:B80A 21 B1 EA D0 ld hl, FshCmdArg1 + 58 D1:B80E 5E - - - ld e, (hl) + 59 D1:B80F 23 - - - inc hl + 60 D1:B810 56 - - - ld d, (hl) + 61 D1:B811 EB - - - ex de, hl + 62 D1:B812 D1 - - - pop de + 63 D1:B813 CD 2E B1 D1 call fshvarset + 64 D1:B817 CD DE B1 D1 call ErrCatch + 65 D1:B81B C3 DB A8 D1 jp Fin + 66 D1:B81F - - - - + 67 D1:B81F 00 00 00 00 + 00 00 - - fshcmdSETfInputBuffer: .db $00, $00, $00, $00, $00, $00 + 68 D1:B825 44 65 73 74 + 69 6E 61 74 + 69 6F 6E 3D + 20 00 - - fshcmdSETfDIndex: .db "Destination= ", 0 + 69 D1:B833 56 61 6C 75 + 65 3D 20 00 fshcmdSETfDValue: .db "Value= ", 0 +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\FshCommands\FshCommands.inc" + 3 D1:B83B - - - - #include "includes/FshCommands/COPY.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\FshCommands\COPY.asm" + 1 D1:B83B 43 4F 50 59 + 00 - - - fshcmdCOPY: .db "COPY", 0 + 2 D1:B840 02 - - - fshcmdCOPYo: .db $02 + 3 D1:B841 43 6F 70 79 + 73 20 61 20 + 76 61 6C 75 + 65 20 69 6E + 20 46 53 48 + 20 6D 65 6D + 6F 72 79 20 + 74 6F 20 61 + 6E 6F 74 68 + 65 72 20 61 + 64 64 65 73 + 73 00 - - fshcmdCOPYm: .db "Copys a value in FSH memory to another addess", 0 + 4 D1:B86F 43 4F 50 59 + 20 3C 73 6F + 75 72 63 65 + 20 61 64 64 + 72 65 73 73 + 3E 20 3C 64 + 65 73 74 69 + 6E 61 74 69 + 6F 6E 20 61 + 64 64 72 65 + 73 73 3E 00 fshcmdCOPYu: .db "COPY ", 0 + 5 D1:B89B - - - - fshcmdCOPYf: + 6 D1:B89B - - - - fshcmdCOPYfArg0: + 7 D1:B89B 21 CD EA D0 ld hl, FshCmdArgFlags + 8 D1:B89F CB 4E - - bit 1, (hl) + 9 D1:B8A1 20 31 - - jr nz, fshcmdCOPYfArg1 + 10 D1:B8A3 CB 46 - - bit 0, (hl) + 11 D1:B8A5 28 0C - - jr z, fshcmdCOPYfArg0Get + 12 D1:B8A7 21 C0 B2 D1 ld hl, ErrUsageo + 13 D1:B8AB CD 2B B2 D1 call ErrSet + 14 D1:B8AF CD DE B1 D1 call ErrCatch + 15 D1:B8B3 - - - - fshcmdCOPYfArg0Get: + 16 D1:B8B3 21 32 B9 D1 ld hl, fshcmdCOPYfDSource + 17 D1:B8B7 CD 89 AA D1 call printprompt + 18 D1:B8BB 21 2E B9 D1 ld hl, fshcmdCOPYfInputBuffer + 19 D1:B8BF 11 03 00 00 ld de, 3 + 20 D1:B8C3 CD AF AE D1 call inputnumstr + 21 D1:B8C7 CD 68 AB D1 call strtob + 22 D1:B8CB 21 A8 EA D0 ld hl, FshCmdArg0 + 23 D1:B8CF 77 - - - ld (hl), a + 24 D1:B8D0 CD F0 07 02 call _NewLine + 25 D1:B8D4 - - - - fshcmdCOPYfArg1: + 26 D1:B8D4 21 CD EA D0 ld hl, FshCmdArgFlags + 27 D1:B8D8 CB 5E - - bit 3, (hl) + 28 D1:B8DA 20 31 - - jr nz, fshcmdCOPYfExe + 29 D1:B8DC CB 56 - - bit 2, (hl) + 30 D1:B8DE 28 0C - - jr z, fshcmdCOPYfArg1Get + 31 D1:B8E0 21 C0 B2 D1 ld hl, ErrUsageo + 32 D1:B8E4 CD 2B B2 D1 call ErrSet + 33 D1:B8E8 CD DE B1 D1 call ErrCatch + 34 D1:B8EC - - - - fshcmdCOPYfArg1Get: + 35 D1:B8EC 21 32 B9 D1 ld hl, fshcmdCOPYfDSource + 36 D1:B8F0 CD 89 AA D1 call printprompt + 37 D1:B8F4 21 2E B9 D1 ld hl, fshcmdCOPYfInputBuffer + 38 D1:B8F8 11 03 00 00 ld de, 3 + 39 D1:B8FC CD AF AE D1 call inputnumstr + 40 D1:B900 CD 68 AB D1 call strtob + 41 D1:B904 21 B1 EA D0 ld hl, FshCmdArg1 + 42 D1:B908 77 - - - ld (hl), a + 43 D1:B909 CD F0 07 02 call _NewLine + 44 D1:B90D - - - - fshcmdCOPYfExe: + 45 D1:B90D 21 A8 EA D0 ld hl, FshCmdArg0 + 46 D1:B911 11 00 00 00 ld de, 0 + 47 D1:B915 5E - - - ld e, (hl) + 48 D1:B916 EB - - - ex de, hl + 49 D1:B917 E5 - - - push hl + 50 D1:B918 21 B1 EA D0 ld hl, FshCmdArg1 + 51 D1:B91C 11 00 00 00 ld de, 0 + 52 D1:B920 5E - - - ld e, (hl) + 53 D1:B921 E1 - - - pop hl + 54 D1:B922 CD 81 B1 D1 call fshvarcpy + 55 D1:B926 CD DE B1 D1 call ErrCatch + 56 D1:B92A C3 DB A8 D1 jp Fin + 57 D1:B92E - - - - + 58 D1:B92E 00 00 00 00 fshcmdCOPYfInputBuffer: .db $00, $00, $00, $00 + 59 D1:B932 53 6F 75 72 + 63 65 3D 20 + 00 - - - fshcmdCOPYfDSource: .db "Source= ", 0 + 60 D1:B93B 44 65 73 74 + 69 6E 61 74 + 69 6F 6E 3D + 20 00 - - fshcmdCOPYfDDestination: .db "Destination= ", 0 +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\FshCommands\FshCommands.inc" + 4 D1:B949 - - - - #include "includes/FshCommands/MOVE.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\FshCommands\MOVE.asm" + 1 D1:B949 4D 4F 56 45 + 00 - - - fshcmdMOVE: .db "MOVE", 0 + 2 D1:B94E 03 - - - fshcmdMOVEo: .db $03 + 3 D1:B94F 4D 6F 76 65 + 20 61 20 76 + 61 6C 75 65 + 20 69 6E 20 + 46 53 48 20 + 6D 65 6D 6F + 72 79 20 74 + 6F 20 61 6E + 6F 74 68 65 + 72 20 61 64 + 64 65 73 73 + 00 - - - fshcmdMOVEm: .db "Move a value in FSH memory to another addess", 0 + 4 D1:B97C 4D 4F 56 45 + 20 3C 73 6F + 75 72 63 65 + 20 61 64 64 + 72 65 73 73 + 3E 20 3C 64 + 65 73 74 69 + 6E 61 74 69 + 6F 6E 20 61 + 64 64 72 65 + 73 73 3E 00 fshcmdMOVEu: .db "MOVE ", 0 + 5 D1:B9A8 - - - - fshcmdMOVEf: + 6 D1:B9A8 - - - - fshcmdMOVEfArg0: + 7 D1:B9A8 21 CD EA D0 ld hl, FshCmdArgFlags + 8 D1:B9AC CB 4E - - bit 1, (hl) + 9 D1:B9AE 20 31 - - jr nz, fshcmdMOVEfArg1 + 10 D1:B9B0 CB 46 - - bit 0, (hl) + 11 D1:B9B2 28 0C - - jr z, fshcmdMOVEfArg0Get + 12 D1:B9B4 21 C0 B2 D1 ld hl, ErrUsageo + 13 D1:B9B8 CD 2B B2 D1 call ErrSet + 14 D1:B9BC CD DE B1 D1 call ErrCatch + 15 D1:B9C0 - - - - fshcmdMOVEfArg0Get: + 16 D1:B9C0 21 48 BA D1 ld hl, fshcmdMOVEfDSource + 17 D1:B9C4 CD 89 AA D1 call printprompt + 18 D1:B9C8 21 44 BA D1 ld hl, fshcmdMOVEfInputBuffer + 19 D1:B9CC 11 03 00 00 ld de, 3 + 20 D1:B9D0 CD AF AE D1 call inputnumstr + 21 D1:B9D4 CD 68 AB D1 call strtob + 22 D1:B9D8 21 A8 EA D0 ld hl, FshCmdArg0 + 23 D1:B9DC 77 - - - ld (hl), a + 24 D1:B9DD CD F0 07 02 call _NewLine + 25 D1:B9E1 - - - - fshcmdMOVEfArg1: + 26 D1:B9E1 21 CD EA D0 ld hl, FshCmdArgFlags + 27 D1:B9E5 CB 5E - - bit 3, (hl) + 28 D1:B9E7 20 31 - - jr nz, fshcmdMOVEfExe + 29 D1:B9E9 CB 56 - - bit 2, (hl) + 30 D1:B9EB 28 0C - - jr z, fshcmdMOVEfArg1Get + 31 D1:B9ED 21 C0 B2 D1 ld hl, ErrUsageo + 32 D1:B9F1 CD 2B B2 D1 call ErrSet + 33 D1:B9F5 CD DE B1 D1 call ErrCatch + 34 D1:B9F9 - - - - fshcmdMOVEfArg1Get: + 35 D1:B9F9 21 51 BA D1 ld hl, fshcmdMOVEfDDestination + 36 D1:B9FD CD 89 AA D1 call printprompt + 37 D1:BA01 21 44 BA D1 ld hl, fshcmdMOVEfInputBuffer + 38 D1:BA05 11 03 00 00 ld de, 3 + 39 D1:BA09 CD AF AE D1 call inputnumstr + 40 D1:BA0D CD 68 AB D1 call strtob + 41 D1:BA11 21 B1 EA D0 ld hl, FshCmdArg1 + 42 D1:BA15 77 - - - ld (hl), a + 43 D1:BA16 CD F0 07 02 call _NewLine + 44 D1:BA1A - - - - fshcmdMOVEfExe: + 45 D1:BA1A 21 A8 EA D0 ld hl, FshCmdArg0 + 46 D1:BA1E 11 00 00 00 ld de, 0 + 47 D1:BA22 5E - - - ld e, (hl) + 48 D1:BA23 EB - - - ex de, hl + 49 D1:BA24 E5 - - - push hl + 50 D1:BA25 21 B1 EA D0 ld hl, FshCmdArg1 + 51 D1:BA29 11 00 00 00 ld de, 0 + 52 D1:BA2D 5E - - - ld e, (hl) + 53 D1:BA2E E1 - - - pop hl + 54 D1:BA2F CD 81 B1 D1 call fshvarcpy + 55 D1:BA33 EB - - - ex de, hl + 56 D1:BA34 21 00 00 00 ld hl, 0 + 57 D1:BA38 CD 2E B1 D1 call fshvarset + 58 D1:BA3C CD DE B1 D1 call ErrCatch + 59 D1:BA40 C3 DB A8 D1 jp Fin + 60 D1:BA44 - - - - + 61 D1:BA44 00 00 00 00 fshcmdMOVEfInputBuffer: .db $00, $00, $00, $00 + 62 D1:BA48 53 6F 75 72 + 63 65 3D 20 + 00 - - - fshcmdMOVEfDSource: .db "Source= ", 0 + 63 D1:BA51 44 65 73 74 + 69 6E 61 74 + 69 6F 6E 3D + 20 00 - - fshcmdMOVEfDDestination: .db "Destination= ", 0 +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\FshCommands\FshCommands.inc" + 5 D1:BA5F - - - - #include "includes/FshCommands/CLS.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\FshCommands\CLS.asm" + 1 D1:BA5F 43 4C 53 00 fshcmdCLS: .db "CLS", 0 + 2 D1:BA63 10 - - - fshcmdCLSo: .db $10 + 3 D1:BA64 43 6C 65 61 + 72 73 20 74 + 68 65 20 73 + 63 72 65 65 + 6E 00 - - fshcmdCLSm: .db "Clears the screen", 0 + 4 D1:BA76 43 4C 53 00 fshcmdCLSu: .db "CLS", 0 + 5 D1:BA7A - - - - fshcmdCLSf: + 6 D1:BA7A CD 08 08 02 call _ClrLCDFull + 7 D1:BA7E AF - - - xor a + 8 D1:BA7F 32 95 05 D0 ld (CurRow), a + 9 D1:BA83 32 96 05 D0 ld (CurCol), a + 10 D1:BA87 C3 DB A8 D1 jp Fin +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\FshCommands\FshCommands.inc" + 6 D1:BA8B - - - - #include "includes/FshCommands/VAR.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\FshCommands\VAR.asm" + 1 D1:BA8B 56 41 52 00 fshcmdVAR: .db "VAR", 0 + 2 D1:BA8F 11 - - - fshcmdVARo: .db $11 + 3 D1:BA90 44 69 73 70 + 6C 61 79 73 + 20 61 20 76 + 61 6C 75 65 + 20 66 72 6F + 6D 20 46 53 + 48 20 6D 65 + 6D 6F 72 79 + 00 - - - fshcmdVARm: .db "Displays a value from FSH memory", 0 + 4 D1:BAB1 56 41 52 20 + 3C 73 6F 75 + 72 63 65 20 + 61 64 64 72 + 65 73 73 3E + 00 - - - fshcmdVARu: .db "VAR ", 0 + 5 D1:BAC6 - - - - fshcmdVARf: + 6 D1:BAC6 - - - - fshcmdVARfArg0: + 7 D1:BAC6 21 CD EA D0 ld hl, FshCmdArgFlags + 8 D1:BACA CB 4E - - bit 1, (hl) + 9 D1:BACC 20 34 - - jr nz, fshcmdVARfExe + 10 D1:BACE CB 46 - - bit 0, (hl) + 11 D1:BAD0 28 0C - - jr z, fshcmdVARfArg0Get + 12 D1:BAD2 21 C0 B2 D1 ld hl, ErrUsageo + 13 D1:BAD6 CD 2B B2 D1 call ErrSet + 14 D1:BADA CD DE B1 D1 call ErrCatch + 15 D1:BADE - - - - fshcmdVARfArg0Get: + 16 D1:BADE 21 25 BB D1 ld hl, fshcmdVARfDIndex + 17 D1:BAE2 CD 89 AA D1 call printprompt + 18 D1:BAE6 21 21 BB D1 ld hl, fshcmdVARfInputBuffer + 19 D1:BAEA 11 03 00 00 ld de, 3 + 20 D1:BAEE CD AF AE D1 call inputnumstr + 21 D1:BAF2 CD C5 AB D1 call strtow + 22 D1:BAF6 11 A8 EA D0 ld de, FshCmdArg0 + 23 D1:BAFA EB - - - ex de, hl + 24 D1:BAFB 73 - - - ld (hl), e + 25 D1:BAFC 23 - - - inc hl + 26 D1:BAFD 72 - - - ld (hl), d + 27 D1:BAFE CD F0 07 02 call _NewLine + 28 D1:BB02 - - - - fshcmdVARfExe: + 29 D1:BB02 21 A8 EA D0 ld hl, FshCmdArg0 + 30 D1:BB06 11 00 00 00 ld de, 0 + 31 D1:BB0A 5E - - - ld e, (hl) + 32 D1:BB0B 23 - - - inc hl + 33 D1:BB0C 56 - - - ld d, (hl) + 34 D1:BB0D CD 56 B1 D1 call fshvarget + 35 D1:BB11 CD DE B1 D1 call ErrCatch + 36 D1:BB15 CD BC 07 02 call _DispHL_s + 37 D1:BB19 CD F0 07 02 call _NewLine + 38 D1:BB1D C3 DB A8 D1 jp Fin + 39 D1:BB21 - - - - + 40 D1:BB21 00 00 00 00 fshcmdVARfInputBuffer: .db $00, $00, $00, $00 + 41 D1:BB25 49 6E 64 65 + 78 3D 20 00 fshcmdVARfDIndex: .db "Index= ", 0 +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\FshCommands\FshCommands.inc" + 7 D1:BB2D - - - - #include "includes/FshCommands/VARS.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\FshCommands\VARS.asm" + 1 D1:BB2D 56 41 52 53 + 00 - - - fshcmdVARS: .db "VARS", 0 + 2 D1:BB32 12 - - - fshcmdVARSo: .db $12 + 3 D1:BB33 44 69 73 70 + 6C 61 79 73 + 20 61 6C 6C + 20 46 73 68 + 20 56 61 72 + 73 00 - - fshcmdVARSm: .db "Displays all Fsh Vars", 0 + 4 D1:BB49 56 41 52 53 + 00 - - - fshcmdVARSu: .db "VARS", 0 + 5 D1:BB4E - - - - fshcmdVARSf: + 6 D1:BB4E 21 CD EA D0 ld hl, FshCmdArgFlags + 7 D1:BB52 CB 46 - - bit 0, (hl) + 8 D1:BB54 28 0C - - jr z, fshcmdVARSfExe + 9 D1:BB56 21 C0 B2 D1 ld hl, ErrUsageo + 10 D1:BB5A CD 2B B2 D1 call ErrSet + 11 D1:BB5E CD DE B1 D1 call ErrCatch + 12 D1:BB62 - - - - fshcmdVARSfExe: + 13 D1:BB62 06 00 - - ld b, 0 + 14 D1:BB64 0E 00 - - ld c, 0 + 15 D1:BB66 11 00 00 00 ld de, 0 + 16 D1:BB6A - - - - fshcmdVARSfLoop: + 17 D1:BB6A CD 56 B1 D1 call fshvarget + 18 D1:BB6E 7C - - - ld a, h + 19 D1:BB6F CD B8 07 02 call _PutC + 20 D1:BB73 7D - - - ld a, l + 21 D1:BB74 CD B8 07 02 call _PutC + 22 D1:BB78 79 - - - ld a, c + 23 D1:BB79 0C - - - inc c + 24 D1:BB7A FE 07 - - cp 7 + 25 D1:BB7C 20 0E - - jr nz, fshcmdVARSfLoopU + 26 D1:BB7E E5 - - - push hl + 27 D1:BB7F C5 - - - push bc + 28 D1:BB80 D5 - - - push de + 29 D1:BB81 CD F0 07 02 call _NewLine + 30 D1:BB85 D1 - - - pop de + 31 D1:BB86 C1 - - - pop bc + 32 D1:BB87 E1 - - - pop hl + 33 D1:BB88 0E 00 - - ld c, 0 + 34 D1:BB8A 18 06 - - jr fshcmdVARSfLoopEnd + 35 D1:BB8C - - - - fshcmdVARSfLoopU: + 36 D1:BB8C 3E 5F - - ld a, '_' + 37 D1:BB8E CD B8 07 02 call _PutC + 38 D1:BB92 - - - - fshcmdVARSfLoopEnd: + 39 D1:BB92 04 - - - inc b + 40 D1:BB93 13 - - - inc de + 41 D1:BB94 78 - - - ld a, b + 42 D1:BB95 FE 40 - - cp FshVarsSize / 2 + 43 D1:BB97 38 D1 - - jr c, fshcmdVARSfLoop + 44 D1:BB99 C3 DB A8 D1 jp Fin +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\FshCommands\FshCommands.inc" + 8 D1:BB9D - - - - #include "includes/FshCommands/SLEEP.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\FshCommands\SLEEP.asm" + 1 D1:BB9D 53 4C 45 45 + 50 00 - - fshcmdSLEEP: .db "SLEEP", 0 + 2 D1:BBA3 16 - - - fshcmdSLEEPo: .db $16 + 3 D1:BBA4 50 75 74 73 + 20 74 68 65 + 20 63 61 6C + 63 75 6C 61 + 74 6F 72 20 + 69 6E 74 6F + 20 73 6C 65 + 65 70 20 6D + 6F 64 65 20 + 28 41 50 44 + 29 00 - - fshcmdSLEEPm: .db "Puts the calculator into sleep mode (APD)", 0 + 4 D1:BBCE 53 4C 45 45 + 50 00 - - fshcmdSLEEPu: .db "SLEEP", 0 + 5 D1:BBD4 - - - - fshcmdSLEEPf: + 6 D1:BBD4 F3 - - - di + 7 D1:BBD5 CD 38 11 02 call _EnableAPD + 8 D1:BBD9 3E 01 - - ld a,1 + 9 D1:BBDB 21 90 05 D0 ld hl,apdSubTimer + 10 D1:BBDF 77 - - - ld (hl),a + 11 D1:BBE0 23 - - - inc hl + 12 D1:BBE1 77 - - - ld (hl),a + 13 D1:BBE2 FD CB 08 DE set apdRunning,(iy+apdFlags) + 14 D1:BBE6 FB - - - ei + 15 D1:BBE7 C3 DB A8 D1 jp Fin +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\FshCommands\FshCommands.inc" + 9 D1:BBEB - - - - #include "includes/FshCommands/INFO.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\FshCommands\INFO.asm" + 1 D1:BBEB 49 4E 46 4F + 00 - - - fshcmdINFO: .db "INFO", 0 + 2 D1:BBF0 20 - - - fshcmdINFOo: .db $20 + 3 D1:BBF1 44 69 73 70 + 6C 61 79 73 + 20 53 79 65 + 74 65 6D 20 + 49 6E 66 6F + 72 6D 61 74 + 69 6F 6E 20 + 61 6E 64 20 + 53 74 61 74 + 73 00 - - fshcmdINFOm: .db "Displays Syetem Information and Stats", 0 + 4 D1:BC17 49 4E 46 4F + 00 - - - fshcmdINFOu: .db "INFO", 0 + 5 D1:BC1C - - - - fshcmdINFOf: + 6 D1:BC1C 21 CD EA D0 ld hl, FshCmdArgFlags + 7 D1:BC20 CB 46 - - bit 0, (hl) + 8 D1:BC22 28 0C - - jr z, fshcmdINFOfExe + 9 D1:BC24 21 C0 B2 D1 ld hl, ErrUsageo + 10 D1:BC28 CD 2B B2 D1 call ErrSet + 11 D1:BC2C CD DE B1 D1 call ErrCatch + 12 D1:BC30 - - - - fshcmdINFOfExe: + 13 D1:BC30 CD 08 08 02 call _ClrLCDFull + 14 D1:BC34 AF - - - xor a + 15 D1:BC35 32 95 05 D0 ld (CurRow), a + 16 D1:BC39 32 96 05 D0 ld (CurCol), a + 17 D1:BC3D - - - - + 18 D1:BC3D CD 0D B3 D1 call printfshnamelong + 19 D1:BC41 CD F0 07 02 call _NewLine + 20 D1:BC45 - - - - + 21 D1:BC45 21 06 A9 D1 ld hl, FshBy + 22 D1:BC49 CD C0 07 02 call _PutS + 23 D1:BC4D CD F0 07 02 call _NewLine + 24 D1:BC51 - - - - + 25 D1:BC51 21 10 A9 D1 ld hl, FshSite + 26 D1:BC55 CD C0 07 02 call _PutS + 27 D1:BC59 CD F0 07 02 call _NewLine + 28 D1:BC5D - - - - + 29 D1:BC5D CD F0 07 02 call _NewLine + 30 D1:BC61 21 85 BC D1 ld hl, fshcmdINFOfSPS1 + 31 D1:BC65 CD C0 07 02 call _PutS + 32 D1:BC69 3E 27 - - ld a, $27 + 33 D1:BC6B CD B8 07 02 call _PutC + 34 D1:BC6F 21 2B A9 D1 ld hl, PS1 + 35 D1:BC73 CD C0 07 02 call _PutS + 36 D1:BC77 3E 27 - - ld a, $27 + 37 D1:BC79 CD B8 07 02 call _PutC + 38 D1:BC7D CD F0 07 02 call _NewLine + 39 D1:BC81 - - - - + 40 D1:BC81 C3 DB A8 D1 jp Fin + 41 D1:BC85 - - - - + 42 D1:BC85 50 53 31 CE + CE CE 3A 00 fshcmdINFOfSPS1: .db "PS1", $CE, $CE, $CE, ":", 0 +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\FshCommands\FshCommands.inc" + 10 D1:BC8D - - - - #include "includes/FshCommands/HELP.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\FshCommands\HELP.asm" + 1 D1:BC8D 48 45 4C 50 + 00 - - - fshcmdHELP: .db "HELP", 0 + 2 D1:BC92 21 - - - fshcmdHELPo: .db $21 + 3 D1:BC93 44 69 73 70 + 6C 61 79 73 + 20 61 6C 6C + 20 63 6F 6D + 6D 61 6E 64 + 73 00 - - fshcmdHELPm: .db "Displays all commands", 0 + 4 D1:BCA9 48 45 4C 50 + 00 - - - fshcmdHELPu: .db "HELP", 0 + 5 D1:BCAE - - - - fshcmdHELPf: + 6 D1:BCAE 21 CD EA D0 ld hl, FshCmdArgFlags + 7 D1:BCB2 CB 46 - - bit 0, (hl) + 8 D1:BCB4 28 0C - - jr z, fshcmdHELPfExe + 9 D1:BCB6 21 C0 B2 D1 ld hl, ErrUsageo + 10 D1:BCBA CD 2B B2 D1 call ErrSet + 11 D1:BCBE CD DE B1 D1 call ErrCatch + 12 D1:BCC2 - - - - fshcmdHELPfExe: + 13 D1:BCC2 21 88 BD D1 ld hl, fshcmdHELPfLine1 + 14 D1:BCC6 CD C0 07 02 call _PutS + 15 D1:BCCA CD F0 07 02 call _NewLine + 16 D1:BCCE - - - - + 17 D1:BCCE - - - - #macro fshcmdHELPmRow1(cmdXs) + 18 D1:BCCE xor a + 19 D1:BCCE ld (curCol), a + 20 D1:BCCE ld hl, cmdXs + 21 D1:BCCE call _PutS + 22 D1:BCCE call _NewLine + 23 D1:BCCE #endmacro + 24 D1:BCCE - - - - #macro fshcmdHELPmRow2(cmdXs, cmdYs) + 25 D1:BCCE xor a + 26 D1:BCCE ld (curCol), a + 27 D1:BCCE ld hl, cmdXs + 28 D1:BCCE call _PutS + 29 D1:BCCE ld a, 9 + 30 D1:BCCE ld (curcol), a + 31 D1:BCCE ld hl, cmdYs + 32 D1:BCCE call _PutS + 33 D1:BCCE call _NewLine + 34 D1:BCCE #endmacro + 35 D1:BCCE - - - - #macro fshcmdHELPmRow3(cmdXs, cmdYs, cmdZs) + 36 D1:BCCE xor a + 37 D1:BCCE ld (curCol), a + 38 D1:BCCE ld hl, cmdXs + 39 D1:BCCE call _PutS + 40 D1:BCCE ld a, 9 + 41 D1:BCCE ld (curcol), a + 42 D1:BCCE ld hl, cmdYs + 43 D1:BCCE call _PutS + 44 D1:BCCE ld a, 19 + 45 D1:BCCE ld (curcol), a + 46 D1:BCCE ld hl, cmdZs + 47 D1:BCCE call _PutS + 48 D1:BCCE call _NewLine + 49 D1:BCCE #endmacro + 50 D1:BCCE - - - - + 51 D1:BCCE AF 32 96 05 + D0 21 2B B7 + D1 CD C0 07 + 02 3E 09 32 + 96 05 D0 21 + 44 B7 D1 CD + C0 07 02 3E + 13 32 96 05 + D0 21 3B B8 + D1 CD C0 07 + 02 CD F0 07 + 02 - - - fshcmdHELPmRow3(fshcmdEXIT, fshcmdSET, fshcmdCOPY) +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\FshCommands\HELP.asm" + 52 D1:BCFB AF 32 96 05 + D0 21 49 B9 + D1 CD C0 07 + 02 3E 09 32 + 96 05 D0 21 + 5F BA D1 CD + C0 07 02 3E + 13 32 96 05 + D0 21 8B BA + D1 CD C0 07 + 02 CD F0 07 + 02 - - - fshcmdHELPmRow3(fshcmdMOVE, fshcmdCLS, fshcmdVAR) + 53 D1:BD28 AF 32 96 05 + D0 21 2D BB + D1 CD C0 07 + 02 3E 09 32 + 96 05 D0 21 + 9D BB D1 CD + C0 07 02 3E + 13 32 96 05 + D0 21 EB BB + D1 CD C0 07 + 02 CD F0 07 + 02 - - - fshcmdHELPmRow3(fshcmdVARS, fshcmdSLEEP, fshcmdINFO) + 54 D1:BD55 AF 32 96 05 + D0 21 8D BC + D1 CD C0 07 + 02 3E 09 32 + 96 05 D0 21 + C1 BD D1 CD + C0 07 02 CD + F0 07 02 - fshcmdHELPmRow2(fshcmdHELP, fshcmdMAN) + 55 D1:BD74 - - - - ; Extention Point + 56 D1:BD74 - - - - + 57 D1:BD74 CD F0 07 02 call _NewLine + 58 D1:BD78 21 9C BD D1 ld hl, fshcmdHELPfLine2 + 59 D1:BD7C CD C0 07 02 call _PutS + 60 D1:BD80 CD F0 07 02 call _NewLine + 61 D1:BD84 C3 DB A8 D1 jp Fin + 62 D1:BD88 - - - - + 63 D1:BD88 41 76 61 69 + 6C 61 62 6C + 65 20 43 6F + 6D 6D 61 6E + 64 73 3A 00 fshcmdHELPfLine1: .db "Available Commands:", 0 + 64 D1:BD9C 54 79 70 65 + 20 27 4D 41 + 4E 27 20 61 + 6E 64 20 63 + 6F 6D 6D 61 + 6E 64 20 66 + 6F 72 20 6D + 6F 72 65 20 + 69 6E 66 6F + 00 - - - fshcmdHELPfLine2: .db "Type 'MAN' and command for more info", 0 +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\FshCommands\FshCommands.inc" + 11 D1:BDC1 - - - - #include "includes/FshCommands/MAN.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\FshCommands\MAN.asm" + 1 D1:BDC1 4D 41 4E 00 fshcmdMAN: .db "MAN", 0 + 2 D1:BDC5 22 - - - fshcmdMANo: .db $22 + 3 D1:BDC6 44 69 73 70 + 6C 61 79 73 + 20 4D 41 4E + 20 74 65 78 + 74 20 66 6F + 72 20 63 6F + 6D 6D 61 6E + 64 00 - - fshcmdMANm: .db "Displays MAN text for command", 0 + 4 D1:BDE4 4D 41 4E 20 + 3C 63 6F 6D + 6D 61 6E 64 + 3E 00 - - fshcmdMANu: .db "MAN ", 0 + 5 D1:BDF2 - - - - fshcmdMANf: + 6 D1:BDF2 - - - - fshcmdMANfCheckArgs: + 7 D1:BDF2 21 CD EA D0 ld hl, FshCmdArgFlags + 8 D1:BDF6 CB 46 - - bit 0, (hl) + 9 D1:BDF8 28 10 - - jr z, fshcmdMANfArg0Get + 10 D1:BDFA CB 4E - - bit 1, (hl) + 11 D1:BDFC 28 24 - - jr z, fshcmdMANfExe + 12 D1:BDFE 21 C0 B2 D1 ld hl, ErrUsageo + 13 D1:BE02 CD 2B B2 D1 call ErrSet + 14 D1:BE06 CD DE B1 D1 call ErrCatch + 15 D1:BE0A - - - - fshcmdMANfArg0Get: + 16 D1:BE0A 21 9F BE D1 ld hl, fshcmdMANfPrompt + 17 D1:BE0E CD 89 AA D1 call printprompt + 18 D1:BE12 - - - - + 19 D1:BE12 21 A8 EA D0 ld hl, FshCmdArg0 + 20 D1:BE16 11 08 00 00 ld de, FshCmdCmdSize + 21 D1:BE1A CD 77 AC D1 call inputstr + 22 D1:BE1E CD F0 07 02 call _NewLine + 23 D1:BE22 - - - - + 24 D1:BE22 - - - - fshcmdMANfExe: + 25 D1:BE22 21 A8 EA D0 ld hl, FshCmdArg0 + 26 D1:BE26 11 9F EA D0 ld de, FshCmd + 27 D1:BE2A CD 4E AB D1 call strcpy + 28 D1:BE2E - - - - + 29 D1:BE2E 21 8E BE D1 ld hl, fshcmdMANfPrefix + 30 D1:BE32 CD C0 07 02 call _PutS + 31 D1:BE36 - - - - + 32 D1:BE36 21 9F EA D0 ld hl, FshCmd + 33 D1:BE3A CD C0 07 02 call _PutS + 34 D1:BE3E CD F0 07 02 call _NewLine + 35 D1:BE42 CD F0 07 02 call _NewLine + 36 D1:BE46 - - - - + 37 D1:BE46 21 9F EA D0 ld hl, FshCmd + 38 D1:BE4A CD 18 B4 D1 call manroute + 39 D1:BE4E 11 00 00 00 ld de, $00 + 40 D1:BE52 CD 6D A9 D1 call cpHLDE + 41 D1:BE56 CA DF A8 D1 jp z, Err + 42 D1:BE5A - - - - + 43 D1:BE5A CD C0 07 02 call _PutS + 44 D1:BE5E CD F0 07 02 call _NewLine + 45 D1:BE62 CD F0 07 02 call _NewLine + 46 D1:BE66 - - - - + 47 D1:BE66 21 97 BE D1 ld hl, fshcmdMANfUsage + 48 D1:BE6A CD C0 07 02 call _PutS + 49 D1:BE6E - - - - + 50 D1:BE6E 21 9F EA D0 ld hl, FshCmd + 51 D1:BE72 CD 2A B4 D1 call manrouteu + 52 D1:BE76 11 00 00 00 ld de, $00 + 53 D1:BE7A CD 6D A9 D1 call cpHLDE + 54 D1:BE7E CA DF A8 D1 jp z, Err + 55 D1:BE82 CD C0 07 02 call _PutS + 56 D1:BE86 CD F0 07 02 call _NewLine + 57 D1:BE8A - - - - + 58 D1:BE8A C3 DB A8 D1 jp Fin + 59 D1:BE8E - - - - + 60 D1:BE8E 4D 41 4E 2D + 44 42 DF 20 + 00 - - - fshcmdMANfPrefix: .db "MAN-DB", $DF, ' ', 0 + 61 D1:BE97 55 73 61 67 + 65 3A 20 00 fshcmdMANfUsage: .db "Usage: ",0 + 62 D1:BE9F 43 6F 6D 6D + 61 6E 64 3D + 20 00 - - fshcmdMANfPrompt: .db "Command= ", 0 +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\FshCommands\FshCommands.inc" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\FshCommands\FshCommand.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\Command.asm" + 31 D1:BEA9 - - - - #include "includes/CryptoCommands/CryptoCommand.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\CryptoCommands\CryptoCommand.asm" + 1 D1:BEA9 - - - - cryptocmddecode: + 2 D1:BEA9 E5 D5 11 F3 + BE D1 CD 3B + AB D1 21 F7 + BE D1 D1 CC + CB A9 D1 E1 decodecmdopt(cryptocmdROT, cryptocmdROTo) +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\CryptoCommands\CryptoCommand.asm" + 3 D1:BEBD C9 - - - ret + 4 D1:BEBE - - - - + 5 D1:BEBE - - - - cryptocmdroute: + 6 D1:BEBE C1 - - - pop bc + 7 D1:BEBF 11 F7 BE D1 + CD C3 A9 D1 + CA 3B BF D1 routeoptjp(cryptocmdROTo, cryptocmdROTf) + 8 D1:BECB C5 - - - push bc + 9 D1:BECC C9 - - - ret + 10 D1:BECD - - - - + 11 D1:BECD - - - - cryptocmdmanroute: + 12 D1:BECD C1 - - - pop bc + 13 D1:BECE 11 F3 BE D1 + CD 3B AB D1 + 11 F8 BE D1 + CA 27 B4 D1 routestrjp(cryptocmdROT, cryptocmdROTm) + 14 D1:BEDE C5 - - - push bc + 15 D1:BEDF C9 - - - ret + 16 D1:BEE0 - - - - + 17 D1:BEE0 - - - - cryptocmdmanrouteu: + 18 D1:BEE0 C1 - - - pop bc + 19 D1:BEE1 11 F3 BE D1 + CD 3B AB D1 + 11 2E BF D1 + CA 39 B4 D1 routeustrjp(cryptocmdROT, cryptocmdROTu) + 20 D1:BEF1 C5 - - - push bc + 21 D1:BEF2 C9 - - - ret + 22 D1:BEF3 - - - - + 23 D1:BEF3 - - - - #include "includes/CryptoCommands/CryptoCommands.inc" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\CryptoCommands\CryptoCommands.inc" + 1 D1:BEF3 - - - - #include "includes/CryptoCommands/ROT.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\CryptoCommands\ROT.asm" + 1 D1:BEF3 52 4F 54 00 cryptocmdROT: .db "ROT", 0 + 2 D1:BEF7 40 - - - cryptocmdROTo: .db $40 + 3 D1:BEF8 52 4F 54 20 + 43 79 70 68 + 65 72 2C 20 + 72 6F 74 61 + 74 65 73 20 + 74 68 65 20 + 61 6C 70 68 + 61 62 65 74 + 20 61 6E 64 + 20 65 6E 63 + 6F 64 65 73 + 20 61 20 73 + 74 72 69 6E + 67 00 - - cryptocmdROTm: .db "ROT Cypher, rotates the alphabet and encodes a string", 0 + 4 D1:BF2E 52 4F 54 20 + 3C 73 68 69 + 66 74 23 3E + 00 - - - cryptocmdROTu: .db "ROT ", 0 + 5 D1:BF3B - - - - cryptocmdROTf: + 6 D1:BF3B - - - - cryptocmdROTfArg0: + 7 D1:BF3B 21 CD EA D0 ld hl, FshCmdArgFlags + 8 D1:BF3F CB 4E - - bit 1, (hl) + 9 D1:BF41 20 32 - - jr nz, cryptocmdROTfArg1 + 10 D1:BF43 CB 46 - - bit 0, (hl) + 11 D1:BF45 28 0C - - jr z, cryptocmdROTfArg0Get + 12 D1:BF47 21 C0 B2 D1 ld hl, ErrUsageo + 13 D1:BF4B CD 2B B2 D1 call ErrSet + 14 D1:BF4F CD DE B1 D1 call ErrCatch + 15 D1:BF53 - - - - cryptocmdROTfArg0Get: + 16 D1:BF53 21 CC BF D1 ld hl, cryptocmdROTfDShift + 17 D1:BF57 CD 89 AA D1 call printprompt + 18 D1:BF5B 21 A8 EA D0 ld hl, FshCmdArg0 + 19 D1:BF5F 11 03 00 00 ld de, 3 + 20 D1:BF63 CD AF AE D1 call inputnumstr + 21 D1:BF67 CD C5 AB D1 call strtow + 22 D1:BF6B 11 A8 EA D0 ld de, FshCmdArg0 + 23 D1:BF6F EB - - - ex de, hl + 24 D1:BF70 73 - - - ld (hl), e + 25 D1:BF71 CD F0 07 02 call _NewLine + 26 D1:BF75 - - - - cryptocmdROTfArg1: + 27 D1:BF75 18 24 - - jr cryptocmdROTfArg1Get + 28 D1:BF77 21 B1 EA D0 ld hl, FshCmdArg1 + 29 D1:BF7B 11 CF EA D0 ld de, FshScratch + 30 D1:BF7F CD 4E AB D1 call strcpy + 31 D1:BF83 21 CD EA D0 ld hl, FshCmdArgFlags + 32 D1:BF87 CB 5E - - bit 3, (hl) + 33 D1:BF89 28 28 - - jr z, cryptocmdROTfExe + 34 D1:BF8B CB 56 - - bit 2, (hl) + 35 D1:BF8D 28 0C - - jr z, cryptocmdROTfArg1Get + 36 D1:BF8F 21 C0 B2 D1 ld hl, ErrUsageo + 37 D1:BF93 CD 2B B2 D1 call ErrSet + 38 D1:BF97 CD DE B1 D1 call ErrCatch + 39 D1:BF9B - - - - cryptocmdROTfArg1Get: + 40 D1:BF9B 21 D4 BF D1 ld hl, cryptocmdROTfDMessage + 41 D1:BF9F CD 89 AA D1 call printprompt + 42 D1:BFA3 21 CF EA D0 ld hl, FshScratch + 43 D1:BFA7 11 10 00 00 ld de, FshScratchSize - 4 + 44 D1:BFAB CD 77 AC D1 call inputstr + 45 D1:BFAF CD F0 07 02 call _NewLine + 46 D1:BFB3 - - - - cryptocmdROTfExe: + 47 D1:BFB3 21 A8 EA D0 ld hl, FshCmdArg0 + 48 D1:BFB7 7E - - - ld a, (hl) + 49 D1:BFB8 21 CF EA D0 ld hl, FshScratch + 50 D1:BFBC CD F6 B3 D1 call rotasciiencrypt + 51 D1:BFC0 CD C0 07 02 call _PutS + 52 D1:BFC4 CD F0 07 02 call _NewLine + 53 D1:BFC8 C3 DB A8 D1 jp Fin + 54 D1:BFCC - - - - + 55 D1:BFCC 53 68 69 66 + 74 3D 20 00 cryptocmdROTfDShift: .db "Shift= ", 0 + 56 D1:BFD4 4D 65 73 73 + 61 67 65 3D + 20 00 - - cryptocmdROTfDMessage: .db "Message= ", 0 +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\CryptoCommands\CryptoCommands.inc" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\CryptoCommands\CryptoCommand.asm" +Listing for file "C:\Users\iD Student\Desktop\Stephen Toth\fsh-shell\includes\Command.asm" +Listing for file "FSHa.asm" + 77 D1:BFDE - - - - + 78 D1:BFDE - - - - .end diff --git a/build.bat b/build.bat index a2ec234..91e286c 100644 --- a/build.bat +++ b/build.bat @@ -1 +1,2 @@ -SPASM.exe -ETA "FSHa.asm" "bin\FSHa.8xp" \ No newline at end of file +SPASM.exe -E -T "FSHa.asm" "bin\FSHa.8xp" +pause \ No newline at end of file diff --git a/includes/Command.asm b/includes/Command.asm index 025cc86..36f8310 100644 --- a/includes/Command.asm +++ b/includes/Command.asm @@ -7,6 +7,7 @@ ;; Sets (DE) with command op code commanddecode: call fshcmddecode + call cryptocmddecode ;Extention Point ret @@ -17,6 +18,7 @@ commanddecode: ;; HL: Op code mem loc commandroute: call fshcmdroute + call cryptocmdroute ;Extention Point ld hl, ErrCmdNotFoundo @@ -26,3 +28,4 @@ commandroute: jp Err #include "includes/FshCommands/FshCommand.asm" +#include "includes/CryptoCommands/CryptoCommand.asm" diff --git a/includes/CryptoCommands/CryptoCommand.asm b/includes/CryptoCommands/CryptoCommand.asm new file mode 100644 index 0000000..68bbac1 --- /dev/null +++ b/includes/CryptoCommands/CryptoCommand.asm @@ -0,0 +1,23 @@ +cryptocmddecode: + decodecmdopt(cryptocmdROT, cryptocmdROTo) + ret + +cryptocmdroute: + pop bc + routeoptjp(cryptocmdROTo, cryptocmdROTf) + push bc + ret + +cryptocmdmanroute: + pop bc + routestrjp(cryptocmdROT, cryptocmdROTm) + push bc + ret + +cryptocmdmanrouteu: + pop bc + routeustrjp(cryptocmdROT, cryptocmdROTu) + push bc + ret + +#include "includes/CryptoCommands/CryptoCommands.inc" diff --git a/includes/CryptoCommands/CryptoCommands.inc b/includes/CryptoCommands/CryptoCommands.inc new file mode 100644 index 0000000..0464658 --- /dev/null +++ b/includes/CryptoCommands/CryptoCommands.inc @@ -0,0 +1 @@ +#include "includes/CryptoCommands/ROT.asm" \ No newline at end of file diff --git a/includes/CryptoCommands/ROT.asm b/includes/CryptoCommands/ROT.asm new file mode 100644 index 0000000..7ca6c5e --- /dev/null +++ b/includes/CryptoCommands/ROT.asm @@ -0,0 +1,56 @@ +cryptocmdROT: .db "ROT", 0 +cryptocmdROTo: .db $40 +cryptocmdROTm: .db "ROT Cypher, rotates the alphabet and encodes a string", 0 +cryptocmdROTu: .db "ROT ", 0 +cryptocmdROTf: +cryptocmdROTfArg0: + ld hl, FshCmdArgFlags + bit 1, (hl) + jr nz, cryptocmdROTfArg1 + bit 0, (hl) + jr z, cryptocmdROTfArg0Get + ld hl, ErrUsageo + call ErrSet + call ErrCatch +cryptocmdROTfArg0Get: + ld hl, cryptocmdROTfDShift + call printprompt + ld hl, FshCmdArg0 + ld de, 3 + call inputnumstr + call strtow + ld de, FshCmdArg0 + ex de, hl + ld (hl), e + call _NewLine +cryptocmdROTfArg1: + jr cryptocmdROTfArg1Get + ld hl, FshCmdArg1 + ld de, FshScratch + call strcpy + ld hl, FshCmdArgFlags + bit 3, (hl) + jr z, cryptocmdROTfExe + bit 2, (hl) + jr z, cryptocmdROTfArg1Get + ld hl, ErrUsageo + call ErrSet + call ErrCatch +cryptocmdROTfArg1Get: + ld hl, cryptocmdROTfDMessage + call printprompt + ld hl, FshScratch + ld de, FshScratchSize - 4 + call inputstr + call _NewLine +cryptocmdROTfExe: + ld hl, FshCmdArg0 + ld a, (hl) + ld hl, FshScratch + call rotasciiencrypt + call _PutS + call _NewLine + jp Fin + +cryptocmdROTfDShift: .db "Shift= ", 0 +cryptocmdROTfDMessage: .db "Message= ", 0 diff --git a/includes/lib/crypto/crypto.inc b/includes/lib/crypto/crypto.inc new file mode 100644 index 0000000..bec136a --- /dev/null +++ b/includes/lib/crypto/crypto.inc @@ -0,0 +1 @@ +#include "includes/lib/crypto/rot.asm" \ No newline at end of file diff --git a/includes/lib/crypto/rot.asm b/includes/lib/crypto/rot.asm new file mode 100644 index 0000000..5abc0ed --- /dev/null +++ b/includes/lib/crypto/rot.asm @@ -0,0 +1,36 @@ +;;rotasciiencrypt +;;Encrypts a string in rot-x (uses $00 to $EF) +;;Inputs: +;; HL: string pointer +;; A: x +;;Notes: +;; Changes string in place. +rotasciiencrypt: + push hl + push bc + ld c, 0 + ld c, a +rotasciiencryptLoop: + ld a, (hl) + cp 0 + jr z, rotasciiencryptEnd + add a, c + cp 0 + jr nz, rotasciiencryptLd + inc a +rotasciiencryptLd: + ld (hl), a + inc hl + cp a, $EF + jr c, rotasciiencryptLoop + dec hl + sub a, $0F + ld (hl), a + inc hl + jr rotasciiencryptLoop +rotasciiencryptEnd: + ld (hl), $00 + pop bc + pop hl + ret + \ No newline at end of file diff --git a/includes/static/define.inc b/includes/static/define.inc index 021531b..a286c4b 100644 --- a/includes/static/define.inc +++ b/includes/static/define.inc @@ -1,5 +1,3 @@ -.nolist - ; Included for Assembler Compatibility ;------------------------------------ #define equ .equ @@ -11,6 +9,7 @@ #define FshCmdSize 64 ;64 bytes | 44 chars , 5 qwords (CMD + args) , + 4 0's| 1 byte null | 2 byte optcode | 1 byte arg flags |1 byte (err code) | 6 unused #define FshCmdInptSize 44 #define FshCmdCmdSize 8 +#define FshScratchSize FshCmdSize - FshCmdInptSize #define FshPrgmSize 1024 RamVars equ 0D0EA1Fh ;saveSScreen | 21945 bytes @@ -26,3 +25,5 @@ FshCmdArg2 equ FshCmdArg1 + 9 FshCmdArg3 equ FshCmdArg2 + 9 FshCmdArgFlags equ FshCmdArg3 + 10 FshCmdErrCode equ FshCmdArgFlags + 1 + +FshScratch equ FshCmdErrCode + 1