Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
builderpages:plasmo:tinyz280 [2018/02/06 08:21]
plasmo
builderpages:plasmo:tinyz280 [2018/03/23 22:45]
plasmo
Line 37: Line 37:
 [[https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=b12016&media=https://www.retrobrewcomputers.org/lib/plugins/ckgedit/fckeditor/userfiles/image/builderpages/plasmo/tinyz280/dsc_33230125_f.jpg|{{https://www.retrobrewcomputers.org/lib/plugins/ckgedit/fckeditor/userfiles/image/builderpages/plasmo/tinyz280/dsc_33230125_f.jpg?direct&600x611|www.retrobrewcomputers.org_lib_plugins_ckgedit_fckeditor_userfiles_image_builderpages_plasmo_tinyz280_dsc_33230125_f.jpg}}]] [[https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=b12016&media=https://www.retrobrewcomputers.org/lib/plugins/ckgedit/fckeditor/userfiles/image/builderpages/plasmo/tinyz280/dsc_33230125_f.jpg|{{https://www.retrobrewcomputers.org/lib/plugins/ckgedit/fckeditor/userfiles/image/builderpages/plasmo/tinyz280/dsc_33230125_f.jpg?direct&600x611|www.retrobrewcomputers.org_lib_plugins_ckgedit_fckeditor_userfiles_image_builderpages_plasmo_tinyz280_dsc_33230125_f.jpg}}]]
  
-The picture above shows what need to be populated to support the UART bootstrap configuration. The serial port is set to 57600 baud, odd parity, 8 data bit, 1 stop.+The picture above shows what need to be populated to support the UART bootstrap configuration. The serial port is set to 57600 baud, odd parity, 8 data bit, 1 stop. The operating guide for UART Bootstrap configuration is [[:builderpages:plasmo:tinyz280:uart_bootstrap_operation|here]].
  
-The Altera EPM7128 design for UART bootstrap is here. This is the programming file.+The Altera EPM7128 design for UART bootstrap is {{:builderpages:plasmo:tinyz280:tinyzram.pdf|here}}. This is the {{:builderpages:plasmo:tinyz280:tinyzram_program_file.zip|programming file}}.
  
-When reset button is pressed or when initially powered up, the board expects a 256-byte serial binary data stream. After 256 bytes of data is received, Z280 will start program execution at location 0. TinyLoad is the 256-byte boot program; it has two functions:+When reset button is pressed or when initially powered up, the board expects a 256-byte serial binary data stream. After 256 bytes of data is received, Z280 will start program execution at location 0. TinyLoad is the 256-byte boot program; it has three functions:
  
 +  - It clears memory from 0x100 to 0xFFFF to zero.
   - It expects Intel hex file and save it to memory specified by the load address. It will check every record and print a period (.) if the checksum matches or question mark (?) if the checksum does not match. It will output 'U' for unrecognized record format and 'X' for end of record.   - It expects Intel hex file and save it to memory specified by the load address. It will check every record and print a period (.) if the checksum matches or question mark (?) if the checksum does not match. It will output 'U' for unrecognized record format and 'X' for end of record.
   - It recognizes the 'G' command and transfers the control to the 4-byte address follow the 'G' command. Please note: the 4-byte address is not echo back on the terminal, only the 'G' followed by a blank is displayed.   - It recognizes the 'G' command and transfers the control to the 4-byte address follow the 'G' command. Please note: the 4-byte address is not echo back on the terminal, only the 'G' followed by a blank is displayed.
Line 49: Line 50:
  
 <code> <code>
-TinyLoad +TinyLoad 1 
-When done type G xxxx+G xxxx when done
 </code> </code>
  
Line 59: Line 60:
 Glitchmon hex load file is {{:builderpages:plasmo:tinyz280:glitchmon_hex_loadfile.zip|here}}. Glitchmon source is {{:builderpages:plasmo:tinyz280:glitchmonhcs_asm.zip|here}}. Glitchmon hex load file is {{:builderpages:plasmo:tinyz280:glitchmon_hex_loadfile.zip|here}}. Glitchmon source is {{:builderpages:plasmo:tinyz280:glitchmonhcs_asm.zip|here}}.
  
-cpm22all is CP/M ver 2.2 source in Z80 mnemonics. The CCP and BDOS are downloaded from cpm.z80.de: http://cpm.z80.de/download/cpm2-asm.zip+cpm22all is CP/M ver 2.2 source in Z80 mnemonics. The CCP and BDOS are downloaded from cpm.z80.de: [[http://cpm.z80.de/download/cpm2-asm.zip|http://cpm.z80.de/download/cpm2-asm.zip]]
  
 cpm22all hex load file is {{:builderpages:plasmo:tinyz280:cpm22all_hex_loadfile.zip|here}}. cpm22all source is {{:builderpages:plasmo:tinyz280:cpm22all_asm.zip|here}}. cpm22all hex load file is {{:builderpages:plasmo:tinyz280:cpm22all_hex_loadfile.zip|here}}. cpm22all source is {{:builderpages:plasmo:tinyz280:cpm22all_asm.zip|here}}.
Line 65: Line 66:
 ==== Step 2, CF Bootstrap ==== ==== Step 2, CF Bootstrap ====
  
-Blahblahblah+(2/11/18) CF Bootstrap is working. The pc board is modified to add a jumper that switch between UART bootstrap and CF bootstrap. The reset connection (T14 & T15) is cut and a new output signal from CPLD is now control the reset of the Z280. This is all the physical modifications required. There are significant more firmware and software changes: 
 + 
 +New CPLD with CF bootstrap state machine (CFinit) and modified memory map. Here is the{{:builderpages:plasmo:tinyz280:tinyzramcf.pdf|schematic}}  and the {{:builderpages:plasmo:tinyz280:tinyzramcf_program_file.zip|programming file}}. The state machine design is rather convoluted. Here is the [[:builderpages:plasmo:tinyz280:cfboot_operation|theory of operation]]. 
 + 
 +CF Bootstrap software is evolving. The current approach is a small (~128 byte) cold bootstrap code located in boot sector of a CF. Before Z280 reset is releasedthe CFinit state machine configured the CF to stream cold bootstrap code out to CF's 16-bit data port. After reset Z280 will execute the code stream which copy a small boot loader into 0x1000 and jump to it whichin turn, load data from sector 2 and 3 and execute. Here is the{{:builderpages:plasmo:tinyz280:cfmonldr.zip|cold}}  {{:builderpages:plasmo:tinyz280:cfmonldr.zip| bootstrap code}}. Here is the utility program to copy cold bootstrap into boot sector. Another utility program to copy software into sector 2 & 3 of CF. The two utility programs will be combined later.
  
 ==== Step 3, CF Bootstrap with DRAM ==== ==== Step 3, CF Bootstrap with DRAM ====
  
-more blah, blah+Blah, blah, blah 
 + 
 +==== Final Step, Putting it all together ==== 
 + 
 +After the various steps of incremental development, this is the [[:builderpages:plasmo:tinyz280:final_step|end product]]. 
 + 
 +This is TinyZ280 at the end of the product development. 
 + 
 +<<< photo of the board with annotation for mode jumper, reset button >>> 
 + 
 +Features: 
 + 
 +Z280 at full bus speed of 12MHz 
 + 
 +4 megbyte of DRAM 
 + 
 +Bus connected CF interface 
 + 
 +One internal UART at 57600 baud, odd parity, no handshake 
 + 
 +bootstrap from CF disk to a simple monitor 
 + 
 +CP/M 2.2 
 + 
 +CP/M 3 non-banked 
 + 
 +It has two modes of operations: 
 + 
 +UART Bootstrap. This is the mode to program a new CF disk. list of software needed, terminal software setting, instruction on how to write boot sector and ZZMon 
 + 
 +CF Bootstrap. This is normal mode of operation. At powerup, the state machine in CPLD initializes the CF to provide cold bootstrap code from the boot sector and map the memory from 0x0-0x200 to the data register of CF. Once data is ready the state machine releases the reset of Z280 which then executes a three-stage bootstrapping operations: 
 + 
 +1. Z280 executes the cold bootstrap code resides in the boot sector which is mapped to memory location 0x0-0x200. The cold bootstrap copy a simple CF loading program into memory and then jump into the CF loading program. 
 + 
 +2. The CF loading program loads the monitor, ZZMon, from CF disk into memory and execute.
  
  
builderpages/plasmo/tinyz280.txt · Last modified: 2018/03/23 22:50 by plasmo
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0