Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.
Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.
BYTE MEMAC_B_CTL_D6 = $D65D
BYTE MEMAC_B_CTL_D7 = $D75D
BYTE MEMAC_B = $4000
BYTE OLD_MEMAC, NEW_MEMAC
BYTE det = [0]
PROC Main()
det = 0
MEMAC_B_CTL_D6 = 0
OLD_MEMAC = MEMAC_B
MEMAC_B_CTL_D6 = $80
NEW_MEMAC = MEMAC_B
IF OLD_MEMAC <> NEW_MEMAC THEN
PRINTE("VBXE under $D6")
det = 1
FI
MEMAC_B_CTL_D7 = 0
OLD_MEMAC = MEMAC_B
MEMAC_B_CTL_D7 = $80
NEW_MEMAC = MEMAC_B
IF OLD_MEMAC <> NEW_MEMAC THEN
PRINTE("VBXE under $D7")
det = 1
FI
IF det = 0 THEN
PRINTE("VBXE not detected.")
FI
RETURN
BYTE MEMAC_B_CTL_D6 = $D65D
BYTE MEMAC_B_CTL_D7 = $D75D
BYTE MEMAC_B = $4000
BYTE FUNC vbxe_detect()
BYTE OLD_MEMAC, NEW_MEMAC
MEMAC_B_CTL_D6 = 0
OLD_MEMAC = MEMAC_B
MEMAC_B_CTL_D6 = $80
NEW_MEMAC = MEMAC_B
MEMAC_B_CTL_D6 = 0
IF OLD_MEMAC <> NEW_MEMAC THEN
RETURN ($D6)
FI
MEMAC_B_CTL_D7 = 0
OLD_MEMAC = MEMAC_B
MEMAC_B_CTL_D7 = $80
NEW_MEMAC = MEMAC_B
MEMAC_B_CTL_D7 = 0
IF OLD_MEMAC <> NEW_MEMAC THEN
RETURN($D7)
FI
RETURN (0)
BYTE FUNC vbxe_core_magic(BYTE page)
BYTE POINTER magic_ptr
magic_ptr=page*256+$40
RETURN (magic_ptr^)
BYTE FUNC vbxe_is_rambo(BYTE page)
BYTE POINTER rambo_ptr
rambo_ptr=page*256+$41
RETURN (rambo_ptr^ RSH 7)
BYTE FUNC vbxe_core_rev(BYTE page)
BYTE POINTER rev_ptr
BYTE rev
rev_ptr=page*256+$41
rev = (rev_ptr^&$0F) + 10 * ((rev_ptr^&$70) RSH 4)
RETURN (rev)
PROC Main()
BYTE vbxe_page = [0]
BYTE magic = [0]
BYTE rev = [0]
BYTE POINTER rev_ptr
vbxe_page = vbxe_detect()
rev_ptr = vbxe_page*256+$41
IF vbxe_page = 0 THEN
PRINTE("VBXE not detected.")
RETURN
ELSE
PRINTF("VBXE under %H%E", vbxe_page*256)
FI
magic = vbxe_core_magic(vbxe_page)
IF vbxe_page <> 0 THEN
PRINTF("VBXE's magic number is: %H%E", magic)
PRINTF("Revision byte: %H %E", rev_ptr^)
IF vbxe_is_rambo(vbxe_page) THEN
PRINTE("Rambo emulation enabled.")
ELSE
PRINTE("Rambo emulation disabled.")
FI
rev = vbxe_core_rev(vbxe_page)
PRINTF("Revision number: %I%E", rev)
FI
RETURN
CARD C
PROC M256XC(BYTE A)
BYTE B=C+1
B=A
RETURN
PROC M()
M256XC($7B)
PRINTF("%I%E",C)
RETURN
0ECB: 4C CE 0E JMP $0ECE
0ECE: 8D CA 0E STA $0ECA
0ED1: AD CA 0E LDA $0ECA
0ED4: 8D C9 0E STA $0EC9
0ED7: 60 RTS
// tu start
0ED8: 4C DB 0E JMP $0EDB
0EDB: A9 7B LDA #$7B
0EDD: 20 CB 0E JSR $0ECB
0EE0: 4C E8 0E JMP $0EE8
0EE1: E8 0E 04 25 49 25 45
0EE8: AD C9 0E LDA $0EC9
0EEB: 85 A3 STA $A3 ;MVLNG+1
0EED: AC C8 0E LDY $0EC8
0EF0: A2 0E LDX #$0E
0EF2: A9 E3 LDA #$E3
0EF4: 20 CC A3 JSR $A3CC
0EF7: 60 RTS
0EF8: 60 RTS
George:
To już dużo kodu, więc raczej będę zapraszał na mojego GitHubajhusak:
nie zwiększa gługości kodu.jhusak:
Tak. Widać to wyraźnie w dizasemblistingu w 4 i 5 rozkazie od góry.BYTE ARRAY MEM($4000)=$4000
PROC MAIN()
CARD CNT
FOR CNT=0 TO 20
DO
PRINTC(CNT):PRINT(" "):PRINTBE(MEM(CNT))
OD
FOR CNT=1024 TO 1343
DO
PRINTC(CNT):PRINT(" "):PRINTBE(MEM(CNT))
MEM(CNT)=99
OD
FOR CNT=0 TO 20
DO
PRINTC(CNT):PRINT(" "):PRINTBE(MEM(CNT))
OD
RETURN
mgr_inz_Rafal:
Dawno nie widziałem na Atari poziomej tenchi, brawo!Od 1 do 40 z 40