cj7hawk / LokiOS

Modern version of CP/M written as a compatible OS to CP/M 2.2 written from scratch in z80 Assembly - Created in the same way DOS was.
Other
45 stars 0 forks source link

asm.bas doesn't compile on Ubuntu #2

Closed cibersheep closed 1 year ago

cibersheep commented 1 year ago

I'm on Ubuntu 20.04 using FreeBASIC Compiler - Version 1.06.0 (03-06-2019), built for linux-x86_64 (64bit) Trying to compile asm.bas throws some errors in the fashion:

$fbc asm.bas asm.bas(122) error 148: Suffixes are only valid in -lang fb or deprecated or fblite in 'target=left$(target,location-1)+contents+right$(target,len(target)-len(contents)-location+1)'

The compiler needs this parameter to work: fbc -lang deprecated asm.bas

Additionally, I don't know if filename case is important (I read LokiOS is case sensitive)

When I finish compiling the project I can add some more clear instructions, if that's useful :)

cibersheep commented 1 year ago

Answering myself about the case sensitiveness: Yes it makes a difference :)

$,/asm bios.asm 
Debug from: 0 to  0
21:06:07
Getting Labels.
Label Pass Complete -  1 labels found.

21:06:07
Compiled 2 lines

Final Code Start: 65535
Final Code End  : 0

No errors. Building binary file.
 Writing :bios.asm.BIN start:FFFF end:0000
Written :-65536 bytes.
Writing Intel Hex File also.
 Writing HEX :./bios.asm.HEX start:FFFF end:0000
Written :-65536 bytes.

which compiles empty binaries

vs renaming the file to uppercase

$./asm BIOS
Debug from: 0 to  0
21:28:17
Getting Labels.
ORG Statement found:STARTLOCATION on line  36 Equates to:FC00
ORG Statement found:CCP_WARM_BOOT on line  82 Equates to:FC3D
ORG Statement found:DISK_PARAMETER_HEADERS on line  86 Equates to:FC40
Label Pass Complete -  93 labels found.
ORG Statement found:STARTLOCATION on line  36 Equates to:FC00
ORG Statement found:CCP_WARM_BOOT on line  82 Equates to:FC3D
ORG Statement found:DISK_PARAMETER_HEADERS on line  86 Equates to:FC40

21:28:17
Compiled 1048 lines

Final Code Start: 64512
Final Code End  : 65397

No errors. Building binary file.
 Writing :BIOS.BIN start:FC00 end:FF75
Written : 884 bytes.
Writing Intel Hex File also.
 Writing HEX :BIOS.HEX start:FC00 end:FF75
Written : 884 bytes.

which compiles a ¿valid? binary :)

cj7hawk commented 1 year ago

You are correct. I wrote the BAT file as a quick solution for windows and forgot about Linux. Early versions of LokiOS ran under Linux just fine, so I suppose I should consider rebuilding those. Although I'm not sure of FreeBASICs handling of graphics under Linux as I rarely use Linux outside of a text console. Do you know if it supports the creation of screens in the same was as the Windows version does? FreeBasic is mostly transportable but I think it draws the line at graphics. Nonetheless, I'll look into that now you've made me thing about it.

LokiOS is case insensitive - It doesn't care whether you type dir or DIR or DiR - it strips out case before it matches it in the command sense, while normal CP/M isn't case sensitive per-se, but it "sanitises" everything to all-caps in the CCP.

cj7hawk commented 1 year ago

It wasn't ASM.BAS, it was a general issue of Linux being case sensitive as you worked out. I rebuild the repository so as to be all lower case, so now if you use make.linux, it should build correctly. I have no idea if Linux can handle the graphics requirements though as I don't presently have a functional X system. Also some device names such as CON: still have to be addressed.

cibersheep commented 1 year ago

Thank you! I could built the project adding the deprecated language ;) About graphics: I have no idea, I'm just a simple user... but see screenshot. Running loki2 opens a graphical windows and ¿freezes?

image