Τρία νέα screen modes για το BBC micro!
- chriskgnr
- Συντάκτης θέματος
- Retro Elite
- Well, i got one chance left in a nine live cat.
Λιγότερα
Περισσότερα
- Δημοσιεύσεις: 2358
- Ληφθείσες Ευχαριστίες 1472
07/05/2014 10:12 - 07/05/2014 10:15 #19922
από chriskgnr
21st century breakdown...
Τρία νέα screen modes για το BBC micro! δημιουργήθηκε από chriskgnr
Ενα ενδιαφέρον άρθρο που βρήκα στο περιοδικό MICRO USER (Νοέμβριος 1985), παρουσιάζει πως με ενα προγραμμα μικρότερο απο 256 bytes, μπορείς να εχεις στη διάθεσή σου ΤΡΙΑ επιπλέον screen modes για το BBC!
Αναφέρεται σχετικά(σε δική μου μετάφραση): "Το BBC micro εχει 8 screen modes, τα 0 εως 7. Με το πιο κατω utility μπορειτε να εχετε στη διάθεση σας άλλα 3 modes. Δύο από αυτά εχουν 16 χρώματα και απαιτούν μόνο 8Κ ή 10Κ RAM. Το τρίτο με τεσσερα χρώματα απαιτεί 8Κ RAM. Τα νεα modes καλούνται με την εντολή *CODE ακολουθούμενη από έναν αριθμό μεταξύ 8 και 10. Για παράδειγμα για το Mode 9 θα δωσετε την εντολή *CODE 9.
O πινακας των νεων screen modes:
Προσοχή πρέπει να δοθεί στο γεγονός ότι τα νεα αυτα modes πρεπει να τα καλεσετε οταν δουλεύετε το BBC μέσα από ενα από τα υπάρχοντα screen modes που χρησιμοποιεί το ίδιο ποσό μνήμης RAM. Δηλαδή τα 8Κ modes θα τα καλέσετε με την εντολή *CODE αφού είστε στο screen mode 6 και το 10Κ αφού είστε στο mode 5.
To listing:
10 REM Modes 8, 9 and 10
20 REM By Ian Robertson
30 REM (c) The Micro User
40 CD%=&900
50 ?&200=CD%MOD256
60 ?&201=CD%DIV256
70 FORT%=0TO2STEP2
80 P%=CD%
90 [:OPT T%
100 PHP:PHA:TXA:PHA:TYA:PHA
110 CMP#0:BEQ SKIP
120 .error
130 BRK
140 OPT FNequb(255):OPT FNequs("Stupid! Please use *CODE <Value 8-10>")
150 BRK:.SKIP
160 CPX#8:BEQ mode8
170 CPX#9:BEQ mode9
180 CPX#10:BEQ mode10
190 JMP error
200 .mode8
210 LDA#22:JSR&FFEE:LDA#5:JSR&FFEE
220 LDA#154:LDX#224:JSR&FFF4
230 .SKIP2
240 LDA#15:STA&360:LDA#1:STA&361:LDA#32:STA&34F:LDA#&55:STA&363:LDA#&AA:STA&362:LDA#9:STA&30A
250 JMP RESET
260 .mode9
270 LDA#22:JSR&FFEE:LDA#6:JSR&FFEE
280 LDA#154:LDX#128:JSR&FFF4
290 JMP SKIP2
300 .mode10
310 LDA#22:JSR&FFEE:LDA#6:JSR&FFEE
320 LDA#154:LDX#132:JSR&FFF4
330 LDA#3:STA&360:LDA#2:STA&361:LDA#16:STA&34F:LDA#&55:STA&363:LDA#&AA:STA&362:LDA#9:STA&30A
340 .RESET:LDA#20:JSR&FFEE:PLA:TAY:PLA:TAX:PLA:PLP:RTS:]
350 NEXT
360 END
370 DEFNSequs(string$)
380 $P%=string$
390 P%=P%+LEN(string$)
400 =T%
410 DEFFNequb(byte%)
420 ?P%=byte%
430 P%=P%+1
440 =T%
Αναφέρεται σχετικά(σε δική μου μετάφραση): "Το BBC micro εχει 8 screen modes, τα 0 εως 7. Με το πιο κατω utility μπορειτε να εχετε στη διάθεση σας άλλα 3 modes. Δύο από αυτά εχουν 16 χρώματα και απαιτούν μόνο 8Κ ή 10Κ RAM. Το τρίτο με τεσσερα χρώματα απαιτεί 8Κ RAM. Τα νεα modes καλούνται με την εντολή *CODE ακολουθούμενη από έναν αριθμό μεταξύ 8 και 10. Για παράδειγμα για το Mode 9 θα δωσετε την εντολή *CODE 9.
O πινακας των νεων screen modes:
Προσοχή πρέπει να δοθεί στο γεγονός ότι τα νεα αυτα modes πρεπει να τα καλεσετε οταν δουλεύετε το BBC μέσα από ενα από τα υπάρχοντα screen modes που χρησιμοποιεί το ίδιο ποσό μνήμης RAM. Δηλαδή τα 8Κ modes θα τα καλέσετε με την εντολή *CODE αφού είστε στο screen mode 6 και το 10Κ αφού είστε στο mode 5.
To listing:
10 REM Modes 8, 9 and 10
20 REM By Ian Robertson
30 REM (c) The Micro User
40 CD%=&900
50 ?&200=CD%MOD256
60 ?&201=CD%DIV256
70 FORT%=0TO2STEP2
80 P%=CD%
90 [:OPT T%
100 PHP:PHA:TXA:PHA:TYA:PHA
110 CMP#0:BEQ SKIP
120 .error
130 BRK
140 OPT FNequb(255):OPT FNequs("Stupid! Please use *CODE <Value 8-10>")
150 BRK:.SKIP
160 CPX#8:BEQ mode8
170 CPX#9:BEQ mode9
180 CPX#10:BEQ mode10
190 JMP error
200 .mode8
210 LDA#22:JSR&FFEE:LDA#5:JSR&FFEE
220 LDA#154:LDX#224:JSR&FFF4
230 .SKIP2
240 LDA#15:STA&360:LDA#1:STA&361:LDA#32:STA&34F:LDA#&55:STA&363:LDA#&AA:STA&362:LDA#9:STA&30A
250 JMP RESET
260 .mode9
270 LDA#22:JSR&FFEE:LDA#6:JSR&FFEE
280 LDA#154:LDX#128:JSR&FFF4
290 JMP SKIP2
300 .mode10
310 LDA#22:JSR&FFEE:LDA#6:JSR&FFEE
320 LDA#154:LDX#132:JSR&FFF4
330 LDA#3:STA&360:LDA#2:STA&361:LDA#16:STA&34F:LDA#&55:STA&363:LDA#&AA:STA&362:LDA#9:STA&30A
340 .RESET:LDA#20:JSR&FFEE:PLA:TAY:PLA:TAX:PLA:PLP:RTS:]
350 NEXT
360 END
370 DEFNSequs(string$)
380 $P%=string$
390 P%=P%+LEN(string$)
400 =T%
410 DEFFNequb(byte%)
420 ?P%=byte%
430 P%=P%+1
440 =T%
21st century breakdown...
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": Fotis_KFOR, GeoAnas, angel_grig, DAT-Alex, vovolas
Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
- vovolas
- Retro Elite
- tha vapsoume?
Λιγότερα
Περισσότερα
- Δημοσιεύσεις: 2262
- Ληφθείσες Ευχαριστίες 1131
09/05/2014 20:50 #19968
από vovolas
"Knowing is not enough we must apply
Willing is not enough we must do."
Απαντήθηκε από vovolas στο θέμα Τρία νέα screen modes για το BBC micro!
Όπως πάντα χρήστο μας εκπλήσεις για άλλη μια φορά
"Knowing is not enough we must apply
Willing is not enough we must do."
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": chriskgnr
Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
Χρόνος δημιουργίας σελίδας: 0.192 δευτερόλεπτα