From 3783203a3d58dc1ced332b0e3c5928696ef48465 Mon Sep 17 00:00:00 2001 From: antoniovillena Date: Thu, 6 Apr 2017 16:30:24 +0200 Subject: [PATCH] =?UTF-8?q?A=C3=B1ado=20funcionalidad=20paralela=20boot=20?= =?UTF-8?q?machine=20con=20tecla=20abajo=20y=20soporte=20joystick=20en=20t?= =?UTF-8?q?oda=20la=20bios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- firmware/firmware.asm | 246 ++++++++++++++++++++++++++++-------------- firmware/strings.asm | 6 +- 2 files changed, 166 insertions(+), 86 deletions(-) diff --git a/firmware/firmware.asm b/firmware/firmware.asm index 1357cd0..e7b6540 100644 --- a/firmware/firmware.asm +++ b/firmware/firmware.asm @@ -168,14 +168,21 @@ keysc5 ld a, h ld l, a rlc b jr c, keyscn - xor a - ld h, a + in a, ($1f) + or a + jr z, nokemp + ld hl, kemp-1 +sikemp inc hl + rrca + jr nc, sikemp + jr sikem2 +nokemp ld h, a add a, d jr z, keysc6 ld d, h ld l, a add hl, de - ld a, (hl) +sikem2 ld a, (hl) keysc6 ld hl, (codcnt) jr z, keysc8 res 7, l @@ -224,6 +231,7 @@ keytab defb $00, $7a, $78, $63, $76 ; Caps z x c v defb $22, $3b, $7f, $5d, $5b ; " ; (c) ] [ defb $0d, $3d, $2b, $2d, $5e ; Enter = + - ^ defb $20, $00, $2e, $2c, $2a ; Space Symbol . , * +kemp defb $1f, $1e, $1d, $1c, $0d ; Right Left Down Up Enter start ld bc, chrend-sdtab ldir @@ -435,7 +443,9 @@ tstart5 sub $80 jr z, start7 sub $0c-'1' start7 jp z, blst - cp $17-$0c + sub $1d-$0c + jp z, launch + cp $17-$1d jr nz, tstart5 ELSE pop af @@ -462,8 +472,7 @@ repe wreg flash_cs, 0 ; activamos spi, enviando un 0 ;++++++++++++++++++++++++++++++++++ ;++++++++ Enter Setup ++++++++ ;++++++++++++++++++++++++++++++++++ -bios out ($fe), a - ld a, %01001111 ; fondo azul tinta blanca +bios ld a, %01001111 ; fondo azul tinta blanca ld hl, $0017 ld de, $2001 call window @@ -570,8 +579,149 @@ bios7 dec c ld de, $0401 ld a, %01111001 ; fondo blanco tinta azul ret - IF recovery=0 + +launch ld (tmpbuf+21), a + call clrscr ; borro pantalla + inc hl + inc de + ld c, $20 + ld (hl), %00000111 + ldir + ld bc, $2e0 + ld (hl), %01001111 + ldir + ld ix, cad118 + call_prnstr + ld ix, cad62 + call_prnstr + ld de, bnames +laun1 ex de, hl + push hl + push bc + ld de, tmpbuf + ld bc, 21 + ldir + ld ix, tmpbuf + pop bc + call_prnstr + pop hl + ld de, $0020 + add hl, de + ex de, hl + ld hl, $a3c0 + sbc hl, de + jr nz, laun2 + ld bc, $1501 +laun2 ld hl, $a681 + sbc hl, de + jr nz, laun1 + ld ix, cad6 + call_prnstr + + ld de, codcnt + ld hl, (active+1) +games call SELEC +aaitky ld a, (de) + sub $80 + jr c, aaitky + ld (de), a + cp $0d + jr z, gamen + cp $20 +gamen jp z, runbit0 + ld bc, games + push bc + call SELEC + ld a, (de) + sub $1c + jr z, gamup + dec a + jr z, gamdw + dec a + jr z, gamlf + dec a + jr z, gamrh + sub 'a'-$1f + jr z, gamdw + sub 'o'-'a' + jr z, gamlf + dec a + jr z, gamrh + dec a + ret nz +gamup dec l + ret p +gamdw inc l + ld a, l + cp 46 + ret c + dec l + ret +gamlf ld a, l + ld l, 0 + sub 23 + ret c + ld l, a + ret +gamrh ld a, l + cp 23 + jr c, gamrh1 + ld a, 22 +gamrh1 add a, 23 + ld l, a + ret + +SELEC push hl + exx + pop hl + inc l + ld a, l + cp 24 + ld de, 0 + ld b, 16 + jr c, sel01 + ld e, -23 + add hl, de + ld e, b +sel01 add hl, hl + add hl, hl + add hl, hl + ld h, $16 + add hl, hl + add hl, hl + add hl, de +sel02 ld a, (hl) + xor %00110110 + ld (hl), a + inc l + djnz sel02 + exx + ld a, l + exx +sel03 sub 23 + jr nc, sel03 + add a, 24 + ld c, a + and %00011000 + or %01000000 + ld d, a + ld a, c + and %00000111 + rrca + rrca + rrca + add a, $0f + ld e, a + ld b, 8 +sel04 ld a, (de) + xor 3 + ld (de), a + inc d + djnz sel04 + exx + ret + ;++++++++++++++++++++++++++++++++++ ;++++++++ Start ROM ++++++++ ;++++++++++++++++++++++++++++++++++ @@ -631,6 +781,10 @@ conti2 adc a, a ; 0 0 MODE1 /DISCONT MODE0 /I2KB /DISNMI DIVEN xor %10101100 ; LOCK MODE1 DISCONT MODE0 I2KB DISNMI DIVEN 0 ld (alto conti9+1), a jp alto micont +runbit0 ld a, 45 + cp l + jp z, bios + ld h, l runbit ld b, h call calbit ld bc, zxuno_port @@ -1053,7 +1207,7 @@ romsb sub $1e-$16 jp z, roms27 dec a jp z, roms27 - sub $6e-$1f ; n= New Entry + sub 'n'-$1f ; n= New Entry jp nz, roms144 call qloadt ld ix, cad54 @@ -1175,70 +1329,7 @@ toanyk ei call_prnstr jp waitky IF recovery=0 -roms144 sub $72-$6e ; r= Recovery - jr nz, roms139 - ld hl, $0309 - ld a, %00000111 ; fondo negro tinta blanca - call rest1 - call resto - sub l ; fondo negro tinta blanca - ld hl, $030c - ld de, $1801 - ld ix, cad64 - call window - ld bc, $0208 - call prnmul - ld bc, $040c - ld hl, $20ff - call inputv - ld a, (codcnt) - rrca - jr nc, roms149 - call newent - push hl - set 5, l - ex de, hl - ld hl, empstr - ld a, (items) - ld c, a - inc c - ldir - sub 32 - ex de, hl - dec hl -roms145 ld (hl), 32 - inc hl - inc a - jr nz, roms145 - pop iy -roms146 inc iy - call resto - ld de, $0301 - ld a, iyl - and 7 - ld l, a - add a, a - push af - add a, l - ld h, a - ld l, $0e - ld a, %01000111 ; fondo negro tinta blanca - call window - pop af - add a, a - ld b, a - ld c, $0e - ld hl, $03ff - call inputv - ld a, (codcnt) - rrca - jr c, roms148 - call nument - dec l - dec l - ld (hl), $ff - jr roms149 -roms139 inc a ; q= move item up +roms144 sub 'q'-'n' ; q= move item up jr nz, nmovup ld a, (menuop+1) jr moveup @@ -1246,17 +1337,6 @@ nmovup add a, 'q'-'a' ld a, (menuop+1) jr z, movedw jp roms7 -roms148 call atoi - ld (iy-1), a - ld a, iyl - inc a - and 7 - jr nz, roms146 -roms149 ld a, %00111001 ; fondo blanco tinta azul - ld hl, $0a08 - ld de, $1409 - call window - ret roms15 ld hl, tmpbuf ld (hl), 1 roms16 call popupw diff --git a/firmware/strings.asm b/firmware/strings.asm index 1544447..01671fc 100644 --- a/firmware/strings.asm +++ b/firmware/strings.asm @@ -1,6 +1,6 @@ cad0 defb 'Core: ',0 cad1 defm 'http://zxuno.speccy.org', 0 - defm 'ZX-Uno BIOS v0.60', 0 + defm 'ZX-Uno BIOS v0.61', 0 defm 'Copyleft ', 127, ' 2017 ZX-Uno Team', 0 defm 'Processor: Z80 3.5MHz', 0 defm 'Memory: 512K Ok', 0 @@ -35,7 +35,7 @@ cad8 defm $10, ' ', $10, ' ', $10, 0 cad9 defb $14, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11 defb $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $18, $11 defb $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $15, 0 - defb ' BIOS v0.60 ', $7f, '2017 ZX-Uno Team', 0 + defb ' BIOS v0.61 ', $7f, '2017 ZX-Uno Team', 0 cad10 defb 'Hardware tests', 0 defb $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11 defb $11, $11, $11, $11, 0 @@ -78,7 +78,6 @@ cad13 defb $1e, ' ', $1f, ' Sel.Screen', 0 defb 'Graph Save&Exi', 0 defb 'Break Exit', 0 defb 'N New Entry', 0 - defb 'R Recovery', 0 cad14 defb 'Run a diagnos-', 0 defb 'tic test on', 0 defb 'your system', 0 @@ -345,6 +344,7 @@ cad116 defb 'Disable for', 0 defb 'tibility with', 0 defb 'old games', 0, 0 cad117 defb ' Add new core', 0 +cad118 defm ' Please select boot machine', 0 ;cad199 defb 'af0000 bc0000 de0000 hl0000 sp0000 ix0000 iy0000', 0