/* Imported from Wayback Machine Original URL : https://retrobrewcomputers.org/doku.php?id=builderpages:plasmo:tinyz280:final_step Snapshot date: 2025-02-14 Generator : wayback-archiver */ ==== Table of Contents ==== [[#final_step_putting_it_all_together|Final Step, Putting it all together]] [[#features|Features]] [[#modes_of_operation|Modes of Operation]] [[#uart_bootstrap|UART Bootstrap]] [[#cf_bootstrap|CF Bootstrap]] [[#initialize_a_new_cf_disk|Initialize a New CF disk]] [[#design_files|Design Files]] ====== Final Step, Putting it all together ====== The [[builderpages:plasmo:tinyz280|previous steps of TinyZ280 development]] are historical document leading to the final implementation of TinyZ280. This document the finished implementation for the TinyZ280. [[https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=94e000&media=https://www.retrobrewcomputers.org/lib/plugins/ckgedit/fckeditor/userfiles/image/builderpages/plasmo/tinyz280/tinyz280_top.jpg|{{https://retrobrewcomputers.org/lib/exe/fetch.php?w=600&h=410&tok=70b64b&media=https%3A%2F%2Fwww.retrobrewcomputers.org%2Flib%2Fplugins%2Fckgedit%2Ffckeditor%2Fuserfiles%2Fimage%2Fbuilderpages%2Fplasmo%2Ftinyz280%2Ftinyz280_top.jpg?600x410|www.retrobrewcomputers.org_lib_plugins_ckgedit_fckeditor_userfiles_image_builderpages_plasmo_tinyz280_tinyz280_top.jpg}}]] TinyZ280 component side [[https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=35a7c7&media=https://www.retrobrewcomputers.org/lib/plugins/ckgedit/fckeditor/userfiles/image/builderpages/plasmo/tinyz280/tinyz280_back.jpg|{{https://retrobrewcomputers.org/lib/exe/fetch.php?w=600&h=406&tok=160903&media=https%3A%2F%2Fwww.retrobrewcomputers.org%2Flib%2Fplugins%2Fckgedit%2Ffckeditor%2Fuserfiles%2Fimage%2Fbuilderpages%2Fplasmo%2Ftinyz280%2Ftinyz280_back.jpg?600x406|www.retrobrewcomputers.org_lib_plugins_ckgedit_fckeditor_userfiles_image_builderpages_plasmo_tinyz280_tinyz280_back.jpg}}]] TinyZ280 solder side ===== Features ===== Z280 at full bus speed of 12MHz 4 megbyte of DRAM, can be upgraded to 16 megabyte RTC based on Dallas DS12887 Bus connected CF interface Four 8-meg CF drives (A: to D:) 3.5-meg RAM drive (E:) One internal UART at 57600 baud, odd parity, no handshake bootstrap from CF disk to ZZMon, a simple monitor CP/M 2.2 CP/M 3 non-banked ===== Modes of Operation ===== TinyZ280 has two modes of operation as determined by the mode jumper at power up (see picture below for location of mode jumper). Jumper removed set the UART bootstrap mode; jumper inserted set the CF bootstrap mode. ==== UART Bootstrap ==== At power up the Z280 CPU is held in idle state until 256 bytes of instruction is uploaded to UART (57600 baud, odd parity, and no handshake) which is then copied to memory starting from location 0x0. Afterward the CPU starts execution from 0x0. In UART bootstrap mode, the program “LoadnGo.run” is send to the UART. LoadnGo contains a 256 bytes binary file that loads the following ZZMon in Intel Hex format and then jump to the starting address of ZZMon. This is the mode to initialize a new CF disk. The cold bootstrap code is written to boot sector and ZZMon itself is written to track 0 of CF in this mode. All the functions of ZZMon is accessible in UART bootstrap mode. In fact the TinyZ280 hardware has all the functionalities except it needs to be booted up serially at power up and every reset. ==== CF Bootstrap ==== This is normal mode of operation. At powerup, the state machine in CPLD initializes the CF to access cold bootstrap code stored in the boot sector and map the memory from 0x0-0x1FF to the data register of CF. Once the boot sector data is loaded into the 512-byte FIFO of CF data register, the state machine releases the reset of Z280 which then executes a two-stage bootstrapping operations: 1. Z280 executes the cold bootstrap code which copies a small 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 jump to ZZMon. ZZMon will display a sign-on message and wait for user inputs. Refer to [[builderpages:plasmo:tinyz280:zzmon_manual|ZZMon manual]] for details. Here is a more detailed description of the [[builderpages:plasmo:tinyz280:cfboot_operation|CF bootstrap operation]]. [[https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=02da43&media=https://www.retrobrewcomputers.org/lib/plugins/ckgedit/fckeditor/userfiles/image/builderpages/plasmo/tinyz280/tinyz280_annotated_copy.jpg|{{https://retrobrewcomputers.org/lib/exe/fetch.php?w=600&h=442&tok=2e6813&media=https%3A%2F%2Fwww.retrobrewcomputers.org%2Flib%2Fplugins%2Fckgedit%2Ffckeditor%2Fuserfiles%2Fimage%2Fbuilderpages%2Fplasmo%2Ftinyz280%2Ftinyz280_annotated_copy.jpg?600x442|www.retrobrewcomputers.org_lib_plugins_ckgedit_fckeditor_userfiles_image_builderpages_plasmo_tinyz280_tinyz280_annotated_copy.jpg}}]] ===== Initialize a New CF disk ===== The CF disk shipped with the board already has all the necessary software loaded. When a new CF disk is used for the 1st time, the following steps are required: Insert the new CF disk, remove the mode jumper and power up the board up in UART bootstrap mode. There will be no sign-on message displayed on the console because TinyZ280 is waiting for file upload via the serial port (57600 baud, odd parity, 8 data bits, 1 stop, no handshake). send the program 'LoadnGo.run', you should see a series of dots each denoting a successful load of a Intel Hex record and finished with the sign-on message: //TinyZZ Monitor v0.8 3/25/18//\\ //>// ZZMon is running at this point. Issue the commands: **c0 (press enter to execute)** to copy the cold bootstrap code to CF's boot sector, **c1 (press enter to execute)** to copy the ZZMon to CF's LBA sectors 0xF8-0xFF Power down TinyZ280 and insert the mode jumper and re-apply the power. The ZZMon should sign on with the message: //TinyZZ Monitor v0.8 3/25/18//\\ //>// upload the Intel Hex file cpm22all.hex (the program can be found in the Software section below). Issue the command: **c2 (press enter to execute)** to copy cpm22 CCP/BDOS/BIOS into LBA sector 0x80-0x92 Upload the Intel Hex file cpmldr.hex (the program can be found in the Software section below). Issue the command: **c3 (press enter to execute)** to copy CPM3 loader into LBA sector 0x1-0xF Issue the commands: **xA (press enter to execute)** to erase drive A directory **xB (press enter to execute)** to erase drive B directory **xC (press enter to execute)** to erase drive C directory **xD (press enter to execute)** to erase drive D directory upload cpm22dri.hex (the program can be found in the Software section below). This is cpm22 distribution files image that'll be loaded into RAM drive (drive E:). When the upload is completed, issue the command: **b2 (press enter to execute)** to boot CP/M 2.2. At the CP/M prompt type: **e:pip b:=e:*.*[v]** to copy cpm22 distribution files from the RAM disk to drive B. Press the reset button to exit CP/M 2.2 to ZZMon and upload cpm3dstr.hex (this program can be found int the Software section below). This is the CPM3 distribution files image that'll be loaded into RAM drive (drive E:). The upload will take about 5 minutes. When the upload is completed, issue the command: **b2 (press enter to execute)** to boot CP/M 2.2. At the CP/M prompt type: **b:pip a:=e:*.*[v]** to copy CPM3 distribution files from the RAM disk to drive A. Press the reset button to exit CP/M 2.2 to ZZMon and type **b3 (press enter to execute)** to boot CP/M 3. At the CP/M prompt type: **pip c:=a:*.*[v]** to make a copy fo CP/M 3 distro to drive C: This completes the initialization of a new CF disk. ===== Design Files ===== [[https://retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:tinyz280:tinyz280_scm.pdf|TinyZ280 schematic]] with annotation of engineering changes [[https://retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:tinyz280:tinyz280_r0.zip|Gerber]] photoplots. The boards were manufactured by Seeed Studio [[builderpages:plasmo:tinyz280:tinyz280_ec|Engineering Changes]] CPLD design file. CPLD design file for [[https://retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:tinyz280:released_16meg_rtc.zip|16 megabyte DRAM]]. Programming file for [[https://retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:tinyz280:tinyz280_16meg_rtc_pof.zip|16 meg DRAM]] CPLD design file for [[https://retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:tinyz280:tinyz280_4meg_rtc.zip|4 megabyte DRAM]]. Programming file for [[https://retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:tinyz280:tinyz280_4meg_rtc_pof.zip|4 meg DRAM]] [[software:start|Software]] ZZMon – [[https://retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:tinyz280:zzmon.zip|monitor]] for TinyZ280. Assembled with Zilog ZDS v3.68 LoadnGo – [[https://retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:tinyz280:loadngo_run.zip|load file]] to start up ZZMon in UART bootstrap mode CP/M2.2, [[https://retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:tinyz280:cpm22all_asm.zip|CPM22ALL]] to be assembled with Zilog ZDS v3.68. This is the entire CP/M2.2 including BDOS, CCP, and BIOS CP/M2.2 [[https://retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:tinyz280:cpm22all_hex_loadfile.zip|Intel Hex load file]] to be loaded by ZZMon at location 0xDC00-0xFFFF and then copy to CF track 0 using the 'C2' command CP/M3 [[https://retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:tinyz280:ldrbios.zip|LDRBIOS]] to be assembled with ZMAC into LDRBIOS.REL and then linked in CP/M as follow: LINK CPMLDR[L100]=CPMLDR, LDRBIOS CP/M3 [[https://retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:tinyz280:cbios3.zip|CBIOS3]] (non-banked) to be assembled with ZMAC into CBIOS3.REL and then linked in CP/M as follow: LINK BIOS3[OS]=CBIOS3,SCB CP/M3 CPMLDR.COM linked to 0x1100. This is an [[https://retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:tinyz280:cpmldr_hex.zip|Intel Hex]] file to be loaded by ZZMon at location 0x1100 and copy to CF track 0 using the 'C3' command [[https://retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:tinyz280:cpm22dri.zip|CP/M2.2 DRI distribution]] image [[https://retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:plasmo:tinyz280:cpm3dstr.zip|CP/M3 distribution]] image Manual [[builderpages:plasmo:tinyz280:getting_started|Getting Started]] Guide ZZMon [[builderpages:plasmo:tinyz280:zzmon_manual|operating manual]] TinyZ280 [[builderpages:plasmo:tinyz280:software_build|software build procedures]] Creating a [[builderpages:plasmo:tinyz280:final_step:newcfdisk|new CF disk]] for TinyZ280