haker
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

haker game

Backlog

Feel free to comment and suggest new features.

v1

Theme for this epic is to come up with version that is good enough to be released to start building the community. Features should be actively pushed to v2 unless they have important value to initial release.

  • community
    • create few introductory posts
    • create some kind of release
    • create OSX and Windows releases
    • automate builds
  • cpu
    • decide on stack vs register based architecture
    • eval stack and tests
    • nop, push and pop
    • add, sub, div and other arithmetic
    • signed arithmetic
    • jmp, je, jz and similar
    • call and ret
    • interrupts and iret
    • means for talking to hardware (out)
    • sleep mode while waiting for interrupts
    • stack frames and local storage
    • PC and RS relative addressing
  • assembler
    • support res, resb
    • allow dw to reference labels
    • equ
    • %define
    • symbol expressions
    • %import
    • macros
    • nested labels (.here) which are visible only within ‘scope’ of full label
    • sort sections and report if too big or overlapping
    • consider merging adjacent data statements
    • improved syntax allowing inline parameters
    • imports using relative file names
    • generate line numbers
    • generate symbol table
    • show filename in message output
    • show location of undefined references in error messages
  • debugger
    • widen disassembly by 1 char for loadb
    • better disassembly scrolling
    • switchable windows
    • breakpoints
    • scrollable disassembly
    • scrollable es, ds
    • figure out curses window to avoid overflow
    • proper serial implementation in the debugger (mux keyboard with debugger and output to screen)
    • ability to choose serial or screen+keyboard as screen device
    • ability to reset debugger and rerun the program
    • display assembly source rather then disassembly
    • watches
  • devices
    • cpu info virtual device
    • serial port
    • modem
    • mono screen device
    • color screen device
    • keyboard device
    • disk
    • clock
    • interrupt when device is connected or disconnected
  • OS - System 42
    • booting from disk and boot sector
    • OS services as interrupts/syscall
    • memory manager
    • execute program
    • exit program
  • OS - console
    • specification
    • init
    • clear
    • putch
    • print
    • printf
    • getch
    • setpos
    • readline
  • OS - disk
    • specification
    • get disk count; multiple disks should be multiple devices
    • get sector count/size
    • read disk sector
    • write disk sector
  • OS - file system
    • specification
    • list directory
    • open file
    • close file
    • read file
    • write file
  • OS - string functions
    • specification
    • strcpy
    • strcmp
    • strlen
    • sprintf

v2

  • more complete OS
  • C compiler
    • #include
    • #define
    • #ifdef, #ifndef, #endif
    • simple syntax without structs, typedefs, pointers
    • struct
    • typedef
    • pointers
    • decide how to deal with non word arithmetic