*** DISCLAIMER: The information on these pages is not an official instruction or documentation. No responsibility will be taken. Use at your own risk. ***

Saturday, September 30, 2017

how do I get rid of the Ebola virus?

Possible symptoms:
executable file size grows by 1116 bytes after run.

Possible reasons:
- system infected with Ebola virus

Possible solutions:
- remove Ebola virus:
  1. get antivirus software (e.g. VirusZ or VirusExecutor) from http://www.vht-dk.dk/ or from AmiNet: http://aminet.net/search?query=virus
  2. put antivirus on some media that can be mounted from shell
  3. have a write-protected, virus-free workbench bootdisk*
  4. boot from write-protected, virus-free workbench bootdisk, mount media with antivirus software as required
  5. run antivirus software, scan all drives / files, hit "repair file" or "remove virus" as indicated by antivirus software (Ebola can be removed successfully. May fail on OS3.9 "SetPatch", though. Replace bad file with good one from original installation media, if required.)
  6. run HDToolbox, check every partition of harddisc for RDB's installed filesystem: go to "Advanced options..." -> "Filesystem..." -> "Change/Update..." and compare size of installed filesystem with filesystem on disk (now scanned/cleaned). Re-Install filesystem from disk, if it's 1116 bytes smaller than the one installed in RDB. (Keep in mind AmigaOS versions: compare filesystems of equal versions.)
  7. switch off Amiga and let rest for at least 30 seconds
*) not strictly required, but may avoid multiple de-contamination runs/reboots

Tuesday, August 15, 2017

why does vbcc's printf()/snprintf()... not respect %f in format strings?

Problem:
using printf("%f", 1.2);
prints
   %f
instead of
   1.20000

Possible reasons:
no math lib included

Possible solutions:
- add -lmieee or -lmsoft (or other math library -> see vbcc manual) to list of compiler options
- put -lmieee (or whatever math lib you're using) before -lvc in list of compiler libs options

Saturday, August 12, 2017

how do I properly read user input using a AmigaDOS script?

Problem:
- user input handling via "ask" isn't sufficient
- empty user input (empty string, user just hit return) can't be checked


Possible solution:

this is an example AmigaDOS script asking user for an ip address, and using a default value if user just hits return:

; default value:
set DEF_IP 192.168.178.1
 

; message to user, including default value:
echo "please enter your IP address (default: ${DEF_IP}):"
 

; unset variable before use, for proper testing afterwards:
unset IP

; read user input into variable.
; if user just hits return, variable doesn't get set.
set >nil: IP ?

; get variable, suppress output:
get >nil: IP


; if there was an error, it means variable hasn't been set.
if WARN

    ; use default value if there was an error
    set IP ${DEF_IP}
endif


; print result (default value, or user input)
echo "using IP address: ${IP}"

rawkey-class description strings containing Amiga/RAmiga/LAmiga not working under AmigaOS2.0?

Problem:
- rawkey-class input filter description strings containing Amiga/RAmiga/LAmiga do not work under AmigaOS2.0
- CxFilter() fails when using such a rawkey-class input filter description string

Possible reasons:
because the Amiga keys are called "Command" in OS versions below 3.

Possible solutions:
Use "Command"/"LCommand"/"RCommand" instead of "Amiga"/"LAmiga"/"RAmiga".

Friday, July 28, 2017

how to create a linker library with vbcc

join .o files into one file, which is your library.

(better solutions? startup code?)

Thursday, July 20, 2017

libgen.h missing / undefined reference to basename() and/or dirname()

Possible reasons:
- libgen.h missing
- functions basename() and/or dirname() not available


Solution:
- drop/remove #include <libgen.h>
- implement functions basename() and/or dirname()
https://linux.die.net/man/3/dirname

or

- get latest ADE (GG/geekgadgets) from AmiNet
http://aminet.net/package/dev/gcc/ADE

Tuesday, July 18, 2017

AmiTCP/Genesis: sendto no buffer space available

Possible reasons:
- appp.device error, genesiskey.library not found in LIBS:


Solution:
- put genesiskey.library from OS3.9 into LIBS: