ich habe hier grad einen kleine hänger,
habe die save/loadroutine angepasst trotzdem ärgert der mich,
Auf &8A80 ist der sprung zum save, geht soweit
Auf &8A70 ist der sprung zur laderoutine , habs zwar angepasst, aber greift da nicht auf disc zu grrr
habe eine erweiterung für den 6128 zur banknutzung geschrieben
;; bankswap für kaiser
org &8300
.scr_set_border equ &bc38
.scr_set_ink equ &bc32
.cas_in_open equ &bc77
.cas_in_direct equ &bc83
.cas_in_close equ &bc7a
himem equ &A67B
lastbyte equ &ABFF
lenght equ lastbyte - himem
setbank_fnt equ &7FC4 ;font
setbank_1_1 equ &7FC5 ;kroen
setbank_1_2 equ &7FC6 ;amsdoshimem
setbank_0_1 equ &7FC0 ;normal
di
;copy orig amdos to bank_1_2
.saveamsdos
LD BC,setbank_1_2 ;set Bank 2
out (C),C ;set Bank 2
ld hl,himem
ld de,&4000
ld bc,lenght
ldir
ld BC,setbank_0_1
out (c),c
ei
ret
;copy amsdos_bak this destroys the charset
.restoreamdos
di
LD BC,setbank_1_2 ;set Bank 2
out (C),C ;set Bank 2
ld hl,&4000
ld de,himem
ld bc,lenght
ldir
ld BC,setbank_0_1
out (c),C
ld a,&00
ld (&b735),a ; set font to normal
ei
ret
;-- load font
; load fonts
.loadfont
di
ld bc,setbank_fnt
out (c),c
ld hl,fnt
ld de,(fntadr)
ld bc,(fntl)
call loadfile
ld BC,setbank_0_1
out (c),c
ei
ret
;-- reinit fnt
.reinitfnt
di
ld bc,setbank_fnt
out (c),c
call &77E0
ld bc,setbank_0_1
out (c),c
ei
ret
.loadfile
call cas_in_open
ex de,hl
call cas_in_direct
call cas_in_close
ei
ret
.fnt db "fntldr.bin"
.fntadr dw &77E0
.fntl dw &0A00
und hier die geänderte lade/saveroutine
cas_out_open equ &BC8C
cas_out_direct equ &BC98
cas_out_close equ &BC8F
cas_in_open equ &bc77
cas_in_direct equ &bc83
cas_in_close equ &bc7a
org &8a3E ;loader
push af
ld hl,filename
push hl
ld de,(&AE66)
ld b,end_filename-filename
call loadfile
pop hl
ld a,50
ld (end_filename-1),a
ld b,end_filename-filename
ld de,&AC00
call loadfile
pop af
ei
ret
.loadfile
call cas_in_open
ex de,hl
call cas_in_direct
call cas_in_close
ld a,49
ld (end_filename-1),a
ret
ei
ret
org &8a70 ; entry
call &8318 ; restore AMSDOS from bank
call &8a3e ; load the savegame
call &8350 ; restore font
ei
ret
org &8a80
call &8318
ld de,(&AE66)
ld hl,&7600
or a
sbc HL,DE
EX DE,HL
call save
ld a,50
ld (end_filename-1),a
ld hl,&AC00
ld de,&0C00
call save
call &8350
ei
ret
.save
push hl
push de
push af
;open the file to write
ld b,end_filename-filename ; filename lenght
ld hl,filename ; filename
ld de,&7600 ; puffer to use
call cas_out_open
pop af
ld bc,&0000
pop de
pop hl
ld a,2
call cas_out_direct
call cas_out_close
ld a,49
ld (end_filename-1),a
ei
ret
;;
.filename
defb "Kaiser.sa1"
.end_filename
ich finds echt seltsam, zumal wenn ich diese beiden compilier, und so teste gehts ja, nur irgend wie scheint mich das basicteil zu veräppeln
für tipps woran es liegt währe ich dankbar