All public logs

From WSdev Wiki
Jump to navigationJump to search

Combined display of all available logs of WSdev Wiki. You can narrow down the view by selecting a log type, the username (case-sensitive), or the affected page (also case-sensitive).

Logs
(newest | oldest) View (newer 50 | ) (20 | 50 | 100 | 250 | 500)
  • 11:11, 23 February 2025 Asie talk contribs created page Boot ROM (Created page with "The WonderSwan boot ROM is where the console begins execution on power on. * On the "mono" model, it occupies an area from <tt>$FF000</tt> to <tt>$FFFFF</tt>, for a total of 4 KiB. * On the Color model, it occupies an area from <tt>$FE000</tt> to <tt>$FFFFF</tt>, for a total of 8 KiB. It performs the following activities: * checks if the cartridge self-test passed; * checks if the cartridge footer is valid; * if START is held when the console is turned on, enters the...")
  • 11:06, 23 February 2025 Asie talk contribs created page Display/Windows (Created page with "The Screen 2 and Sprite layers can optionally have their drawing restricted within or without specific rectangular windows. In the case of Screen 2, one can use the Display Control port to configure if the window should render only the tiles inside of it. Alternatively, once can configure the window to only render tiles outside of it, in which case the window rectangle acts as a cut-out. {| class="wikitable" ! ! Window inside ! Window outside |- ! Pixel inside | align=...")
  • 09:54, 23 February 2025 Asie talk contribs created page Display/Sprites (Created page with " The display system can show up to 128 sprites at once. Sprites are always drawn in front of Screen 1, but they can be drawn in front of or behind Screen 2. Sprites are stored in a sprite table in the console's internal RAM. It consists of up to 128 four-byte entries, of which any sequential slice can be displayed: <pre> (Byte 1) (Byte 0) 15 bit 8 7 bit 0 ---- ---- ---- ---- vhPi pppt tttt tttt |||| |||| |||| |||| |||| |||+--++++-++++- Tile index (0-511...")
  • 09:54, 23 February 2025 Asie talk contribs created page Display/Screens (Created page with " A screen is a layout of tiles. Each cell in a screen controls one 8x8 tile. The display system can show two distinct screens simultaneously. It also supports hardware flipping of tiles, both horizontally and vertically. The size of each screen is fixed at 32x32 cells or 256x256 pixels, while each cell is stored as a two-byte word: <pre> Address 15 bit 8 7 bit 0 ---- ---- ---- ---- 0bbb byyy yyxx xxx. ||| |||| |||| ||| ||| |||| ||++-+++-- X coord...")
  • 09:51, 23 February 2025 Asie talk contribs created page Display/Palette (Created page with "The display system provides sixteen different palettes that can be used to color or shade tiles. * Palettes 0-7 can be used for the two screens only; * Palettes 8-15 can be used for both screens and sprites. == Palette format == === Mono === In ''mono'' modes, palettes are stored in I/O ports 0x20 through 0x3F. Each palette contains four three-bit entries, which are pointers into a global, four-bit shade lookup table: <pre> Palette Global shade LUT...")
  • 09:40, 23 February 2025 Asie talk contribs created page Display/Tile Data (Created page with "== Tile data == The tile data is stored at a fixed memory location: * <tt>$2000</tt> - <tt>$3FFF</tt> for 2 bit per pixel tiles in "mono" mode, for a total of 512 tiles. * <tt>$2000</tt> - <tt>$5FFF</tt> for 2 bit per pixel tiles in "color" mode, for a total of 1024 tiles. * <tt>$4000</tt> - <tt>$BFFF</tt> for 4 bit per pixel tiles in "color" mode, for a total of 1024 tiles. == Tile data formats == === 2 bits per pixel, planar === The tiles are stored in an interlea...")
  • 09:38, 23 February 2025 Asie talk contribs created page Display/LCD Icons (Created page with "The WonderSwan features thirteen fixed LCD segments which are displayed to the right<sup>(color)</sup> or below<sup>(mono)</sup> the main display. These are: * Six under control of software ** Large circle ** Medium circle ** Small circle ** Horizontal orientation ** Vertical orientation ** (Shooting) Star (Sleep) * Four software can query ** Speaker ** Volume A (small wave<sup>(mono)</sup>, center wave<sup>(color)</sup...")
  • 15:21, 22 February 2025 Asie talk contribs created page Display/IO Ports (Created page with "== Graphics I/O ports == {{Anchor|Display Control}} === Display Control ($00) === <pre> 7 bit 0 ---- ---- ..wo Ws21 || |||| || |||+- Enable Screen 1 layer || ||+-- Enable Screen 2 layer || |+--- Enable Sprite layer || +---- Enable Sprite window |+------ Screen 2 tiles are drawn (if window enabled): | 0 = inside window, | 1 = outside window. +------- Enable Screen 2 window </pre> {{Anchor|Display Background}} === Display Background Co...")
  • 15:58, 5 February 2025 Asie talk contribs created page Template:Cc0-1.0 (Created page with "{{PAGENAME}} [https://creativecommons.org/publicdomain/zero/1.0/ cc0-1.0 license text]")
  • 15:57, 5 February 2025 Asie talk contribs uploaded File:MobileWonderGate PCB bottom.jpg (Bottom of the MobileWonderGate peripheral's PCB.)
  • 15:57, 5 February 2025 Asie talk contribs created page File:MobileWonderGate PCB bottom.jpg (Bottom of the MobileWonderGate peripheral's PCB.)
  • 15:57, 5 February 2025 Asie talk contribs uploaded File:MobileWonderGate PCB top.jpg (Top of the MobileWonderGate peripheral's PCB.)
  • 15:57, 5 February 2025 Asie talk contribs created page File:MobileWonderGate PCB top.jpg (Top of the MobileWonderGate peripheral's PCB.)
  • 15:57, 5 February 2025 Asie talk contribs created page MediaWiki:Licenses (Created page with "* Unknown license|I don't know * cc-by-4.0|Creative Commons Attribution 4.0 * cc0-1.0|CC0 1.0")
  • 18:42, 26 December 2024 Asie talk contribs created page NEC V30MZ undocumented instructions (Created page with "TODO. For now, see https://github.com/FluBBaOfWard/WSCpuTest/blob/main/README.md")
  • 14:32, 26 December 2024 Asie talk contribs created page NEC V30MZ instruction set (auto-generated initial template)
  • 17:46, 24 November 2024 Asie talk contribs created page WonderWitch/Flash (Created page with "The WonderWitch cartridge features a 512KiB flash chip - the MBM29DL400TC. While the WonderSwan SoC pervents writes to the ROM area, it can be written to via the SRAM area using port $CE on the Bandai 2003 mapper. TODO: Document commands. == Links == * [https://github.com/up-n-atom/WonderWitch/blob/main/Datasheets/MBM29DL400BC-12PFTN_to_MBM29DL400TC-90PFTN.pdf Datasheet]")
  • 16:39, 20 October 2024 Asie talk contribs created page WonderWitch/FreyaBIOS/System (Created page with "The System interrupt provides assorted system-related functionality. == Types == === Suspend/resume structure === This structure is stored in SRAM block 3, offset <code>$7E00</code> (core 1) and <code>$BF00</code> (core 0). {| class="wikitable" |- ! Offset !! Size !! Contents |- | $0000 || 16384 || Copy of RAM area <code>$0000</code> - <code>$3FFF</code> |- | $4000 || 2 || Stack segment? |- | $4002 || 2 || Data segment? |- | $4004 || 224 || Copy of IO ports <code>$00...")
  • 19:13, 19 October 2024 Asie talk contribs created page WonderWitch/Memory map (Created page with "== Memory map == {| class="wikitable" |+ WonderWitch memory map ! Address ! ASCII, 1 screen ! ASCII, 2 screens ! Shift-JIS, 1 screen ! Shift-JIS, 2 screens |- | style="text-align: center;" | 0x0000 | colspan="4" style="text-align: center;" | Interrupt vectors |- | style="text-align: center;" | 0x0100 | colspan="4" style="text-align: center;" | ? |- | style="text-align: center;" | 0x0E00 | rowspan="7" style="text-align: center;" | | rowspan="5" style="text-align: center;...")
  • 12:51, 19 October 2024 Asie talk contribs created page WonderWitch/IL/IlibIL (Created page with "IlibIL is a library used to load other indirect libraries present on the system. == Functions == === open === <code>int open(const char far *name, IL far *buffer);</code> Load the specified IL <code>name</code> from <code>/rom0</code> or <code>/kern</code>. The IL header is copied to the provided <code>buffer</code> with addresses appropriately relocated to match the IL's location in ROM. === open_system === <code>int open_system(const char far *name, IL far *buffe...")
  • 12:01, 19 October 2024 Asie talk contribs created page WonderWitch/IL/ResumeIL (Created page with "== ResumeIL == ResumeIL is a library which augments the process suspend/resume functionality of the built-in ProcIL library to also archive the memory areas <code>0x4000 - 0xBFFF</code> (WSC expanded/4bpp tile memory) and <code>0xFE00 - 0xFFFF</code> (WSC palette memory). This is done by copying this memory to <code>/ram0/resume.dat</code>. === Limitations === - This approach only allows suspending and resuming one process.")
  • 11:19, 19 October 2024 Asie talk contribs created page WonderWitch/FreyaBIOS/Timer (Created page with "The Timer interrupt provides an abstraction layer for the WonderSwan's timers, as well as the on-cartridge RTC. == Types == === RTC fields === The RTC field indexes match the order of fields returned by the RTC chip. Note that FreyaBIOS transparently converts the values to and from BCD. {| class="wikitable" |- ! Index !! Data !! Format |- | 0 || Year || 0 - 99; 0 is assumed to be the year 2000. |- | 1 || Month || 1 - 12 |- | 2 || Date...")
  • 18:02, 18 October 2024 Asie talk contribs created page WonderWitch/Process (Created page with "== Memory layout == Process memory is stored in SRAM banks 3 (process 0 - typically used by FreyaOS), 2 (process 1) and 1 (process 2). The entire bank is available to the process. === Process control block === The process control block contains information about the running process. It is stored in the first 96 bytes of data. {| class="wikitable" |+ Process control block structure |- ! Offset !! Length !! Contents |- | 0 || 4 || Compiler ID, zero-terminated string; s...")
  • 15:53, 18 October 2024 Asie talk contribs created page WonderWitch/IL (Created page with "Indirect libraries (IL) are a FreyaOS feature designed to work around the 64KB segment limit of applications by offloading helper functionality to separate library binaries. == Calling convention == All functions exposed by an IL use the standard 8086 C calling convention - cdecl. * The stack is allocated and cleaned by the caller. * <code>AX</code>, <code>BX</code>, <code>CX</code>, <code>DX</code> can be modified freely by the callee. All other registers must be res...")
  • 14:21, 17 October 2024 Asie talk contribs created page WonderWitch/Filesystem (Created page with "== Mount points == {| class="wikitable" |+ FreyaOS mount points |- ! Path !! File data location !! File table location !! File table size (entries) !! Description |- | <code>/rom0</code> || ROM (384 KB) || SRAM bank 3, $16F2 || 128 || |- | <code>/ram0</code> || SRAM bank 0 (64 KB) || SRAM bank 3, $06F2 || 64 || |- | <code>/</code> || || SRAM bank 3, $02F2 || 16 || |} == File table entry format == {| class="wikitable" |+ Header contents |- ! Offset !! Length !! Conten...")
  • 07:57, 15 August 2024 Asie talk contribs created page NEC V30MZ interrupts (Created page with "The NEC V30MZ provides six of the eight interrupts provided by the 80186. == Interrupts == === INT 0 - Divide Error === This interrupt is emitted as the result of a DIV<sup>IDIV</sup> or DIVU<sup>DIV</sup> instruction. === INT 1 - Single Step/Break === This interrupt is emitted if the single step flag is set after executing an instruction. (The instruction which changed the single step flag is ignored.) The single step flag is cleared for the duration of the interru...")
  • 09:36, 5 August 2024 Asie talk contribs created page NEC V30MZ registers (Created page with "= NEC V30MZ registers = * Four 16-bit general-purpose registers, with their (low, high) components accessible as individual 8-bit sub-registers: ** '''AX'''<sup>AW</sup> ('''AL''', '''AH''') - the ''accumulator'' register, ** '''BX'''<sup>BW</sup> ('''BL''', '''BH''') - the ''base'' register, ** '''CX'''<sup>CW</sup> ('''CL''', '''CH''') - the ''count'' register, ** '''DX'''<sup>DW</sup> ('''DL''', '''DH''') - the ''data'' register, * Four additional 16-bit registers: *...")
  • 09:36, 5 August 2024 Asie talk contribs created page NEC V30MZ flags (Created page with " = NEC V30MZ flags = == Layout == The V30MZ processor features a 16-bit flag register: 15 bit 8 7 bit 0 ---- ---- ---- ---- m111 odit sz0a 0p1c | |||| || | | | | |||| || | | +- Carry (CF<sup>CY</sup>) | |||| || | +--- Parity (PF<sup>P</sup>) | |||| || +------ Auxillary Carry (AF<sup>AC</sup>) | |||| |+-------- Zero (Z) | |||| +--------- Sign (S) | |||+------------ Single Step<sup>Break</sup> (TF<sup>BRK</sup>)...")
  • 20:37, 30 July 2024 Asie talk contribs created page WonderWitch/FreyaBIOS/Bank (Created page with "The Bank interrupt provides an abstraction layer for accessing the WonderWitch cartridge's flash and RAM. == Interrupts == === INT $18/AH=$00 - bank_set_map === * AH = $00 * BX = Bank region * CX = Number of bank to map to region Bank regions: * 0 = SRAM (1000:xxxx) * 1 = ROM0 (2000:xxxx) * 2 = ROM1 (3000:xxxx) === INT $18/AH=$01 - bank_get_map === * AH = $01 * BX = Bank region Return: * AX = Number of bank mapped to region === INT $18/AH=$02 - bank_read_byte =...")
  • 13:42, 27 July 2024 Asie talk contribs created page WonderWitch/FreyaBIOS/Communication (Created page with "The Communication (comm) interrupt provides an abstraction layer and helpers for the WonderSwan's serial port. == Interrupts == === INT $14/AH=$00 - comm_open === * AH = $00 Opens the serial port. Note that the baud rate must be set before calling <code>comm_open</code>. === INT $14/AH=$01 - comm_close === * AH = $01 Closes the serial port. === INT $14/AH=$02 - comm_send_char === * AH = $02 * BL = Character (byte) to send. Return: * AX = Return code....")
  • 08:34, 27 July 2024 Asie talk contribs created page WonderWitch/FreyaBIOS/Text (Created page with "The Text interrupt provides a text output display using one of the WonderSwan's screens. == Interrupts == === INT $13/AH=$00 - text_screen_init === * AH = $00 Initializes a text window (see INT $13/AH=$01) with the following default settings: * X, Y = 0, 0 * width, height = 28, 18 * starting tile = 512 - font tile count (in ASCII mode) * starting tile = 512 - (width x height) (in Shift-JIS and mixed modes) === INT $13/AH=$01 - text_window_init === * AH = $01 * BL...")
  • 16:08, 24 July 2024 Asie talk contribs created page WonderWitch/FreyaBIOS/Key (Created page with "The Display interrupt provides helper functions for accessing the WonderSwan's keypad. == Interrupts == === INT $11/AH=$00 - key_press_check === * AH = $00 Return: * AX = A bitmask containing the currently held keys. <pre> 15 bit 8 7 bit 0 ---- ---- ---- ---- .... 4321 4321 bas. |||| |||| ||| |||| |||| ||+- Start |||| |||| |+-- A |||| |||| +--- B |||| ++++----- X1/X2/X3/X4 ++++----------- Y1/Y2/Y3/Y4 </pr...")
  • 20:27, 23 July 2024 Asie talk contribs created page WonderWitch/FreyaBIOS/Display (Created page with "The Display interrupt provides an abstraction layer and helpers for the WonderSwan's display hardware. Note that features specific to the WonderSwan Color are implemented using libwwc, which is linked statically with the user program and thus not part of the BIOS call surface. == Interrupts == === INT $12/AH=$00 - display_control === * AH = $00 * BX = Display Control value === INT $12/AH=$01 - display_st...")
  • 08:18, 20 July 2024 Asie talk contribs created page WonderWitch/FreyaBIOS/Sound (Created page with "The Sound interrupt provides an abstraction layer for the WonderSwan's sound hardware. == Interrupts == === INT 15/AH=00h - sound_init === * AH = 00h === INT 15/AH=01h - sound_set_channel === * AH = 01h * BL = Channel Control value === INT 15/AH=02h - sound_get_channel === * AH = 02h Return: * AL = Channel Control value === INT 15/AH=03h - sound_set_output === * AH = 03h * BL = Sound#S...")
  • 05:54, 17 March 2024 Asie talk contribs created page WonderWitch/FreyaOS (Created page with "FreyaOS is an operating system and library set for WonderWitch, present in the second-to-last 64 KB of any WonderWitch cartridge. It provides the following library functionality: * process management, * file system access, * IL library management. It additionally provides an user interface, which allows launching programs and performing file management/transfer operations. == Revisions == * FreyaOS 1.0.0 * FreyaOS 1.0.2 (September 2nd, 2000 <r...")
  • 19:55, 19 February 2024 Asie talk contribs moved page Cartridge pinout to Cartridge connector (Unify with NESdev/SNESdev Wiki standards)
  • 07:44, 27 August 2023 Asie talk contribs created page WonderBeat 9480 (stub)
  • 16:55, 25 August 2023 Asie talk contribs created page SoC (Created page with "The WonderSwan SoC is a single-chip solution powering the entirety of the system's hardware - containing the CPU, most peripheral logic, as well as the internal RAM. There exist three variants of the SoC: * ASWAN, used in the WonderSwan, * SPHINX, used in the WonderSwan Color, * SPHINX2, used in the SwanCrystal. A fourth variant, CAIRO, was planned. It was designed as an ASWAN with a doubled clock speed and a built-in ADPCM decoder, but was never licensed for a commer...")
  • 16:48, 25 August 2023 Asie talk contribs created page Cartridge (Created page with "== Cartridge bus == The cartridge bus allows both memory access (to linear addresses 0x10000-0xFFFFF) and I/O access (to ports 0xC0-0xFF). To facilitate this, the Memory/IO pin is used: * When Memory/IO is asserted '''high''', all bus address pins specify the 20-bit linear memory address. * When Memory/IO is asserted '''low''', bus address pins 0-7 specify the port address bits 0-7, bus address pins 8-15 are low, bus address pins 16-19 specify the port address bits 4-...")
  • 16:44, 25 August 2023 Asie talk contribs created page Cartridge pinout (Created page with " == Pinout == <pre> Cartridge Console (label side) (back) ____________ |====| ____ |--01| -- GND ... \ | -02| <- CPU A15 ... | | -03| <- CPU A10 ... | | -04| <- CPU A11 ... | | -05| <- CPU A9 ... | | -06| <- CPU A8 ... | | -07| <- CPU A13 ... | | -08| <- CPU A14 ... | | -09| <- CPU A12 ... | | -10| <- CPU A7 ... | | -11| <- CPU A6 ... | | -12| <- CPU A5 ... | | -13| <- CPU A4 ... | | -14| <> D15 ... | | -15| <> D14 ... | |...")
  • 09:29, 25 August 2023 Asie talk contribs created page Accessory port pinout (Created page with "The WonderSwan accessory (EXT) port provides an UART serial port and I<sup>2</sup>S digital audio output. == Pinout == (Female 8-pin port on peripheral) <pre> MISO_ _MOSI \ / +3V_ \ / _GND ______\ __\ __ /__ /______ | 04__03__02__01 | | __|"" "" "" ""|__ | | |__ __| | '. |..__..__..__..| .' \____05__06__07__08____/ _/ / \ \_ BCLK /...")
  • 06:16, 25 August 2023 Asie talk contribs created page WonderWitch/FreyaBIOS (Created page with "FreyaBIOS is a boot program and hardware abstraction layer for WonderWitch, present in the top-most (last) 64 KB of any WonderWitch cartridge. It provides the following functionality: * bring-up code, * interrupt-based hardware abstraction layer, providing a more user-friendly (and less direct) interface to the WonderSwan hardware, * a monitor program, allowing FreyaOS recovery and updates via XMODEM. Other functionality (like file system access) is instead includ...")
  • 06:10, 25 August 2023 Asie talk contribs created page WonderWitch (Created page with "The WonderWitch is an official homebrew development kit released by Qute Corporation on July 18th, 2000. == Hardware == The WonderWitch cartridge is based on the Bandai 2003 mapper. It provides an RTC, as well as NOR self-flashing functionality using the Fujitsu MBM29DL400TC chip. There were three ways available to acquire WonderWitch cartridges: * '''WonderWitch''', a software development kit containing a reflashable cartridge, a WonderSwan<->RS-232 adapter, a d...")
  • 16:27, 23 August 2023 Asie talk contribs created page NEC V30MZ (Created page with "The NEC V30MZ is the CPU component of the WonderSwan SoC. == Sections == * CPU undocumented behavior == Links == * [https://www.ardent-tool.com/CPU/docs/NEC/V20-V30/v30mz.pdf NEC V30MZ datasheet]")
  • 18:15, 22 August 2023 Asie talk contribs created page Frame timing (Created page with "Notes: * Sprite indices are given negatively. Sprites are filtered for every line, and are drawn from last found to first found. * Fetches may be off by one cycle. This stuff is complicated. {| class="wikitable" ! rowspan="2" | Cycle ! rowspan="2" | CPU ! colspan="4" | PPU ! rowspan="2" | APU ! rowspan="2" | Palette |- ! Mono/2BPP ! Color/2BPP ! Color/4BPP ! Line 144 |- | 0 | rowspan="117" style="vertical-align:top;" | V30MZ ! rowspan="256" style="text-align: center;"...")
  • 16:41, 22 August 2023 Asie talk contribs created page EEPROM (Created page with "The WonderSwan utilizes M93LCx6-compatible EEPROMs: * in the SoC: ** 1 Kbit internal EEPROM (M93LC46-compatible) on the WonderSwan, ** 16 Kbit internal EEPROM (M93LC86-compatible) on the WonderSwan Color, * on cartridges: ** 1 Kbit cartridge EEPROM (M93LC46-compatible) ** 8 Kbit cartridge EEPROM (M93LC76-compatible) ** 16 Kbit cartridge EEPROM (M93LC86-compatible) Additional variants exists which were not seen on any production cartridge: * 2 Kbit EEPROM (M93LC56-comp...")
  • 14:09, 22 August 2023 Asie talk contribs created page Splash animation (Created page with "The WonderSwan Color upgraded the internal EEPROM from 128 bytes to 2 kilobytes; most of the additional space is utilized to allow for branding consoles in the form of unique, custom splash animations on console startup. == Format == {| class="wikitable" |- ! Offset !! Length !! Contents |- | $83 || 1 || WSC-specific configuration. Bit 7 enables custom splash animation. |- | $84 || 1 || Name color |- | $85 || 1 || Must be $00 |- | $86 || 1 || Size; 0 = ends...")
  • 12:35, 22 August 2023 Asie talk contribs created page DMA (Created page with "The WonderSwan Color introduced two DMA blocks: * General DMA (GDMA) - allowing for fast IRAM/ROM -> IRAM transfers, * Sound DMA (SDMA) - allowing for IRAM/ROM -> sound transfers in a much less CPU-intensive way than an interrupt. == General DMA == {{Anchor|GDMA Source Address Low}} {{Anchor|GDMA Source Address High}} === GDMA Source Address ($40, $41, $42) === <pre> 23 bit 16 15 bit 8 7 bit 0 ---- ---- ---- ---- ---- ---- .... hhhh llll llll llll llll...")
  • 12:20, 22 August 2023 Asie talk contribs created page Hyper Voice (Created page with "Hyper Voice is a headphone-only sample output channel introduced with the WonderSwan Color. It allows converting 8-bit signed and unsigned, mono and stereo samples into 16-bit signed PCM sent directly to the headphone output, after mixing with the traditional four channels. == I/O Ports == === Hyper Voice Left Output ($64, $65) === === Hyper Voice Right Output ($66, $67) === <pre> 15 bit 8 7 bit 0 ---- ---- ---- ---- ssss ssss ssss ssss ++++-++++--++++-++++...")
  • 10:00, 22 August 2023 Asie talk contribs created page Sound (Created page with "The WonderSwan features the following sound hardware: * Four audio channels: ** channel 1 - wavetable (32 x 4-bit samples), ** channel 2 - wavetable or 8-bit unsigned PCM sample, ** channel 3 - wavetable with optional hardware sweep, ** channel 4 - wavetable or LFSR noise, * Hyper Voice<sup>(color)</sup> - headphone output exclusive 16-bit stereo PCM output, * 24000 Hz output: ** internal speaker - 8-bit, mono, ** headphone output - 16-bit, stereo. The sound is mix...")
(newest | oldest) View (newer 50 | ) (20 | 50 | 100 | 250 | 500)