|
Joined: Feb 2014
Posts: 1,124 Likes: 193
Very Senior Member
|
Very Senior Member
Joined: Feb 2014
Posts: 1,124 Likes: 193 |
-listslots is very useful. Man, that list is impressive. So many cool things to try. aesms Applied Engineering Super Music Synthesizer aevm80 Applied Engineering Viewmaster 80 alfam2 ALF MC1 / Apple Music II ap16 IBS AP-16 80 column card ap16alt IBS AP-16 80 column card (alt. version) applicard PCPI Applicard arcbd Third Millenium Engineering Arcade Board cffa2 CFFA2000 Compact Flash (65C02 firmware, www.dreher.net) cffa202 CFFA2000 Compact Flash (6502 firmware, www.dreher.net) corvus Corvus Flat Cable interface diskii Apple Disk II controller diskiing Apple Disk II NG controller (16-sector) diskiing13 Apple Disk II NG controller (13-sector) dx1 Decillonix DX-1 echoii Street Electronics Echo II echoiiplus Street Electronics Echo Plus ezcgi E-Z Color Graphics Interface ezcgi9938 E-Z Color Graphics Interface (TMS9938) ezcgi9958 E-Z Color Graphics Interface (TMS9958) mcms1 Mountain Computer Music System (card 1) mcms2 Mountain Computer Music System (card 2) memexp Apple II Memory Expansion Card midi 6850 MIDI card mockingboard Sweet Micro Systems Mockingboard mouse Apple II Mouse Card parallel Apple Parallel Interface Card pcxport Applied Engineering PC Transporter phasor Applied Engineering Phasor ramfactor Applied Engineering RamFactor sam Don't Ask Software S.A.M. scsi Apple II SCSI Card softcard Microsoft SoftCard ssbapple Multitech Industrial SSB Apple speech card ssc Apple Super Serial Card ssprite Synetix SuperSprite swyft IAI SwyftCard thclock ThunderWare ThunderClock Plus themill Stellation Two The Mill tm2ho Applied Engineering TimeMaster H.O. twarp Applied Engineering TransWarp ultraterm Videx UltraTerm (original) ultratermenh Videx UltraTerm (enhanced //e) videoterm Videx VideoTerm vtc1 unknown VideoTerm clone #1 vtc2 unknown VideoTerm clone #2 zipdrive Zip Technologies ZipDrive
|
|
|
|
Joined: Mar 2001
Posts: 17,234 Likes: 260
Very Senior Member
|
Very Senior Member
Joined: Mar 2001
Posts: 17,234 Likes: 260 |
By default the II and II Plus have lang (Apple II 16K Languard Card) in slot 0, mockingboard in slot 4, and diskiing in slot 6.
The IIe has ext80 (Apple 64K Extended 80 Column Card) in the aux slot, mockingboard in slot 4, and diskiing in slot 6. The AE RamWorks III is also supported for the aux slot, for up to 1 meg usable by AppleWorks.
The memory-expandable IIc versions have a memory card installed and a Mockingboard 4C. -ramsize values above 128K populate the memory card.
All IIes and IIcs have a No-Slot Clock.
|
|
|
|
Joined: Jun 2014
Posts: 95 Likes: 3
Member
|
Member
Joined: Jun 2014
Posts: 95 Likes: 3 |
.nibs can be oversized (36 tracks instead of 35). Golden Child, if you want to share some with me, then I can try to work out what's wrong with them. Normally, .nibs are 232960 bytes long, and can't be in the wrong sector order - they're just steams of track data.
|
|
|
|
Joined: Sep 2013
Posts: 14
Member
|
Member
Joined: Sep 2013
Posts: 14 |
Is it possible to set a specific ram size in KB for the Apple IIgs?
I realise the following will work;
>mame64 apple2gsr1 -ramsize 4M
and so will;
>mame64 apple2gsr1 -ramsize 4096K
But I would like to add a 4MB RAM card to a ROM01 IIgs which has 256K onboard by default. So I believe that works out as 4096K + 256K = 4352K
But the following isn't accepted by MAME;
>mame64 apple2gsr1 -ramsize 4352K
or am I confused?
Cheers
|
|
|
|
Joined: Mar 2001
Posts: 17,234 Likes: 260
Very Senior Member
|
Very Senior Member
Joined: Mar 2001
Posts: 17,234 Likes: 260 |
Sorry, yes, I didn't bother to compute all of the K values for ROM 01 and ROM 03, I just went to megabytes. I will add the more detailed values in the future.
|
|
|
|
Joined: Feb 2014
Posts: 1,124 Likes: 193
Very Senior Member
|
Very Senior Member
Joined: Feb 2014
Posts: 1,124 Likes: 193 |
I finally dug my Yamaha YPG-625 out and was surprised to see that it doesn't have a "real" midi port, just a USB port, so I hooked it up to see if it would do anything under Ubuntu. It came up as /dev/midi2 so I started up lua5.3 and was able to read raw midi data.
a=io.open("/dev/midi2","r")
for j=1,32 do b=a:read(500) t=os.time() for i =1,#b do print (t,j,i,string.format("%x",b:byte(i))) end end
There's a whole bunch of MIDI System Real-Time Messages with 0xf8 and 0xfe so if I don't print those I can see the notes:
for j=1,32 do b=a:read(200) t=os.time() for i =1,#b do d=b:byte(i) if not ((d == 0xf8) or (d==0xfe)) then print (t,j,i,string.format("%x",b:byte(i))) end end end
1559056749 3 186 90
1559056749 3 187 3c
1559056749 3 188 53
1559056749 3 194 90
1559056749 3 195 3c
1559056749 3 196 0 So I thought I'd see if that passport midi would be able to use the keyboard:
./mame64 apple2e -listmidi
MIDI input ports:
Midi Through Port-0 (default)
Portable Grand MIDI 1
MIDI output ports:
Midi Through Port-0 (default)
Portable Grand MIDI 1
./mame64 apple2e -sl2 midi -midiin "Portable Grand MIDI 1" -verbose -flop1 ../../Passport\ designs\ -\ Master\ tracks\ v1.8.dsk
./mame64 apple2e -sl2 midi -midiin "Portable Grand MIDI 1" -verbose -flop1 ../../Passport\ designs\ -\ MIDI8\ plus\ v1.2.dsk
and the software seems to work to record a few notes (first I have to set one of the tracks to REC) but then crashes...
|
|
|
|
Joined: Feb 2014
Posts: 1,124 Likes: 193
Very Senior Member
|
Very Senior Member
Joined: Feb 2014
Posts: 1,124 Likes: 193 |
Running the Master Tracks software with the debugger shows that it's still reading the midi data but the program seems to stop updating the screen and responding to key strokes: ./mame64 apple2e -sl2 midi -verbose -flop1 ../../Passport\ designs\ -\ Master\ tracks\ v1.8.dsk -snapsize 560x384 -debug -midiin "Portable Grand MIDI 1" -midiout "Portable Grand MIDI 1" I thought I'd see what registers were being read.
wp c0a0,10,rw,1,{printf "pc=%x wpaddr=%x wpdata=%x a=%x",pc,wpaddr,wpdata,a; g}
Error in command: {printf "pc=%x wpaddr=%x wpdata=%x a=%x",pc,wpaddr,wpdata,a; g}
^unknown command
So what was wrong with my wpset debugger command? An extra space at the end of the line... It says unknown command but doesn't tell you why exactly. Master Tracks freezes up within just a few seconds, but hitting CTRL+F12 for reset brings it back, and if you set the track to play (F for format, then P for play) and space to start playback, it will play the first few notes it recorded before it froze up. Are there any other midi programs for the Apple IIe? Just for fun, I thought I'd type in the little Applesoft Demo program for the Passport Midi Card from the manual and fix some of the mistakes:
emu.keypost([[
100 REM ------------------------------
110 REM - MIDI DATA PLAYBACK DEMO -
120 REM -APPLESOFT BASIC-
130 REM -(C)1984 PASSPORT DESIGNS INC-
140 REM -ALL RIGHTS RESERVED-
150 REM --
160 REM - VERSIOM 1.19/6/84 -
170 REM -PROGRAMMER: BRUCE BETHKE-
200 REM -----------------------------
210 REM
220 GOSUB 2000: REM DRAW SCREEN
230 GOSUB 3000: REM DEFINE VARIABLES
235 GOTO 1000: REM BEGIN PLAYBACK
240 REM
250 REM
260 REM -----------------------------
270 REM -SUBROUTINES-
280 REM -----------------------------
290 REM
300 REM -- WAIT FOR ACIA TO CLEAR ---
310 FOR TIM = 1 TO 4: NEXT : RETURN
320 REM
330 REM
400 REM —- WAIT FOR NOTES DURATION -—
410 FOR TIM = 1 TO 4: NEXT : RETURN
420 REM
430 REM
500 REM ------TURN OFF OLD NOTE ------
510 POKE AD,OFFKY: GOSUB 310
520 POKE AD,OLDKY: GOSUB 310
530 POKE AD,VOFF: GOSUB 310
540 RETURN
550 REM
560 REM
600 REM ----- TURN ON NEW NOTE -----
610 POKE AD,KEYDN: GOSUB 310
620 POKE AD,NEXKY: GOSUB 310
630 POKE AD,VMAX: GOSUB 310
640 RETURN
650 REM
660 REM
1000 REM --------------------------
1010 REM -BEGIN PLAYBACK—
1020 REM --------------------------
1030 REM
1040 FOR N = 1 TO 24
1050 READ NEXKY
1060 NEXKY = NEXKY + T: REM TRANSPOSE
1070 GOSUB 510: REM TURN OFF PREVIOUS NOTE
1080 GOSUB 610: REM PLAY CURRENT NOTE
1090 GOSUB 410: REM WAIT ONE NOTE’S DURATION
1100 OLDKY = NEXKY: REM CURRENT NOTE BECOMES PREVIOUS NOTE
1110 NEXT N: REM GET NEXT NOTE
1120 REM
1130 REM ----------------------------
1140 REM - AT END OF DATA, TURN OFF -
1150 REM - LAST NOTE PLAYED-
1160 REM ----------------------------
1175 GOSUB 410
1180 POKE AD,OFFKY: GOSUB 310
1190 POKE AD,OLDKY: GOSUB 310
1195 POKE AD,VOFF: GOSUB 310
1197 REM
1200 REM ----------------------------
1210 REM - EXIT / TRANSPOSE PROMPT -
1220 REM ----------------------------
1240 VTAB 12: HTAB 10
1250 PRINT “CONTINUE (Y/N)";: INPUT A$
1260 IF (A$ = “Y” OR A$ = "y") THEN 1300
1270 HOME : END
1290 REM
1300 REM ---- CONTINUE PLAYBACK ---
1310 VTAB 14: HTAB 3
1320 PRINT “TRANSPOSE VALUE (+/- 0...36)”;: INPUT A$
1330 T = VAL (A$)
1340 IF (T > = — 36) AND (T < = 36) THEN 1400
1350 HOME : GOSUB 2000: GOTO 1310
1360 REM
1400 RESTORE : GOTO 1040
1410 REM =======================
1500 REM
1900 REM
2000 REM -------------------------
2010 REM -DRAW SCREEN-
2020 REM -------------------------
2040 HOME : PRINT CHR$ (7): REM BEEP!
2050 VTAB 1: HTAB 7: INVERSE
2060 PRINT “MIDI PLAYBACK DEMONSTRATION”
2070 NORMAL
2080 VTAB 3: HTAB 5: INVERSE
2090 PRINT “(C) 1984 PASSPORT DESIGNS, INC.”
2100 NORMAL
2110 VTAB 5: HTAB 5: PRINT”**********************************"
2120 RETURN
2130 REM
2140 REM
3000 REM --------------------------
3010 REM -DEFINE VARIABLES—
3020 REM --------------------------
3030 REM
3040 REM ACIA CONTROL AND DATA REGISTERS
3050 REM WITH MIDI CARD IN SLOT#2
3060 AC = 49320: REM ACIA CONTROL
3070 AD = 49321: REM ACIA DATA
3080 OFFKY = 128: REM KEY OFF STATUS BYTE
3090 KEYDN = 144: REM KEY ON STATUS BYTE
3100 VOFF = 0: REM KEY VELOCITY 0
3110 VMAX = 127: REM KEY VELOCITY = 127
3120 OLDKY = 0: REM “OLD” KEY ID NUMBER
3130 NEXKY = 0: REM “NEW” KEY ID NUMBER
3140 DUR = 50 : REM NOTE DURATION
3150 T = 0 : REM TRANSPOSITION VALUE
3160 A$ = ““ : REM INPUT STRING VARIABLE
3180 REM
3200 REM ----------------------------
3210 REM -RESET & CONFIGURE ACIA-
3220 REM ----------------------------
3230 REM
3240 POKE AC,19: POKE AC,17
3250 RETURN
3300 REM
3400 REM
4000 REM ----------------------------
4010 REM - KEY ID (NOTE) DATA TABLE -
4020 REM ----------------------------
4030 REM
4040 DATA 60,61,62,63,64,65
4050 DATA 66,67,68,69,70,71
4060 DATA 72,71,69,68,67,66
4070 DATA 65,64,63,62,61,60
4080 REM
4090 REM
]])
|
|
|
|
Joined: Feb 2014
Posts: 1,124 Likes: 193
Very Senior Member
|
Very Senior Member
Joined: Feb 2014
Posts: 1,124 Likes: 193 |
In the comments for a2midi.c, it says that Yamaha's card is on of the apple 2 cards. "Apple II 6850 MIDI card, as made by Passport, Yamaha, and others." So let's try the RittorMusic Midi/4 sequencer, which is supposed to work with the Yamaha Music Interface. ./mame64 apple2p -sl2 midi -verbose -flop1 ../../RittorMusic\ MIDI4\ Sequencer\ -\ Side\ 1.dsk -debug -midiout "Portable Grand MIDI 1" -midiin "Portable Grand MIDI 1" This looks very familiar: but it seems to hit different addresses to get the midi data, so it just freezes if you try to play or record. Interestingly, with the Passport Midi Mastertracks, the midi card is accessed through interrupts, and you can watch the data getting put into memory at $800-8ff (circular buffer), even after the software has frozen up. It seems to store the song data at $3000.
|
|
|
|
Joined: Mar 2001
Posts: 17,234 Likes: 260
Very Senior Member
|
Very Senior Member
Joined: Mar 2001
Posts: 17,234 Likes: 260 |
A lot of these programs are hardcoded in terms of what slot they want the MIDI card in.
What's the 6502 doing when the Passport software freezes? It's not any kind of total crash if it's still fielding interrupts.
|
|
|
|
Joined: Feb 2014
Posts: 1,124 Likes: 193
Very Senior Member
|
Very Senior Member
Joined: Feb 2014
Posts: 1,124 Likes: 193 |
I'm not sure exactly what the code is doing, but it looks like it stops getting some of the interrupts. There's an interrupt routine at 2572 which will do a lda $c0a8 and if there isn't data to get it will do things like update the clock. When the clock freezes it must not be getting these interrupts, and once that happens then it only gets interrupts when a midi keyboard key is pressed, and the interrupt routine processes the key data instead. ./mame64 apple2p -sl2 midi -verbose -flop1 ../../Passport\ designs\ -\ Master\ tracks\ v1.8.dsk -debug -midiout "Portable Grand MIDI 1" -midiin "Portable Grand MIDI 1" setting a breakpoint on the clock address "bp 96,1,w" history
2676: lda $96 $96 is the lowest part of the clock, goes from 0-23 and then cycles back to 0
2674: inc $96
2671: sta $c0a8
266F: lda #$b1
266D: inc $04
266B: sta ($04), y
2669: lda #$f8
2667: sta $a0
2665: lda $a1
2662: sta $c0ae
2660: bne $26d6
265E: dec $a0
265C: bmi $26d6
265A: bit $af
264E: bpl $265a
264C: bit $88
2608: bmi $264c
2606: bit $92
2604: beq $264c
2602: cmp $00
2600: lda $08
25FE: ldy #$00
25FD: cli
25FA: lda $c0a4
25F7: lda $c0a1
257E: jmp $25f7 so it jumps to 25f7
257C: bmi $2581 no data to get
2579: lda $c0a8
2578: pha
2577: tya
2576: pha
2575: txa
2574: pha
2572: lda <ACC
BFFC: jmp ($03fe) 3FE points to 2572
BFFA: sta <ACC interrupt gets called here, FFFE vector points to BFFA If I don't touch any of the keys, the clock will run fine. Then if I start playing a bunch of keys it stops the clock. When the clock stops you can manually change location $96 and the screen will update, so the main display loop is running, but it isn't getting the constant interrupts that would make the clock update.
Last edited by Golden Child; 05/31/19 01:36 PM.
|
|
|
4 members (MrBogi, R. Belmont, 2 invisible),
207
guests, and
0
robots. |
Key:
Admin,
Global Mod,
Mod
|
|
Forums9
Topics9,328
Posts122,128
Members5,074
|
Most Online1,283 Dec 21st, 2022
|
|
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!
|
|
|
|