Skip to content

Commit

Permalink
New release R2.8.2: fixed a bug caused by changes introduces with pre…
Browse files Browse the repository at this point in the history
…vious R2.8.1 that lead to wrong functioning of several BASIC statements (LOCATE, VOLUME, etc..), keyboard input, system tick counter, and other.
  • Loading branch information
leomil72 committed Dec 15, 2019
1 parent d4e5d4e commit c29c691
Show file tree
Hide file tree
Showing 11 changed files with 6,955 additions and 14 deletions.
94 changes: 94 additions & 0 deletions 12-Home computer/LM80C-firmware-r282.asm
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
; ------------------------------------------------------------------------------
; LM80C - FIRMWARE - R2.8.2
; ------------------------------------------------------------------------------
; The following code is intended to be used with LM80C Z80-based computer
; designed by Leonardo Miliani. More info at
; www DOT leonardomiliani DOT com
; ------------------------------------------------------------------------------
; Coding/Editing/Compiling:
; Original init code for MC68B05 by Grant Searle
; Original SIO/CTC/PIO init code by Mario Blunk
; NASCOM BASIC originally modified by Gran Searle
; Code modified and adapted for LM80C by Leonardo Miliani
;
; Edited with Atom Editor
;
; Compiled with ZASM assembler 4.2.4
; https://k1.spdns.de/Develop/Projects/zasm-4.0/Distributions/
; ------------------------------------------------------------------------------
; Copyright notes:
; Parts of the code (c) Grant Searle - free for non commercial use
; Please include this advice and the note to the attribution of the original
; version to Grant Searle if you intend to redistribuite it
; http://searle.hostei.com/grant/index.html
; eMail: home.micros01@btinternet.com
;
; Parts of the code (c) Mario Blunk
; http://www.train­z.de
;
; NASCOM ROM BASIC Ver 4.7, (C) 1978 Microsoft
; Scanned from source published in 80-BUS NEWS from Vol 2, Issue 3
; (May-June 1983) to Vol 3, Issue 3 (May-June 1984)
; Adapted for the freeware Zilog Macro Assembler 2.10 to produce
; the original ROM code (checksum A934H). PA
;
; Parts of the code by Leonardo Miliani
; www DOT leonardomiliani DOT com
; ------------------------------------------------------------------------------
; Code Revision:
; R1.3 - 20190521 - Added preliminary support for video cursor management
; R1.4 - 20190524 - Added scrolling capabilities
; R1.5 - 20190525 - Added backspace functionality
; R1.6 - 20190601 - Fixed scrolling bugs
; R1.7 - 20190606 - Added "screen" command; code revision
; R1.8 - 20190615 - Better cursor integration; added VPOKE & VPEEK statements; 6x8 & 8x8 fonts
; R1.9 - 20190620 - New VREG, VSTAT, & LOCATE statement; 8x8 pixels font completed
; R2.0 - 20190714 - Added SREG & SSTAT to write to/read from PSG
; R2.1 - 20190818 - Added SOUND command to play simple tones and VOLUME command
; R2.1a - 20190908 - Cursor management improvements
; R2.2 - 20190920 - Fixed cursor bug within SCREEN statement; new command PAUSE
; R2.3 - 20190930 - Fixed bugs in SOUND command
; R2.4 - 20191013 - Added new graphic chars and reorganized previous ones
; R2.4a - 20191015 - More graphic chars
; R2.5 - 20191026 - Revision of init PSG code; revision of serial buffer exp. code;
; fixed a bug into the video buffer manager
; R2.6 - 20191102 - New function INKEY to read a key without a prompt;
; source code cleaning
; R2.7 - 20191116 - Fixed a bug into the INKEY code
; R2.8 - 20191207 - Minor bug fixes; added support for built-in keyboard;
; revision of some char codes;
; R2.8.1 - 20191208 - Introduced support for SHIFT key for uppercase letters & alternate chars
; R2.8.2 - 20xxxxxx - Fixed a bug into the system tick counter code;
;
; -----------------------------------------------------------------------------

; this line instructs the assembler to prepare a file for a ROM target
; meaning that blank cells will be filled up with 0xff
#target rom

; this line instructs the assembler to compile taking account that code
; starts at $0000 (the address reached by Z80 upon reset)
#code BOOT, 0000h

; ------------------------------------------------------------------------------
; include the latest version of the bootloader: this sets up the address aliases
; configure the hardware, checks if warm or cold startup and loads the BASIC interpreter
#include "../include/bootloader/bootloader-r282.asm"

; incude the latest version of the VDP module
#include "../include/vdp/vdp-r282.asm"

; incude the latest version of the PSG module
#include "../include/psg/psg-r282.asm"

; include the latest version of the NASCOM BASIC interpreter
#include "../include/basic/basic32k-r282.asm"

; include the latest version of the font sets
#include "../include/vdp/6x8fonts.asm"
#include "../include/vdp/8x8fonts-r15.asm"

; END OF ASSEMBLY SOURCE
#end

;-------------------------------------------------------------------------------
Binary file added Rom/LM80C-firmware-r282.rom
Binary file not shown.
Loading

0 comments on commit c29c691

Please sign in to comment.