/*
 * c8080 stdlib
 * Copyright (c) 2025 Aleksey Morozov aleksey.f.morozov@gmail.com aleksey.f.morozov@yandex.ru
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#pragma once

#pragma codepage reset

#pragma codepage('▘', 0x01)
#pragma codepage('▝', 0x02)
#pragma codepage('▀', 0x03)
#pragma codepage('▗', 0x04)
#pragma codepage('▚', 0x05)
#pragma codepage('▐', 0x06)
#pragma codepage('▜', 0x07)
#pragma codepage('☻', 0x08)
#pragma codepage('⍾', 0x09)  // human
#pragma codepage('☺', 0x0A)
#pragma codepage('↑', 0x0B)
#pragma codepage('♥', 0x0C)
#pragma codepage('♦', 0x0D)
#pragma codepage('→', 0x0E)
#pragma codepage('↓', 0x0F)

#pragma codepage('▖', 0x10)
#pragma codepage('▌', 0x11)
#pragma codepage('▞', 0x12)
#pragma codepage('▛', 0x13)
#pragma codepage('▄', 0x14)
#pragma codepage('▙', 0x15)
#pragma codepage('▟', 0x16)
#pragma codepage('█', 0x17)
#pragma codepage('♣', 0x18)
#pragma codepage('♠', 0x19)
#pragma codepage('•', 0x1A)
#pragma codepage('┃', 0x1B)
#pragma codepage('━', 0x1C)
#pragma codepage('←', 0x1D)
#pragma codepage('æ', 0x1E)  // СП
#pragma codepage('○', 0x1F)

#pragma codepage('Ю', 0x60)
#pragma codepage('А', 0x61)
#pragma codepage('Б', 0x62)
#pragma codepage('Ц', 0x63)
#pragma codepage('Д', 0x64)
#pragma codepage('Е', 0x65)
#pragma codepage('Ф', 0x66)
#pragma codepage('Г', 0x67)
#pragma codepage('Х', 0x68)
#pragma codepage('И', 0x69)
#pragma codepage('Й', 0x6A)
#pragma codepage('К', 0x6B)
#pragma codepage('Л', 0x6C)
#pragma codepage('М', 0x6D)
#pragma codepage('Н', 0x6E)
#pragma codepage('О', 0x6F)
#pragma codepage('П', 0x70)
#pragma codepage('Я', 0x71)
#pragma codepage('Р', 0x72)
#pragma codepage('С', 0x73)
#pragma codepage('Т', 0x74)
#pragma codepage('У', 0x75)
#pragma codepage('Ж', 0x76)
#pragma codepage('В', 0x77)
#pragma codepage('Ь', 0x78)
#pragma codepage('Ы', 0x79)
#pragma codepage('З', 0x7A)
#pragma codepage('Ш', 0x7B)
#pragma codepage('Э', 0x7C)
#pragma codepage('Щ', 0x7D)
#pragma codepage('Ч', 0x7E)
#pragma codepage('■', 0x7F)

#pragma codepage('─', 0x80)
#pragma codepage('│', 0x81)
#pragma codepage('┌', 0x82)
#pragma codepage('┐', 0x83)
#pragma codepage('└', 0x84)
#pragma codepage('┘', 0x85)
#pragma codepage('├', 0x86)
#pragma codepage('┤', 0x87)
#pragma codepage('┬', 0x88)
#pragma codepage('┴', 0x89)
#pragma codepage('┼', 0x8A)
#pragma codepage('♂', 0x8B)
#pragma codepage('♀', 0x8C)
#pragma codepage('♪', 0x8D)
#pragma codepage('♫', 0x8E)
#pragma codepage('☼', 0x8F)

#pragma codepage('░', 0x90)
#pragma codepage('▒', 0x91)
#pragma codepage('▓', 0x92)
#pragma codepage('►', 0x93)
#pragma codepage('◄', 0x94)
#pragma codepage('↕', 0x95)
#pragma codepage('¶', 0x96)
#pragma codepage('§', 0x97)
#pragma codepage('‼', 0x98)
#pragma codepage('▬', 0x99)
#pragma codepage('↨', 0x9A)
#pragma codepage('∟', 0x9B)
#pragma codepage('↔', 0x9C)
#pragma codepage('▲', 0x9D)
#pragma codepage('▼', 0x9E)
#pragma codepage('Ъ', 0x9F)

#pragma codepage('═', 0xA0)
#pragma codepage('║', 0xA1)
#pragma codepage('╒', 0xA2)
#pragma codepage('ё', 0xA3)
#pragma codepage('╓', 0xA4)
#pragma codepage('╔', 0xA5)
#pragma codepage('╕', 0xA6)
#pragma codepage('╖', 0xA7)
#pragma codepage('╗', 0xA8)
#pragma codepage('╘', 0xA9)
#pragma codepage('╙', 0xAA)
#pragma codepage('╚', 0xAB)
#pragma codepage('╛', 0xAC)
#pragma codepage('╜', 0xAD)
#pragma codepage('╝', 0xAE)
#pragma codepage('╞', 0xAF)

#pragma codepage('╟', 0xB0)
#pragma codepage('╠', 0xB1)
#pragma codepage('╡', 0xB2)
#pragma codepage('Ё', 0xB3)
#pragma codepage('╢', 0xB4)
#pragma codepage('╣', 0xB5)
#pragma codepage('╤', 0xB6)
#pragma codepage('╥', 0xB7)
#pragma codepage('╦', 0xB8)
#pragma codepage('╧', 0xB9)
#pragma codepage('╨', 0xBA)
#pragma codepage('╩', 0xBB)
#pragma codepage('╪', 0xBC)
#pragma codepage('╫', 0xBD)
#pragma codepage('╬', 0xBE)
#pragma codepage('©', 0xBF)

#pragma codepage('`', 0xC0)
#pragma codepage('a', 0xC1)
#pragma codepage('b', 0xC2)
#pragma codepage('c', 0xC3)
#pragma codepage('d', 0xC4)
#pragma codepage('e', 0xC5)
#pragma codepage('f', 0xC6)
#pragma codepage('g', 0xC7)
#pragma codepage('h', 0xC8)
#pragma codepage('i', 0xC9)
#pragma codepage('j', 0xCA)
#pragma codepage('k', 0xCB)
#pragma codepage('l', 0xCC)
#pragma codepage('m', 0xCD)
#pragma codepage('n', 0xCE)
#pragma codepage('o', 0xCF)

#pragma codepage('p', 0xD0)
#pragma codepage('q', 0xD1)
#pragma codepage('r', 0xD2)
#pragma codepage('s', 0xD3)
#pragma codepage('t', 0xD4)
#pragma codepage('u', 0xD5)
#pragma codepage('v', 0xD6)
#pragma codepage('w', 0xD7)
#pragma codepage('x', 0xD8)
#pragma codepage('y', 0xD9)
#pragma codepage('z', 0xDA)
#pragma codepage('{', 0xDB)
#pragma codepage('|', 0xDC)
#pragma codepage('}', 0xDD)
#pragma codepage('~', 0xDE)
#pragma codepage('ъ', 0xDF)

#pragma codepage('ю', 0xE0)
#pragma codepage('а', 0xE1)
#pragma codepage('б', 0xE2)
#pragma codepage('ц', 0xE3)
#pragma codepage('д', 0xE4)
#pragma codepage('е', 0xE5)
#pragma codepage('ф', 0xE6)
#pragma codepage('г', 0xE7)
#pragma codepage('х', 0xE8)
#pragma codepage('и', 0xE9)
#pragma codepage('й', 0xEA)
#pragma codepage('к', 0xEB)
#pragma codepage('л', 0xEC)
#pragma codepage('м', 0xED)
#pragma codepage('н', 0xEE)
#pragma codepage('о', 0xEF)

#pragma codepage('п', 0xF0)
#pragma codepage('я', 0xF1)
#pragma codepage('р', 0xF2)
#pragma codepage('с', 0xF3)
#pragma codepage('т', 0xF4)
#pragma codepage('у', 0xF5)
#pragma codepage('ж', 0xF6)
#pragma codepage('в', 0xF7)
#pragma codepage('ь', 0xF8)
#pragma codepage('ы', 0xF9)
#pragma codepage('з', 0xFA)
#pragma codepage('ш', 0xFB)
#pragma codepage('э', 0xFC)
#pragma codepage('щ', 0xFD)
#pragma codepage('ч', 0xFE)
#pragma codepage('⌂', 0xFF)
