Commit graph

344 commits

Author SHA1 Message Date
Vincent Barrilliot 462b05d634 Adapt for A2560U, includes modification of logging so to be able to log to the COM1. 2022-06-11 22:20:44 +02:00
Vincent Barrilliot 9549b9f1b8 Fail fsys_load if filesystem error 2022-06-06 20:55:00 +02:00
Vincent Barrilliot 81bf51f78d Make A2560U's 16750 UART work 2022-06-06 20:51:40 +02:00
Vincent Barrilliot f0f9a4b62e Line up with 68040 startup 2022-06-04 13:34:48 +02:00
Vincent Barrilliot 1131efcfb8 Copy/pasted dispatched from the 68040 one 2022-06-04 13:34:26 +02:00
Vincent Barrilliot 74d1768c7c Correct typo 2022-06-04 13:33:48 +02:00
Vincent Barrilliot 72b5cd289a Make screen work 2022-06-01 20:10:45 +02:00
Vincent Barrilliot 0cb525da3b Try make FoenixMCP work again on the A2560U. Add the support for FPGA date (was missing in the K), create A2560U text driver based on the existing A2560K_a, conditionnally build stuff. 2022-05-30 23:39:53 +02:00
Vincent Barrilliot adc37b784e Merge remote-tracking branch 'original/main' into merge-220530 2022-05-30 21:14:34 +02:00
Peter Weingartner e158da0578 Bump version number 2022-05-28 18:27:27 -04:00
Peter Weingartner 2a9685dd32 Merge branch 'main' into a2560k 2022-05-28 18:21:07 -04:00
Peter Weingartner 7771a668b9 SET/GET System Variables
SET and GET commands can now work with system variables.
2022-05-27 19:50:23 -04:00
Peter Weingartner d64583a0e4 Added: System Variables 2022-05-25 17:41:05 -04:00
Peter Weingartner 79f5bd9e66 Added TXT Border calls to syscalls
Forgot to provide system call stubs...
2022-05-22 21:54:20 -04:00
Peter Weingartner d01d8cf298 SHELL setting
Added a SHELL setting to allow for replacement of the CLI.
2022-05-22 21:31:45 -04:00
Peter Weingartner 541451fbf9 Printer Fix
Made small change to LPT driver code to make sure the first line is printed correctly.
2022-05-20 13:30:44 -04:00
Peter Weingartner dff1567153 Issue #38
Fixed a bug that was preventing commands brought back from history from being editable.
2022-05-19 21:19:07 -04:00
Peter Weingartner 5210dbaab4 Issue #37
Updated CLI so that it sets the console settings to its liking on getting control, but turns echo back on the console before giving control to a program. Also cleaned up how the COMMAND setting is handled so it should work when a program quits as well.
2022-05-19 20:47:35 -04:00
Peter Weingartner 60ba071966 COPY Mark II
Re-wrote the COPY command to work better with directories and different drives.
2022-05-19 17:41:10 -04:00
Peter Weingartner e0f79f3e6c Support for booting from floppy
MKBOOT and boot chain now support booting from the floppy drive's volume boot record.
2022-05-16 16:07:31 -04:00
Peter Weingartner 30e728be14 FDC Updated to recognize disk changes
Major FSYS syscalls (e.g. open, delete, opendir, etc.) updated to query the FDC (if it is the target drive) to update its status register and detect if the disk has changed (which can only be done with the motor spinning). MCP should now handle disk changes appropriately.
2022-05-13 19:29:05 -04:00
Peter Weingartner 3e7f1e9f7f FDC READ and WRITE
Basic read and write functionality. Status codes still not correct, no media change or write protect detection yet.
2022-05-12 18:58:48 -04:00
Peter Weingartner fcd89cc069 FDC Experimental Code 2022-05-05 13:40:24 -04:00
Peter Weingartner ce1f4b3219 Corrected Channel A to use its own DIP switch for resolution setting. 2022-05-03 13:41:36 -04:00
Peter Weingartner 82f6864c8d Enabled high res DIP switch
Kernel now sets display resolution based on the DIP switches.
2022-05-02 22:23:37 -04:00
Peter Weingartner 9a6af9bbe7 Added sys_txt_get_sizes
Added sys_txt_get_sizes to return the size of a screen in characters and pixels.
2022-05-02 19:27:39 -04:00
Peter Weingartner 7185377535 CTRL-C Support
Updated the console's IOCTRL routines to support returning a CTRL-C as a break.
2022-05-01 17:37:01 -04:00
pweingar e132ac5aa5
Merge pull request #36 from daschewie/AutoBinaryExtention
Automatic Binary Extension lookup for A2560K
2022-05-01 13:49:32 -04:00
Peter Weingartner a2f0255f07 Tinkering with FDC
Trying to get the FDC to read. Added hand-assembly to do FDC commands.
2022-05-01 13:47:55 -04:00
Jesus Garcia 0bb11988ce Automatic Binary Extension lookup 2022-04-30 16:18:31 -04:00
Peter Weingartner 3dbf802505 MIDI Channel Drivers
Channel driver added for the MIDI ports. Very simple... just polled I/O, but it's something.
2022-04-28 14:27:16 -04:00
Peter Weingartner 86e475e0de UART Channels
UART driver added for channels.
2022-04-27 16:21:06 -04:00
Peter Weingartner b53a2d92d4 SuperIO Test Tweaks
Changes to UART, MIDI, and FDC code and tests to match a possible fix to the FPGA.
2022-04-26 16:06:12 -04:00
Peter Weingartner 2581b754d6 DIR with wildcards
DIR updated to support wildcards. Directory system calls fixed.
2022-04-24 15:37:56 -04:00
Peter Weingartner 03de9599a9 Improved DIR formatting 2022-04-24 13:48:51 -04:00
Peter Weingartner 7c2573e9d6 Fixed memory test 2022-04-24 12:58:54 -04:00
Peter Weingartner 4e52ccebd1 Added CALL command for the U 2022-04-21 20:10:28 -04:00
Peter Weingartner 932a2addc2 Updates to UART test 2022-04-20 21:50:51 -04:00
Peter Weingartner f8d62a2f66 CDEV_LPT Working (for Epson)
Channels based on CDEV_LPT now working for my Epson printer.
2022-04-19 16:55:05 -04:00
Peter Weingartner 6bd9908531 Code Cleanup: Warnings
Cleaned up code to remove compiler warnings.
2022-04-18 21:42:23 -04:00
Peter Weingartner 730bb6b209 Adjusted logging to low-level txt device 2022-04-17 20:32:08 -04:00
Peter Weingartner 0faa96167c sys_proc_elevate
Added sys_proc_elevate to allow for a user mode program to go to supervisor mode.
2022-04-17 14:50:02 -04:00
Peter Weingartner 31258d63d3 Fixed file execution from flash
The kernel was unable to start a user mode program when the kernel was in flash. I have changed how the call_user assembly code starts the user mode program to fix this.
2022-04-17 14:29:12 -04:00
Peter Weingartner b315be98b7 Channel Redirection
Added basic support for redirecting channel IDs to other channels (sys_chan_swap and sys_chan_dev).

