====== I/O Programming ====== This section contains info on how to access various kinds of peripheral I/O hardware such as the keyboard, joysticks, serial devices and so on. It also contains info on communications programming, such as modem protocols. ===== Disk/Tape IO ===== * [[Detect Drives on IEC Bus]] - by Todd S. Elliott ==== General DOS/Kernal stuff ==== These are general file IO functions, not restricted to a certain type of hardware. * [[DOS examples]] - a few sourcecodes on how to use DOS/KERNAL calls, by Graham * [[base:how_the_vic_64_serial_bus_works|How The VIC/64 Serial Bus Works]] - by Jim Butterfield * [[Making use of the fastload/save in the cartridge]] - Various people ==== Disk IO ==== * [[Flexloader 3.0]] - IRQ/Fast loader (1541 only!) by Jayce / Focus * [[Disk loader with flashing border (For non-fastload)]] - by Richard Bayliss * [[Autostarting Disk Files]] by TFG/MMD * [[Formatting disks]] - Various people * [[Electronic Arts Fat Tracks File Buster]] - by Fungus * [[books:hardware_diagnostics|Hardware diagnostics]] - In case your 1541 drive is broken, check this. * [[Drivecode]] - by Bitbreaker/Oxyron^Arsenic^Nuance * [[Fastloaders]] - by Bitbreaker/Oxyron^Arsenic^Nuance ==== Tape IO ==== * [[IRQ-Tape Loader]] - aka [[http://cadaver.homeftp.net/rants/irq-tape.htm|"rant 8"]] - Tutorial by Laze Ristoski (Cybertronic Studios) * [[Autoboot tape turbo loader]] - How to create an auto-booting tape turbo loader by Martin Piper * [[Cult Loader]] - Disassembled by Fungus * [[Turbo250 disassembled]] - The classic Turbo250 by Mr.Z/Triad disassembled by FTC/HT. * [[TurboTape loader source]] - minimal setup to load Turbo Tape data by enthusi/Onslaught * [[FreeLoad V5.0 Saver]] - by Paul Hughes. Used by Ocean. ==== Tape xfer routines ==== By Fungus. Either of these two shell routines is to be used with each of the transfer routines below: * [[Tape transfer shell]] - by Fungus * [[Newshell]] - by Fungus The xfer routines below are to be used for reading originals using various loaders and storing them onto disk: * [[Burner tape transfer 1.0]] - by Fungus * [[CHR Tape to Disk Transfer 1.0]] - by Fungus * [[CHR Load Tape Transfer 2.0]] - by Fungus * [[Ocean/Imagine Transfer - v1]] - by Fungus * [[Ocean/Imagine Transfer - v2]] - by Fungus * [[Ocean/Imagine Transfer - v3]] - by Fungus * [[Novaload Tape Transfer 1.0]] - by Fungus * [[Novaload Special Tape Transfer 1.0]] - by Fungus * [[C= Pavloda Transfer 1.0a]] - by Fungus * [[ROM-load]] - by Fungus * [[U.S.Gold Tape Transfer 1.0]] - by Fungus * [[Virgin Tape Transfer 1.0]] - by Fungus * [[Wildload Tape Transfer 1.0]] - by Fungus ==== Harddrive stuff ==== * [[HD-Park-Switch - How to Patch a CMD-HD to your own needs]] - in Domination #17 by Ninja/The Dreams. ===== Keyboard and text IO ===== * [[Reading the Keyboard]] - by Various * [[Robust String Input]] - by Schema * [[IP Address Input]] - by Schema * [[magazines:chacking6#three-key_rollover_for_the_c-128_and_c-64|THREE-KEY ROLLOVER for the C=128 and C=64]] - by Craig Bruce (from C=Hacking #6) * [[Scanning the keyboard the correct and non KERNAL way]] - by TWW/CTR * [[Print Stringchain]] - Tiny solution for printing given stringchains - by ABujok * [[Scanning the keyboard without joysticks interfere]] - by Erhan ==== Text manipulation and formatting ==== * [[Tiny .A to ASCII routine|Tiny .A to Decimal 3-Digit String Conversion]] * [[base:32_bit_hexadecimal_to_decimal_conversion|32 bit hexadecimal to decimal conversion]] - by Graham * [[Hex String to Integer]] - hexadecimal string to integer converter by FMan * [[ASCII Char to 4 bit Integer]] - Converts a alnum character to a value between 0 and 15 by Monte Carlos * [[Integer to Hex String]] - integer to hexadecimal string converter by FMan * [[String manipulation routines]] - string copying and printing routines by FMan * [[petscii to screencode|Convert PETSCII/ASCII to screencodes]] by Mace/Secure ===== Joystick, mouse, paddles, koalapad, lightgun… ===== * [[Joystick Input Handling]] - general info and examples by tfg * [[Fast Joystick Handling]] - By JAS * [[Both Joysticks Handling plus proper keyboard scan]] - by Erhan * [[C= 1351 Standard Mouse Routine]] - Converted to KickAssembler by TWW * [[Multi-Adapter Support]] by Sokrates ===== MIDI IO ===== * [[ midi_on_the_c64 | Midi on the C64 ]] - Collection of C64 related MIDI info. ===== Data transfer protocols ===== * [[X-Modem File Transfer Protocol]] - for 6551 serial port (NOT in a native C64), by Daryl Rictor - taken from [[http://www.6502.org|www.6502.org]] * [[Simple BASIC X-Modem Receive]] - A short type-in program to bootstrap transfer programs, using KERNAL RS232 routines. By White Flame. The sourcecode for C*Base (BBS software) also contains a number of sources of transfer protocols, such as Punter and others. It is maintained by Tao/Triad and you can find it [[http://www.acc.umu.se/~tao/cbase|here]].