Otros dos parches más 20180327-1320

A raíz de la corrección anterior que añadía algo de control a la expansión de macros, he retocado el análisis de secuencias de escape de UZ80 para que provoque errores fatales cuando se le dan combinaciones que se salen del estándar: por ejemplo "\N", que es rechazado, a diferencia de "\n", que genera el carácter LF, de valor 10.

load = $170
type = 0
exec = 0

; AMSDOS
 org load-$80
 ds 18
 dw type
 ds 1
 dw load
 ds 1
 dw last-load,exec
 ds 36
 dw last-load
 ds 1
 dw type+(load>>8)+(load&255)+2*((last-load)>>8)+2*((last-load)&255)+(exec>>8)+(exec&255)
 ds 59
; BASIC
 dw boot-$-2,1,$1C83,boot,$C001
filename db "2H"
filename_ db ": run to toggle 208K mode, push Shift and Control to format disc."
 ds 3

boot ld a,($BC9B)
 cp $DF
 ret nz ; DISC INSTEAD OF TAPE?
 ld hl,($BC9B+1)
 inc hl
 inc hl
 ld a,(hl) ; AMSDOS' ROM NUMBER
 ld (select03+2),a
 ld (format06+2),a
 ld hl,($BE7D)
 ld a,h
 or l
 ret z ; AMSDOS COMPATIBLE ROM?

 ld e,(hl) ; CURRENT DISC DRIVE
 push de
 ld a,$C1 ; DEFAULT DATA FORMAT
 db $DF
 dw select03
 ld hl,5 ; A=0,BC=0,DE=^XDPB+19
 add hl,de
 pop de
 cp (hl)
 jr z,main
 ld (hl),a ; SET DYNAMIC FORMAT
quit ld de,last
 jp $BC9B ; CAT
main dec (hl) ; SET 208K FORMAT
 push hl
 pop ix
 ld (ix-24),40  ; RECORDS/TRACK (36)
 ld (ix-19),209 ; ++KBYTES/SIDE (179)
; ld (ix-11),b;0 ; CATALOG TRACK
; ld (ix-9),$C1  ; 1ST SECTOR ID
 inc (ix-8);,10 ; SECTORS/TRACK (9)
; 20130830: GAP#3 7/22 FAIL!!!
 ld (ix-7),1    ; GAP#3 RD/WRT (42)
 ld (ix-6),37-1 ; GAP#3 FORMAT (82)
; 20140708: http://demoniak-contrib.forumactif.com\
; /n62-la-structure-des-pistes-d-une-disquette-sur-cpc
 ld a,21 ; PRESS SHIFT...
 call $BB1E
 ld a,c
 sub 160 ; ...AND CONTROL!
 jr nz,quit

 ld d,a
 ld a,"["
 call $BB5A
doatrack ld hl,last
 push hl
 ld c,2
 ld a,$C1
dosector ; CHRNCHRN...
 ld (hl),d
 inc hl
 ld (hl),b
 inc hl
 ld (hl),a
 inc hl
 ld (hl),c
 inc hl
 add 5 ; C1C6...
 ld (hl),d
 inc hl
 ld (hl),b
 inc hl
 ld (hl),a
 inc hl
 ld (hl),c
 inc hl
 sub 4 ; C6C2...
 cp $C6
 jr nz,dosector ; 16,27,38,49,5A*6B
 pop hl
 db $DF
 dw format06
 ret nc
 ld a,"#"
 bit 0,d
 call nz,$BB5A
 inc d
 ld a,d
 cp 42
 jr c,doatrack
 ld hl,filename
 ld de,last
 ld b,filename_-filename
 call $BC8C
 ld hl,load
 ld de,last-load
 xor a
 call $BC98
 call $BC8F
 ld a,"]"
 call c,$BB5A; OK
filedone jp $BC92
select03 dw $C039
 db 7
format06 dw $C042
 db 7

 ds $270-$
last
 end

Es buen momento para incluir las fuentes corregidas de 2H.BAS, programa que escribí en su momento para crear y utilizar disquetes con un formato DATA aumentado de 178k a 208k a base de usar 42 pistas de 10 sectores en vez de 40 de 9, que publiqué en cpcwiki.eu/forum y que UZ80 compila a la perfección, cabecera de AMSDOS incluida.



"Pacmania" (Amstrad CPC, Spectrum 128, Atari ST): Block Town

También he aprovechado para simplificar una de las condiciones del "player" de CHIPNSFX y para añadir cinco canciones, de las que cuatro son la banda sonora de Ben Daglish para la conversión de "Pacmania" a cargo de Teque Software y publicada por Grandslam. Es interesante: ninguna de las conversiones de "Pacmania" incluye el tema de "Sandbox Land"; todas se limitan a repetir el de "Block Town".

[ ◀◀ PRIMERO ] [ ◀ ANTERIOR ] [ ▲ ] [ ▶ POSTERIOR ] [ ▶▶ ÚLTIMO ]