Current flash version is not quite working... panics on running an external file.
2022-04-16 21:32:07 -04:00
Peter Weingartner 660d8c5b3f Fix: TEST BITMAP
Fixed the TEST BITMAP command to work correctly on the A2560K.
2022-04-15 13:08:18 -04:00
Peter Weingartner 4210e3d716 Rearrangement of LPT code 2022-04-15 12:59:01 -04:00
Peter Weingartner 51b65de7bd LPT Channel Support
A rough LPT driver is now working with channels. Only seems to work on an Epson printer, and that somewhat inconsistently. Needs to be more robust and to respond to error conditions from the printer.
2022-04-13 22:17:32 -04:00
Peter Weingartner 2ebd57fad4 Fixed LPT low level code
Printing is now possible!
2022-04-13 20:04:01 -04:00
Peter Weingartner c9c5bb9314 Made flashable
Updates to get a version of the kernel that can be stored in flash. The data segment is in the first 64KB and may need to be moved. Also, there is some glitching with the line editing routines.
2022-04-13 15:05:01 -04:00
Peter Weingartner 22ead3534a Banner Update
Updated the banner printed in the credits and modified the CLI to print the banner only on initial startup.
2022-04-11 16:37:42 -04:00
Peter Weingartner 7256df53c9 New FONT settings
Changed FONT setting to support multiple screens, to adapt to the hardware, and to support both 8x8 and 8x16 fonts.
2022-04-10 19:53:31 -04:00
Peter Weingartner 5da0ebc7a7 SYSINFO Changes
Changes to the system information record to better match the FPGA's registers and to more dynamically determine machine ID, CPU, clock speed, etc. Added clock speed to the record, and removed some fields that may not be useful.
2022-04-09 20:00:37 -04:00
Peter Weingartner 5e34182a85 Text LUT: Red
Changed the color values for bright red.
2022-04-09 18:52:59 -04:00
Peter Weingartner 73003b0ab4 Channel B LUT Fix
Fixed the color look up table register definitions for Channel B
2022-04-09 18:46:43 -04:00
Peter Weingartner d9737a836f sys_txt_set_cursor_vis
Added a system call (and the underlying framework in the text drivers) to show or hide the text cursor independently of the flash rate and character.
2022-04-09 16:49:08 -04:00
Peter Weingartner c671b017e4 CREDITS
Added a CREDITS command and key (F-HELP).
2022-04-09 16:10:59 -04:00
Peter Weingartner 17b4d77c2d CLI Multi-screen Code
Added code to support switching between text screens and new layout of CLI screen.
2022-04-08 20:07:59 -04:00
Peter Weingartner 50797494e6 SET SCREEN
Added a SCREEN setting to set the interaction screen for Foenix machines with more than one text screen.
2022-04-04 20:23:23 -04:00
Peter Weingartner fd6cdee557 CLI: CTRL-LEFT and CTRL-RIGHT
Added CTRL-LEFT to go to beginning of line, CTRL-RIGHT to go to end of line.
2022-04-04 20:01:09 -04:00
Peter Weingartner 82c603cd64 CLI: Command History
UP and DOWN arrow to walk through previous commands.
2022-04-04 19:48:15 -04:00
Peter Weingartner f8c0363376 CLI QoL Improvements Phase I
Starting to make some changes to the CLI to allow for line editing, command history, and a different look and feel.
2022-04-03 22:49:54 -04:00
Peter Weingartner 50c871600d Further tinkering with LPT 2022-04-01 20:03:30 -04:00
Peter Weingartner 94097ace40 Boot DIP Switches
Fixed GABE register definitions. Rearranged sys_info routine. Boot code now recognizes DIP switch settings for boot source.
2022-03-31 15:09:30 -04:00
Peter Weingartner 1ac6e233b3 Documentation update and SID tweaks
Update to documentation and experimental tweaks investigating an issue with external SID.
2022-03-29 20:55:04 -04:00
Peter Weingartner e0ecfb6976 A2560K Keyboard LED Matrix
Added minor support for the LED matrix. Boot sequence animation and a KEYCOLOR setting in the CLI.
2022-03-28 20:25:44 -04:00
Peter Weingartner e7d96cbf1b Boot sectors!
MBR now booting successfully!
2022-03-25 16:08:00 -04:00
Vincent Barrilliot d4ccc4a301 Merge remote-tracking branch 'original/main' into merge-220325 2022-03-25 17:56:02 +01:00
Peter Weingartner e8fe454513 MKBOOT command
Added a MKBOOT command. It's able to zero out an MBR and write a boot sector that should load a file, but the system is not booting from it yet.
2022-03-24 21:05:27 -04:00
Peter Weingartner 9e8560f82c Update to UART divisors for A2560U 2022-03-22 20:44:14 -04:00
Peter Weingartner a9fa53550d Ongoing changes to the boot and splash screen code 2022-03-22 20:37:21 -04:00
Peter Weingartner 4821a4317d Added configuration on boot
Added code to allow a configuration script in System/mcp.init on the boot disk (with fall-back to the hard drive).
2022-03-18 19:51:22 -04:00
Peter Weingartner 9efb286ca4 Build Process: Copy Setup
Starting conversion of kernel memory layout and link scripts.
2022-03-15 20:15:22 -04:00
Peter Weingartner 8841764f66 TXT system calls
Added the system calls for most of the text routines, and added them to the documentation.
2022-03-12 22:08:54 -05:00
Peter Weingartner d8bf48e4d3 FIX: Layout issue with panic screen 2022-03-11 16:01:38 -05:00
Peter Weingartner eae92ba7da Text Fix: insert and delete characters
Fixed issues with insert and delete of characters.
2022-03-11 15:46:41 -05:00
Peter Weingartner fa7a8a5a44 Text Fix: Erase in Display
Fixed erase in display code to work properly erasing the top half and bottom half of the screen or region.
2022-03-11 15:42:27 -05:00
Peter Weingartner a0c758590e Added RAMTOP
Added very basic memory management: sys_mem_reserve, and sys_mem_get_ramtop
2022-03-11 15:40:49 -05:00
Peter Weingartner 7a20477e24 TEST ANSI
Added a TEST ANSI command
2022-03-09 20:21:36 -05:00
Peter Weingartner 57a97aee2b Integrated new text code into kernel
Switched the console device to use the new text routine.
2022-03-09 16:56:53 -05:00
Peter Weingartner 855676864a TXT Update: 1024x768
Fixed mode bit for channel A 1024x768
2022-03-06 19:22:22 -05:00
Peter Weingartner 3a9f847add Jiffy Timer Using GABE
Removed dependency on SOF interrupt for jiffy timer, and switched it to GABE timer 3, which is based on the SOF frequency.
2022-03-06 19:02:28 -05:00
Peter Weingartner 6edf66120c Channel A refactor, Channel B partial working
Channel A code has been refactored to move macros and register definitions out to include space. Channel B is partially implemented, but an FPGA issue is blocking further work on scrolling.
2022-03-06 14:31:51 -05:00
Peter Weingartner b21fdc6d5c A2560K Channel A: General Scrolling
txt_scroll for Channel A should now support arbitrary vertical and horizontal scrolling in one call.
2022-03-05 19:18:50 -05:00
Peter Weingartner 4b4fd879df Channel A printing and simple scrolling
Text printing and simple scrolling of regions now working. Scrolling only works to scroll a region up by one line.
2022-03-04 19:20:50 -05:00
Peter Weingartner 5cf2c1fcab TRAP fix, start of new text driver
Fixed erroneous code on 68040 trying to set TRAP #15 handler, getting new text driver layer working on A2560K channel A.
2022-03-04 15:53:20 -05:00
Jesus Garcia 59f4434b75 Linux A2560K Build 2022-02-20 15:35:09 -05:00
Peter Weingartner 96116e850a PSG silence, fsys_stat
Added a fsys_stat call. Minor change to silence the PSG noise channel on boot.
2022-02-14 15:35:42 -05:00
Peter Weingartner cb3de4d942 Corrected TEST MEM command 2022-02-08 19:16:07 -05:00
Peter Weingartner a1fd81148f 68040 Exception Stack Frames
Corrected bus (access) and address exception handling for the '040 to properly read the stack frames.
2022-02-07 20:24:21 -05:00
Peter Weingartner 1b325e95a7 Various Fixes for A2560K Rev B
SDC write protect check, IDE delay loops, memory test limits, startup screen LUT organization, and channel A font size (for testing).
2022-02-07 12:58:15 -05:00
Peter Weingartner 397e216ee5 CALL command
Added a CALL command to execute code at an arbitrary address.
2022-01-10 12:58:56 -05:00
Peter Weingartner 26d96acac6 Added BREAK and ECHO commands for CONSOLE
Added IOCTRL commands for the console driver for testing for a BREAK key press and for turning on and off the key echo function for sys_chan_read_b.
2022-01-02 22:16:07 -05:00
Peter Weingartner ba08f317de Minor changes and Sound Test Work 2022-01-02 18:21:13 -05:00
Peter Weingartner 3df0ceb725 Bumped build number 2021-12-18 19:28:58 -05:00
Peter Weingartner c50e9cda19 TESTS: PSG, OPN, OPM changes
Added support for testing internal and external PSG implementations. Switch OPN and OPM tests to Stefany's code.
2021-12-18 19:27:57 -05:00
Peter Weingartner 4bfc65d631 TEST MEM MERA
Added a test for the high "MERA" memory of the A2560K
2021-12-18 16:37:04 -05:00
Peter Weingartner 410bc2c037 All interrupts handled m68000
Added interrupt handlers for the user vectors to the M68000 assembly code.
2021-12-18 16:05:48 -05:00
Peter Weingartner 4c056593eb Handlers for all interrupts
Added handler stubs for all user interrupt vectors. All interrupts should be accessible through the system calls now.
2021-12-18 16:03:51 -05:00
Peter Weingartner 0ab19057c7 PS2 Keyboard Test
Added PS2 keyboard test, fixed some definitions, and tweaked splash screen to work on the K
2021-12-17 19:46:10 -05:00
Vincent Barrilliot 2e950103a7 Merge remote-tracking branch 'original/main' 2021-12-11 10:52:02 +01:00
Peter Weingartner e0f8d03baa Merge branch 'main' into a2560k 2021-12-10 20:32:37 -05:00
Vincent Barrilliot 19d08e7e1f Remove useless cast to (void*) in fsys.c 2021-12-09 23:09:08 +01:00
Vincent Barrilliot f95099cf41 Remove warnings, fix bug in fsys_findnext 2021-12-09 20:44:54 +01:00
Vincent Barrilliot e1c2148c43 Address warnings in ps2.c 2021-12-09 19:32:13 +01:00
Vincent Barrilliot 266222f1f2 Address warnings in rtc.c 2021-12-09 19:31:58 +01:00
Vincent Barrilliot 0310872d2d Merge remote-tracking branch 'original/main' 2021-12-09 19:24:28 +01:00
Vincent Barrilliot 7d45f3c455 Remove duplicate 0x 2021-12-09 18:17:21 +01:00
Vincent Barrilliot 7023af787b Add comment 2021-12-09 18:16:51 +01:00
Vincent Barrilliot df8eb21041 Don't display error when mkdir actually succeeds 2021-12-09 17:55:30 +01:00
Peter Weingartner ffb9ff3314 SID Test
Added SID tests. Not working at the moment on my K, although they should, since they just use the startup chord.
2021-12-08 19:17:03 -05:00
Peter Weingartner 773579d865 OPN Test
Added OPN test... not working on the A2560K
2021-12-08 18:54:44 -05:00
Vincent Barrilliot f6808e2939 Address warnings from text_screen_iii.c 2021-12-08 23:28:37 +01:00
Vincent Barrilliot cd86bbc009 Address warning in codec.c : made volume unsigned char (type "byte" was undefined and defaulting to int) so it becomes unnecessary to AND it with 0xff. 2021-12-08 23:15:26 +01:00
Vincent Barrilliot 4508526f77 Address warning messages in cli.c and dependencies. Made internal handlers's argv const as it' safe to do for internal purposes and helps the compiler's optimizations. 2021-12-08 23:09:44 +01:00
Vincent Barrilliot 4b46f4e7d8 Address warnings in dis68k.c 2021-12-08 22:19:55 +01:00
Vincent Barrilliot 0d2984fecc Address warnings in dos_cmds.c 2021-12-08 21:57:18 +01:00
Vincent Barrilliot 75670275e5 Fix warnings in mem_cmds 2021-12-08 21:51:10 +01:00
Vincent Barrilliot 00ba42664e Remove warning in sound_cmds.c 2021-12-08 21:45:20 +01:00
Vincent Barrilliot 54fd4fa440 Address warnings in settings.c. Made sys_chan_write buffer "const". 2021-12-08 21:35:20 +01:00
Peter Weingartner 3ebf94e25b Added GAMEPAD test 2021-12-08 15:13:31 -05:00
Vincent Barrilliot 709c6fba8e Remove warnings from test_cmd2.h. In the process, improve simpleio's print so it doesn't have to compute the string length. 2021-12-08 20:41:40 +01:00
Vincent Barrilliot ec4eafff31 Merge remote-tracking branch 'original/main' 2021-12-08 11:45:35 +00:00
Peter Weingartner a487d0bf4c Added test for A2560K joystick 2021-12-07 21:32:28 -05:00
Peter Weingartner 1d7e4a1a44 SDC Present and WP Switches
Added support for the SDC write protect and present switches.
2021-12-07 21:12:57 -05:00
Peter Weingartner cab984136d Fixed issue with changing SD cards
Fixed issue with FatFS "holding onto" the previous SD card when changing cards.
2021-12-07 16:13:24 -05:00
Peter Weingartner 4c2082d643 Current Working Directory Fix
Changed how current working directory is tracked, to fix an issue with the command line when no SD card is present.
2021-12-06 20:58:05 -05:00
Peter Weingartner 98b1a37f09 Fix for Current Directory Issue
Fix for issue around the current path printing when no SD card is in the machine.
2021-12-06 20:43:17 -05:00
Peter Weingartner 3afee6d912 Update test help printing and BUILD
Added a work around for the TEST help printing code.  Added a script to auto-generate a build number.
2021-12-06 20:25:59 -05:00
Peter Weingartner d6fcfcaed6 TEST HELP fix, BUILD auto-number
Added a work-around for the TEST help printing error, and added a script to generate new build numbers.
2021-12-06 19:51:16 -05:00
Vincent Barrilliot 723240a95e Use a MOVE rather than CLR because CLR is a read-modify-write operation that is not yet supported by the bus/memory logic yet. 2021-12-07 00:47:22 +01:00
Vincent Barrilliot 21f28424eb Restore the BSS clearing code as it was. It was perfectly fine, no need to change it. 2021-12-07 00:33:01 +01:00
Vincent Barrilliot a2db36913f Declare CLI command handler as returning short rather than int, since it's what they actually do. (fixes warnings). 2021-12-07 00:24:55 +01:00
Vincent Barrilliot 79b377a91a Make cli_test_features const as it's immutable, and fix initialization of last item of the array so it has the correct number of elements. 2021-12-07 00:21:59 +01:00
Vincent Barrilliot 3d75f60b8f Re-enable and sightly speed up the clearing of the BSS segment upon boot. 2021-12-07 00:19:41 +01:00
Peter Weingartner 7a6f5d27d9 Fixed scrolling issue on A2560K Channel A 2021-11-30 14:31:28 -05:00
Peter Weingartner debc6ae590 Foenix/MCP Booting on A2560K '040 2021-11-30 13:52:29 -05:00
Jesus Garcia 06b816c5f0 Added Support for running executables without providing an extension 2021-11-28 10:32:20 -05:00
Peter Weingartner 7ac621fa2a Makefile Rework
Changing build process to more easily support different models and memory targets.
2021-11-27 20:03:00 -05:00
Peter Weingartner 60c40b750f Initial port to 68040 (WIP)
Not fully working, but it's starting to boot. Interrupts and the Mo keyboard seem not to be working yet.
2021-11-27 18:49:47 -05:00
Vincent Barrilliot 4883084e0b Merge remote-tracking branch 'original/main' into main 2021-11-24 20:48:23 +01:00
Peter Weingartner 6b8e2204f6 Merge branch 'main' into a2560k 2021-11-22 21:00:47 -05:00
pweingar f15fa02d71
Merge pull request #18 from daschewie/CopyCommand
Added Copy Command and bug fix
2021-11-22 18:22:06 -05:00
Vincent Barrilliot 7d1d11dff2 Add missing codec wait 2021-11-22 23:42:06 +01:00
Jesus Garcia 2fefa213c4 Added Copy Command 2021-11-22 11:12:27 -05:00
Peter Weingartner e4f9a9ffbd FDC Tweeks
Changes to try to get fdc_read working.
2021-11-21 18:30:41 -05:00
Jesus Garcia a82fb736e2 Added CWD tp Prompt 2021-11-21 12:36:00 -05:00
Vincent Barrilliot 11ea848821 Merge remote-tracking branch 'original/main' into main 2021-11-21 17:51:09 +01:00
pweingar 92d3a71aad
Merge pull request #10 from pweingar/issue_8
Issue #8
2021-11-18 12:19:10 -05:00
pweingar cac86bf352
Merge pull request #7 from daschewie/DASM
Added DASM command to disassemble memory
2021-11-18 12:17:42 -05:00
Peter Weingartner f33e0640b3 Issue #8
Possible change for Issue #8
2021-11-17 21:27:57 -05:00