radastan escribió:¿Beepola y otras cosas funcionan en SDCC? que no funcione SPLIB2 me importa un carajo porque yo ya tengo rutinas en ensamblador propias.
Nada funciona en ningún compilador de C "a pelo". Beepola y otras cosas suelen soltar ensamblador, que hay que adaptar y cascar como inline en tu programa C. En z88dk la adaptación se reduce, generalmente, a cambiar la sintaxis de las etiquetas de XXX: a .XXX, pero (según tengo entendido) SDCC reserva algunos registros para su propio uso y habría que adaptar un poco más las rutinas para tener esto en cuenta.
Otra cosa que se comenta es que SDCC suele generar más código inline, y z88dk está más orientado a llamadas a subrutinas, por lo que las diferencias tan apabullantes de tamaño del artículo se relajarían bastante en programas largos.
Además, z88dk trae un montón de bibliotecas base que además muchas de ellas son multiplataforma. Quizá a tí "te importe un carajo", pero para muchos usuarios esto es vital. Todo depende, como siempre, del uso que quieras darle

No a todo el mundo le gusta ponerse a hacer rutinas de bajo nivel. No se puede postular en términos tan absolutos, nada es radicalmente mejor que otra cosa, sobre todo cuando se orientan a usos diferentes y la forma de trabajar que tienen es diametralmente opuesta.
Lo bueno es que actualmente los desarrolladores de ambas plataformas están trabajando para mezclarlas en un único producto, de forma que, dependiendo de lo que vayas a hacer, puedas elegir qué generador de código quieres usar: zcc o sdcc. De hecho, las últimas betas de z88dk incluyen esta opción ya. Ahora mismo el problema que existe es, según tengo entendido, que sdcc no está demasiado preparado para linkado de archivos objeto y, por tanto, no puede usar la vasta colección de bibliotecas de funciones escritas en ensamblador que los programas generados con zcc sí pueden usar.
Supongo que con el tiempo dejarán esto bien atado y todos podremos tener lo mejor de ambos mundos dependiendo del proyecto que tengamos entre manos.
Lo de generar la cinta es que z88dk tiene un switch --create-app que, para casi todos los targets, crea un archivo que puedes cargar directamente, por ejemplo, un .tap para Spectrum. Es una chorrada, vaya.