The following warnings occurred:
Warning [2] Undefined array key 0 - Line: 1677 - File: showthread.php PHP 8.2.31 (Linux)
File Line Function
/inc/class_error.php 157 errorHandler->error
/showthread.php 1677 errorHandler->error_callback
/showthread.php 916 buildtree




Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Error: Syntax error. Unexpected end of line [NEWLINE]
#1
I've searched the forum for this report and I've checked the obvious stuff. My source file is plain text. I've only used accepted hex encoding. I only have one data type in a defb. The error reports line 123 but that's spurious as commenting it out changes the report to line 122 which is virtually the same. I suspect I've just hit a limitation of the inline assembler, but I'm not sure. Here's the source:

Code:
' ----------------------------------------------------------------------------- ' ZXodus][Engine - Example Character Generator ' Copyright (c) 2014 Andrew Owen. All Rights Reserved. ' ----------------------------------------------------------------------------- ' bank 0 = font / text ' bank 1 = gfx 1 ' bank 2 = code / music ' bank 3 = gfx 2 / cards goto start ASM org 80ffh vectr: defw intrpt intrpt: push af ; save registers push bc push de push hl ex af, af' ;' exx push af push bc push de push hl call play ; play music pop hl pop de pop bc pop af ex af, af' ;' exx pop hl pop de pop bc pop af jp $0038 ; ------------------------------------------------------------------------------ ; PROTRACKER 3 EXTREME II (P3X) AY PLAYER ; For ZX81 (Zon-X), TC2068, and Spectrum 128. ; Copyright (c) 2004, 2007 S.V.Bulba <vorobey@mail.khstu.ru> ; http://bulba.untergrund.net (http://bulba.at.kz) ; Formatted by Gasman for Pasmo and optimized by Cheveron ; variables are 541 bytes long and follow the player ; music is in ProTracker3.6 format (minus the 100 byte header) setup: defb 0 ; used by ProTracker 3 Extreme II checklp: ld hl, setup set 7, (hl) bit 0, (hl) ret z pop hl ld hl, delycnt inc (hl) ld hl, chana + chp_ntskcn inc (hl) mute: xor a ld h, a ld l, a ld (ayregs + ar_ampla), a ld (ayregs + ar_amplb), hl jp rout_a0 p3x_init: ld hl, music - 100 ; music address ld (modaddr + 1), hl ld (mdaddr2 + 1), hl push hl ld de, 100 add hl, de ld a, (hl) ld (p3x_delay + 1), a push hl pop ix add hl, de ld (crpsptr), hl ld e, (ix + 2) add hl, de inc hl ld (lposptr + 1), hl pop de ld l, (ix + 3) ld h, (ix + 4) add hl, de ld (patsptr + 1), hl ld hl, 169 add hl, de ld (ornptrs + 1), hl ld hl, 105 add hl, de ld (samptrs + 1), hl ld hl, setup res 7, (hl) xor a ld hl, vars ld (hl), a ld de, vars + 1 ld bc, var0end - vars - 1 ldir inc a ld (delycnt), a ld hl, $f001 ld (chana + chp_ntskcn), hl ld (chanb + chp_ntskcn), hl ld (chanc + chp_ntskcn), hl ld hl, emptysamorn ld (adinpta + 1), hl ld (chana + chp_ornptr), hl ld (chanb + chp_ornptr), hl ld (chanc + chp_ornptr), hl jp rout_a0 pd_orsm: ld (ix + 8), 0 ; pattern decoder call setorn ld a, (bc) inc bc rrca pd_sam: add a, a pd_sam_: ld e, a ld d, 0 samptrs: ld hl, 8481 add hl, de ld e, (hl) inc hl ld d, (hl) modaddr ld hl, 8481 add hl, de ld (ix + 3), l ld (ix + 4), h jr pd_loop pd_vol: rlca rlca rlca rlca ld (ix + 16), a jr pd_lp2 pd_eoff: ld (ix + 8), a ld (ix - 12), a jr pd_lp2 pd_sore: dec a jr nz, pd_env ld a, (bc) inc bc ld (ix + 5), a jr pd_lp2 pd_env: call setenv jr pd_lp2 pd_orn: call setorn jr pd_loop pd_esam: ld (ix + 8), a ld (ix - 12), a call nz, setenv ld a, (bc) inc bc jr pd_sam_ ptdecod: ld a, (ix + 6) ld (prnote + 1), a ld l, (ix - 6) ld h, (ix - 5) ld (prslide + 1), hl pd_loop: ld de, 8208 pd_lp2: ld a, (bc) inc bc add a, e jr c, pd_orsm add a, d jr z, pd_fin jr c, pd_sam add a, e jr z, pd_rel jr c, pd_vol add a, e jr z, pd_eoff jr c, pd_sore add a, 060h jr c, pd_note add a, e jr c, pd_orn add a, d jr c, pd_nois add a, e jr c, pd_esam add a, a ld e, a ld hl, spccoms + 57120 add hl, de ld e, (hl) inc hl ld d, (hl) push de jr pd_loop pd_nois: ld (ns_base), a jr pd_lp2 pd_rel: res 0, (ix + 9) jr pd_res pd_note: ld (ix + 6), a set 0, (ix + 9) xor a pd_res: ld (pdsp_ + 1), sp ld sp, ix ld h, a ld l, a push hl push hl push hl push hl push hl push hl pdsp_ ld sp, 12593 pd_fin: ld a, (ix + 5) ld (ix + 15), a ret c_portm: res 2, (ix + 9) ld a, (bc) inc bc inc bc inc bc ld (ix + 10), a ld (ix - 7), a ld de, nt_ ld a, (ix + 6) ld (ix + 7), a add a, a ld l, a ld h, 0 add hl, de ld a, (hl) inc hl ld h, (hl) ld l, a push hl prnote: ld a, 62 ld (ix + 6), a add a, a ld l, a ld h, 0 add hl, de ld e, (hl) inc hl ld d, (hl) pop hl sbc hl, de ld (ix + 13), l ld (ix + 14), h ld e, (ix - 6) ld d, (ix - 5) prslide: ld de, 4369 ld (ix - 6), e ld (ix - 5), d ld a, (bc) inc bc ex af, af' ;' ld a, (bc) inc bc and a jr z, nosig ex de, hl nosig: sbc hl, de jp p, set_stp cpl ex af, af' ;' neg ex af, af' ;' set_stp: ld (ix + 12), a ex af, af' ;' ld (ix + 11), a ld (ix - 2), 0 ret c_gliss: set 2, (ix + 9) ld a, (bc) inc bc ld (ix + 10), a and a jr nz, gl36 ld a, 6 ; P3X version is always PT3.6 cp 7 sbc a, a inc a gl36: ld (ix - 7), a ld a, (bc) inc bc ex af, af' ;' ld a, (bc) inc bc jr set_stp c_smpos: ld a, (bc) inc bc ld (ix - 11), a ret c_orpos: ld a, (bc) inc bc ld (ix - 12), a ret c_vibrt: ld a, (bc) inc bc ld (ix - 1), a ld (ix - 2), a ld a, (bc) inc bc ld (ix + 0), a xor a ld (ix - 7), a ld (ix - 6), a ld (ix - 5), a ret c_engls ld a, (bc) inc bc ld (env_del + 1), a ld (curedel), a ld a, (bc) inc bc ld l, a ld a, (bc) inc bc ld h, a ld (esldadd + 1), hl ret c_p3x_delay: ld a, (bc) inc bc ld (p3x_delay + 1), a ld (delycnt), a ; bugfix by Lee du Caine ret setenv: ld (ix + 8), e ld (ayregs + ar_envtp), a ld a, (bc) inc bc ld h, a ld a, (bc) inc bc ld l, a ld (envbase), hl xor a ld (ix - 12), a ld (curedel), a ld h, a ld l, a ld (curesld), hl c_nop: ret setorn: add a, a ld e, a ld d, 0 ld (ix - 12), d ornptrs: ld hl, 8481 add hl, de ld e, (hl) inc hl ld d, (hl) mdaddr2: ld hl, 8481 add hl, de ld (ix + 1), l ld (ix + 2), h ret ; all 16 addresses to protect from broken pt3 modules spccoms: defw c_nop defw c_gliss defw c_portm defw c_smpos defw c_orpos defw c_vibrt defw c_nop defw c_nop defw c_engls defw c_p3x_delay defw c_nop defw c_nop defw c_nop defw c_nop defw c_nop defw c_nop chregs: xor a ld (ampl), a bit 0, (ix + 21) push hl jp z, ch_exit ld (csp_ + 1), sp ld l, (ix + 13) ld h, (ix + 14) ld sp, hl pop de ld h, a ld a, (ix + 0) ld l, a add hl, sp inc a cp d jr c, ch_orps ld a, e ch_orps: ld (ix + 0), a ld a, (ix + 18) add a, (hl) jp p, ch_ntp xor a ch_ntp: cp 96 jr c, ch_nok ld a, 95 ch_nok: add a, a ex af, af' ;' ld l, (ix + 15) ld h, (ix + 16) ld sp, hl pop de ld h, 0 ld a, (ix + 1) ld b, a add a, a add a, a ld l, a add hl, sp ld sp, hl ld a, b inc a cp d jr c, ch_smps ld a, e ch_smps: ld (ix + 1), a pop bc pop hl ld e, (ix + 8) ld d, (ix + 9) add hl, de bit 6, b jr z, ch_noac ld (ix + 8), l ld (ix + 9), h ch_noac: ex de, hl ex af, af' ;' ld l, a ld h, 0 ld sp, nt_ add hl, sp ld sp, hl pop hl add hl, de ld e, (ix + 6) ld d, (ix + 7) add hl, de csp_: ld sp, 03131h ex (sp), hl xor a or (ix + 5) jr z, ch_amp dec (ix + 5) jr nz, ch_amp ld a, (ix + 22) ld (ix + 5), a ld l, (ix + 23) ld h, (ix + 24) ld a, h add hl, de ld (ix + 6), l ld (ix + 7), h bit 2, (ix + 21) jr nz, ch_amp ld e, (ix + 25) ld d, (ix + 26) and a jr z, ch_stpp ex de, hl ch_stpp: sbc hl, de jp m, ch_amp ld a, (ix + 19) ld (ix + 18), a xor a ld (ix + 5), a ld (ix + 6), a ld (ix + 7), a ch_amp: ld a, (ix + 2) bit 7, c jr z, ch_noam bit 6, c jr z, ch_amin cp 15 jr z, ch_noam inc a jr ch_svam ch_amin: cp 241 jr z, ch_noam dec a ch_svam: ld (ix + 2), a ch_noam: ld l, a ld a, b and 15 add a, l jp p, ch_apos xor a ch_apos: cp 16 jr c, ch_vol ld a, 15 ch_vol: or (ix + 28) ld l, a ld h, 0 ld de, vt_ add hl, de ld a, (hl) ch_env: bit 0, c jr nz, ch_noen or (ix + 20) ch_noen: ld (ampl), a bit 7, b ld a, c jr z, no_ensl rla rla sra a sra a sra a add a, (ix + 4) bit 5, b jr z, no_enac ld (ix + 004h), a no_enac: ld hl, addtoen + 1 add a, (hl) ld (hl), a jr ch_mix no_ensl: rra add a, (ix + 3) ld (addtons), a bit 5, b jr z, ch_mix ld (ix + 3), a ch_mix: ld a, b rra and 72 ch_exit: ld hl, ayregs + ar_mixer or (hl) rrca ld (hl), a pop hl xor a or (ix + 10) ret z dec (ix + 10) ret nz xor (ix + 21) ld (ix + 21), a rra ld a, (ix + 11) jr c, ch_ondl ld a, (ix + 12) ch_ondl: ld (ix + 10), a ret play: xor a ld (addtoen + 1), a ld (ayregs + ar_mixer), a dec a ld (ayregs + ar_envtp), a ld hl, delycnt dec (hl) jr nz, pl2 ld hl, chana + chp_ntskcn dec (hl) jr nz, pl1b adinpta: ld bc, $0101 ld a, (bc) and a jr nz, pl1a ld d, a ld (ns_base), a crpsptr equ $+1 ld hl, 0 inc hl ld a, (hl) inc a jr nz, plnlp call checklp lposptr: ld hl, 8481 ld a, (hl) inc a plnlp: ld (crpsptr), hl dec a add a, a ld e, a rl d patsptr: ld hl, 8481 add hl, de ld de, (modaddr + 1) ld (psp_ + 1), sp ld sp, hl pop hl add hl, de ld b, h ld c, l pop hl add hl, de ld (adinptb + 1), hl pop hl add hl, de ld (adinptc + 1), hl psp_: ld sp, 12593 pl1a: ld ix, chana + 12 call ptdecod ld (adinpta + 1), bc pl1b: ld hl, chanb + chp_ntskcn dec (hl) jr nz, pl1c ld ix, chanb + 12 adinptb: ld bc, 257 call ptdecod ld (adinptb + 1), bc pl1c: ld hl, chanc + chp_ntskcn dec (hl) jr nz, p3x_delay ld ix, chanc + 12 adinptc: ld bc, 257 call ptdecod ld (adinptc + 1), bc p3x_delay: ld a, 62 ld (delycnt), a pl2: ld ix, chana ld hl, (ayregs + ar_tona) call chregs ld (ayregs + ar_tona), hl ld a, (ampl) ld (ayregs + ar_ampla), a ld ix, chanb ld hl, (ayregs + ar_tonb) call chregs ld (ayregs + ar_tonb), hl ld a, (ampl) ld (ayregs + ar_amplb), a ld ix, chanc ld hl, (ayregs + ar_tonc) call chregs ld (ayregs + ar_tonc), hl ld hl, (ns_base_addtons) ld a, h add a, l ld (ayregs + ar_noise), a addtoen: ld a, 62 ld e, a add a, a sbc a, a ld d, a ld hl, (envbase) add hl, de ld de, (curesld) add hl, de ld (ayregs + ar_env), hl xor a ld hl, curedel or (hl) jr z, rout_a0 dec (hl) jr nz, rout env_del: ld a, 62 ld (hl), a esldadd: ld hl, 8481 add hl, de ld (curesld), hl rout: xor a rout_a0: ; ld de, $df0f ; Zon-X ports ; ld bc, $ffdf ; ; ld de, $f5f6 ; TC2068 ports ; ld bc, $fff5 ; ld de, $ffbf ; 128 ports ld bc, $fffd ; ld hl, ayregs lout: out (c), a ; ld c, e ; Zon-X / TC2068 ld b, e ; 128 outi ; ld c, d ; Zon-X / TC2068 ld b, d ; 128 inc a cp $0d jr nz, lout out (c), a ld a, (hl) and a ret m ; ld c, e ; Zon-X / TC2068 ld b, e ; 128 out (c), a ret t_: tcold_0: defb $00 + 1, $04 + 1, $08 + 1, $0a + 1, $0c + 1, $0e + 1 defb $12 + 1, $14 + 1, $18 + 1, $24 + 1, $3c + 1, 0 tcold_1: defb $5c + 1, 0 tcold_2: defb $30 + 1, $36 + 1, $4c + 1, $52 + 1, $5e + 1, $70 + 1 defb $82, $8c, $9c, $9e, $a0, $a6, $a8, $aa, $ac, $ae, $ae, 0 tcnew_3: defb $56 + 1 tcold_3: defb $1e + 1, $22 + 1, $24 + 1, $28 + 1, $2c + 1, $2e + 1 defb $32 + 1, $be + 1, 0 tcnew_0: defb $1c + 1, $20 + 1, $22 + 1, $26 + 1, $2a + 1, $2c + 1 defb $30 + 1, $54 + 1, $bc + 1, $be + 1, 0 tcnew_1 equ tcold_1 tcnew_2: defb $1a + 1, $20 + 1, $24 + 1, $28 + 1, $2a + 1, $3a + 1 defb $4c + 1, $5e + 1, $ba + 1, $bc + 1, $be + 1, 0 emptysamorn equ $ - 1 defb 1, 0;, $90 ;delete $90 if you don't need default sample ; channel data offsets chp_psinor equ 0 chp_psinsm equ 1 chp_cramsl equ 2 chp_crnssl equ 3 chp_crensl equ 4 chp_tslcnt equ 5 chp_crtnsl equ 6 chp_tnacc equ 8 chp_conoff equ 10 chp_onoffd equ 11 ; ix for ptdecod here ( + 12) chp_offond equ 12 chp_ornptr equ 13 chp_samptr equ 15 chp_nntskp equ 17 chp_note equ 18 chp_sltont equ 19 chp_env_en equ 20 chp_flags equ 21 ; enabled - 0, simplegliss - 2 chp_tnsldl equ 22 chp_tslstp equ 23 chp_tndelt equ 25 chp_ntskcn equ 27 chp_volume equ 28 vars: chana: defs 29 chanb: defs 29 chanc: defs 29 delycnt: defb 0 ; globalvars curesld: defw 0 curedel: defb 0 ns_base_addtons: ns_base: defb 0 addtons: defb 0 ar_tona equ 0 ; word 1 ar_tonb equ 2 ; word 1 ar_tonc equ 4 ; word 1 ar_noise equ 6 ; byte 1 ar_mixer equ 7 ; byte 1 ar_ampla equ 8 ; byte 1 ar_amplb equ 9 ; byte 1 ar_amplc equ 10 ; byte 1 ar_env equ 11 ; word 1 ar_envtp equ 13 ; byte 1 ar_size equ 14 ; byte 1 ayregs equ $ vt_: incbin "volume.p3v" envbase equ vt_ + 14 t1_ equ vt_ + 16 ; tone tables data depacked here t_old_1 equ t1_ t_old_2 equ t_old_1 + 24 t_old_3 equ t_old_2 + 24 t_old_0 equ t_old_3 + 2 t_new_0 equ t_old_0 t_new_1 equ t_old_1 t_new_2 equ t_new_0 + 24 t_new_3 equ t_old_3 nt_: incbin "notes.p3n" ;local vars ampl equ ayregs + ar_amplc var0end equ vt_ + 16 ; p3x_init zeroes from vars to ; var0end - 1 varsend equ $ mdladdr equ $ music: incbin "stones.p3x" END ASM start: PRINT "HELLO" ASM ld a, 80h ; high byte of vectr ld i, a ; store it in I call p3x_init ; initialize music im 2 ; music on END ASM
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)