Closed GSoftwareDevelopment closed 9 months ago
Powyższy pull został sprawdzony z przykładem zamieszczonym w /samples/a8/io_sparta_dos_x/paramstr.pas
Wykazuje prawidłowe działanie.
A w przypadku, gdy nie są używane funkcje ParamCount()
lub 'ParamStr()` w kodzie wynikowym nie ma deklaracji przestrzeni dla kopii IOCB#0 oraz kodu, kopiującego ten blok.
Dodałem obsługę dyrektywy DISABLEIOCBCOPY
.
Domyślnie kopia IOCB#0 jest wykonywana tak jak było.
Po zadeklarowaniu dyrektywy, kopia nie jest wykonywana, a procedury ParamStr
oraz ParamCount
operują bezpośrednio na kanale IOCB#0 (adres $340-$34F)
The change consists of discarding from the compiler code the initialisation of the
IOCB#0
block copy, which is used in the SYSTEM library functions:paramCount()
andparamStr()
.After the change, the copy is only executed when the programmer declares the use of the above-mentioned functions. In addition, the memory allocated for the copy of the
IOCB#0
block is reserved in the static data area (STATICDATA) and not, as before, behind the program code.