' JJJJ ?\>' L-=l>  ԠéԠˠ#~?  xDIR ERA TYPESAVEREN USER!yO#< Ty#O 3ǯ21y_͸2y2ͽ:ķ˜1͘A͌>>͌92^ :˷¥.!_~#fow]ɭʎʥ!v"!çREAD ERRORçNO FILE^:˷#͘*~ "Ʒ"͌#>?͌͘ =_.:;<> Oƅo$>!Y2*O"ʉ@G:ʐ:wÖx2p0ʹ#*©6?ëw˜0ï#6 ¹.0#*6?w0#6 #6"  Ň!˶2:2a{_:˷ʖ:˷>Ľʖ:=2–!B!6#5ʖ:˷Ľ!ͬʧ )!F#xʺ~0wëw!" !~6ͽ:ý(!\XEPSON COPYRIGHT (C) 1979, DIGITAL RESEARCH _͌> ͒> Ò> Ò͘~#͌ì _2<į2: :):>:(y2E!|"*wɍ`JX)^>EE??++ ԩ  [\ ĭ ?  JL ``LLL $Lq<`ΧԠĠڸčԠԠ͠Ԡ؍2>o:= gw8H<8H=` }Hx / hJ Leh<> > @A @A>i =<>+ LeÍڍh@(L>*// -П( ( $8` %  ZNx`. }x$50x.$50xL JJJJ`Hjf5 }h $50x`  Ȍ` Hx  -(hL(h8֩`Lx (`H݌hHhHh݌>?F؅G(jf5(  ;  R( FGj 0x j $xxH` ( Rh RL.xxH h  !"#$%&'()*+,-./0123456789:;<=>?x&& 8 , P ; ' / \ ; & ; x)*++`FGG8`0($ p,&" cI꽌ɪVɭ&Y & &Y &   꽌ɪ\8`&&꽌ɪɖ'*&%&,E'зЮ꽌ɪФ`V0 ^ *^ *>`+*xS&x'8*3IxiU ,>J>V J>V `8'x0| &HhHh V Y V '&Y V x ꪽV ' `Hh` ! ~ 3#0 Wx x ƀ Ƃ G ~ # 3x~#B!Y~ɯ2:˷=!˾ý:˷=!˾:ý^T!~  6?#ˆ:`O> K{͘A͒>:͒͢>:͒͢xK > K > ͒x  ͢ØÆ^ BRͧ9!5‚#~Y‚#"T<ÆALL (Y/N)?^ Tʧ͘!6!~ڇ ɯw4!Y~ʆ͌†t=ʆf ^ T ɯ2o&)|+!<ͧЯ2*C!!~~#~O~G#n,-.‹! w! yG!x͢.:E<ʄ! q!pQ:E<. ʄ$.:E<ʄi6}2ExN! ~态O>G~G!~G} *C!r#r#r ^ͥ_y#x#{2>2T*CGͻ:ẅ́n>2;O ^DM;}H>"*C :ٷ:ddslO s#r:EϷ͊:==»y==»*Ww#*"͸*:G#š"͸:!پw4!iw:Z!E~=26 w ~>2!E5T*C!"C"C!w# F! w͌xѯ2͢*C ~<wʃG:٠!٦ʎì 4~ʶ¬:<ʶ$ʶïZͻЯx>2>2ͻ:!پZկ2:EϷẅ́͊Ͳ> *C ^OT *C~wD -'  -@ͦ~^*C Ox! N!Fwyxʋ>ڋ>*Cw~#+w#w+ɯ2E22i^ *C :ٷ~w~͔͔# # ::/GyO>2!q*C"͡ʔ*JҔ^:Oyʃ?|x | sӖ-|N-# S:2E!~Яw>T D^6k-äPYy 5*{zBK5:AϾ#~$=2Ek͌ ):BO!yoxg*:BO}!N#F "*#*s#r^ ~!J! J*:مo$*C~i6iw**{#zr+s{ozg**͕** Ѿ,w͜͸Ͳ!!N#F$**O!~#O: \зSЀ*C :ٷqn& ^#V>O^"*}:*)=":O:١o"*C *C!ͮ~2~2ͦ:٦2ͮ:ЯO:فw:w |g}o*ٯ# 2E>! ^#V w#P:BO|^#V#"##"##"##"!O*!O*|!6ʝ6>گ*w#w*w#w'û*ڷ! J*""!N#F*^#V*~#foyx*{_zW+*x: 2 p&x~+é7ͯ2 H! >w_: ! Ͼ5ͤNkͱ¦ͱxʊ#Nx: Ϸ! ϖ2 ͤ! 5™#wO~x½p Hy<< ڷʑ :!qMD# O͐  :ϷE B 2>: Ϸb# : Ϸy! 4 5~yy5 6yҐ^H@Oy H H: –ͬ  #H: ! Ͼ Hù H H $O͐: 2 *CN# ʽ̙̥̫̱"C{2!"E9"1Aϯ22!ty)K!G_^#V*Cΐ~؃E؜إث ,&-AGMSϛ!!ô!ô!Bdos Err On : $Bad Sector$Select$File R/O$:BA2!~6=qf^!~2>`~2˯2\!!B!~> >#0~O#Cx2͘1)ͽÂf zͧÆBAD LOADCOMf^: !˶ Â$$$ SUBÆNO SPACE^ :Ty!B*O=?_s#"^sG!~Yʸpsp2mÆÆf ͧÆFILE EXISTS _: É: :˷ʉ=2)ͽÉ T!@k!}|qs+p+q-*C ͥ!!q#p#w*:BOYG}*MD "ã:!BϾw!>2*C~=2u:B2~2wE:A*C϶w>"!""ٯ2B!"!rQQQâ~?ͦ~?rQ*"CQ-Q͜QüQrQ$Q*):B"*)*)Q;*"E:;:A2AQÓQÜQ*C}/_|/*٤W}_*"}o|g":ٷʑ*C6:ٷʑw:2E**E}DQ>2C0T"I !>"H>2J: !͢:d::d!s~B#1!P!J߇o~,foɷp:BB Apple ][ CP/M 56K Ver. 2.20B (C) 1980 Microsoft ;ۯ2>EE??++B#1!P!J߇o~,foɷp;ۯ2:޷;ۯ2e ]~6(*} *:޽ y(3:޷s:2G<2x/a2:oa":޷zޯ2{![:޷ <2:>sɯ2>!>2!;:*     1>2>2*"?ۯ2:08 !"Y"BT"->2:8Y"/:8Y"F~!xq!;`~0,~!M;!x~>.~8[q>:޷ 2y2!!{o!:=8 ~y!3w.y2Cɯ2>!w#w#wOa."y .:g"*"!~((5:# :*޽ :޼ $| 8g,"ޯ2!"_!ޅoN!޷((+! ~O#O:x >2ޯ2:޷*(*D*:wk*(:$_"~28 ?@wx( !;!܅ony 2$8!2E!y>>?22!ɯog"$2E!.B...X&*}(8.|8&"$պ`~(,qy2E[22G: 2:O*:P!O#~#'۹~y/:02?"2O: K*:*(0**:8'(*:08* *: 8(*7!w˹#~(=5:!( +_ywɷ+ͱ*:]lc_O{- OMG!~_ :( 6>83! ~èCfuÇKmVÉÎÓãݯ`iޓښ:ޓڦJޓڲZޓھjޓzޓߊ / !~ `66= !; !{g1:Q!͢گ22>2!"2!"͎>2BIOS PRN BIOS PRN !BIOS PRN"#$%&'()*+,-./01BIOS PRN23456789:;<=>?@ABIOS PRNBCDEFGHIJKLMNOPQBIOS PRNRSTUAUSGABE CMD8VWXYZ[\EINGABE CMD,]^_`ab. ; Korrekturen und Erg{nzungen erw}nscht an M 334. ; ;********************************************************** ******* ; ; Apple CP/M BIOS Listing ; ======================= ; ; Quellen3 ; ; Benutzte Quellen: ; Digital Research: CP/M 2.0 Alteration Guide ; ( BIOS Entry Points, Disk ParameREPORT CMD$cdefgLIT CMD$hijklLITER DOCmnoCPMAG#01DOCpTITEL DBFdqrstuvwxyz{|} ; ; SoftCard und Originalcode - ; Copyright by Microsoft ; ; 56 K - System ( mit Language Card ) code rekonstruiert von D. Stampe ; A.U.G.E. M 334 ; f}r A.U.G.E. Mitglieder zur ; Erg{nzung ihrer Dokumentation ter Tables, ; Sector blocking and deblocking ) ; Microsoft: Softcard Dokumentation ; ; Nobody is Perfect "APPLE CP/M BIOS" MACRO-80 3.4 01-Dec-80 PAGE 1 TITLE "APPLE CP/M BIOS" ; ;*************************************************** ; mit Drucker in Slot 1, Com. Card in Slot 2, ; 80 Zeichenkarte in Slot 3, Z80 in Slot 4 ; ; Stand 30.10.8 PAGE "APPLE CP/M BIOS" MACRO-80 3.4 01-Dec-80 PAGE 1-1 .Z80 ; 0038 MSIZE EQU ; BIOS Entry Tabelle ; ================== ; ; Kaltstart DA00 C9 START: RET ; ; 6502 ]bergabe-speicher ( 6502 Zero Page ) ; F024 CH EQU 0F024H ;Cursor Horizontal F028 BASL E BOOT EQU 00000H ;Warmstart Einsprung 0001 BOOTST EQU 00001H ; " 0003 IOBYTE EQU 00003H ;Input/Output Flag (f]r PIP, STAT ) 0004 #6 =060H F3EA DERR EQU 0F3EAH ;Fehler-Code Disk-Routine F3EB RDWR EQU 0F3EBH ;Read=01H/Write=02H F678 BYTE EQU 0F678H ;Zwischen Apple I/O - Adressen ; E000 APPKBD EQU 0E000H ;Apple Keyboard E010 APPKST EQU 0E010H ;Keyboard Strobe E051 56 ;Systemgr|~e in K (56 K/ 44 K) 9000 BIAS EQU (MSIZE-20)*1024 C400 CBASE EQU BIAS+3400H ;Start CCP DA00 BIOS EQU CBASE+1600H ;Star A$XREG EQU 0F046H ;6502 X-Register F047 A$YREG EQU 0F047H ;6502 Y-Register ; F3D0 A$VEC EQU 0F3D0H ;Vektor 6502 RoQU 0F028H ;Basis-Adresse Schirmspeicher F032 INVFLG EQU 0F032H ;Flag normal=0FFH/invers=03FH F045 A$ACC EQU 0F045H ;6502 Akku-Zwischenspeicher F046 CDISK EQU 00004H ;Current Drive Nummer 0005 BDOS EQU 00005H ;BDOS Einsprung 0006 BDOSST EQU 00006H ; " 03C0 Z80ST EQU 003C0H speicher I/O-Card F6F8 SLOT EQU 0F6F8H ;Slot I/O-Card PAGE "APPLE CP/M BIOS" MACRO-80 3.4 01-Dec-80 PAGE 1-2 TXTSET EQU 0E051H ;Schalter Textseite E400 Z80CRD EQU 0E400H ;Z80-Karte in Slot 4 EFFF CLRROM EQU 0EFFFH ;Abschalten Expansion-Roms t BIOS ; 0000' ASEG ORG BIOS ; 0000 utinen F3E0 PHTS EQU 0F3E0H ;Track F3E4 DRV12 EQU 0F3E4H ;Drive 1 = 01H oder Drive 2 Flag F3E6 DSKSLT EQU 0F3E6H ;Slot Disk, Slotnzahl CC06 BDST EQU CBASE+0806H ;BDOS Start-Einsprung CC0D BDERR EQU CBASE+080DH ;BDOS Fehler-Einsprungadresse ; ; ; 6502 Adresse Z80 Start ; C407 BUFCNT EQU CBASE+07H ;CCP Eingabebuffer Z{hler C8B2 CCPDIR EQU CBASE+04B2H ;CCP Patch Directory Spalte ;JP STRTUP initial DA01 DEA8 DEFW STRTUP ; " ; Warmstart DA03 C3 DACC WBOOTE: JP WBOOT ; DA93 0020 DPB: DEFW 0020H ;32 Sektoren/Track DA95 03 DEFB 003H ; DA96 07 DEFB 007H ; DA97 00 RET ; ; Disk Parameter Header f}r 6 Laufwerke A: ... F: ; DA33 0000 0000 DPE0: DEFW 0,0,0, JP PUNCH ; Reader Leser DA15 C3 DB87 JP READER ; Laufwerk Spur 0 DA18 C3 DD4B DA73 0000 0000 DEFW 0,0,0,0,DIRBUF,DPB,CSV4,ALV4 DA77 0000 0000 DA7B DEBA DA93 DA7F DFCA DF7A DA83 0000 0000 DEFW 0,0,0, ; LISTST List Status DA2D AF XOR A ;Akku = 0 immer DA2E C9 RET DA2F 00 NOP ; Console Status DA06 C3 DB08 JP CONST ; Console Input DA09 C3 DB12 JP CONIN ; Console Outp DA4B DEBA DA93 DA4F DFA6 DF4A DA53 0000 0000 DEFW 0,0,0,0,DIRBUF,DPB,CSV2,ALV2 "APPLE CP/M BIOS" MACRO-80 3.4 01-Dec-80 PAGE 1-3 DA57 0000 0000 0,DIRBUF,DPB,CSV0,ALV0 DA37 0000 0000 DA3B DEBA DA93 DA3F DF9A DF3A DA43 0000 0000 DEFW 0,0,0,0,DIRBUF,DPB,CSV1,ALV1 DA47 0000 0000 JP HOME ; Auswahl Disk-Laufwerk DA1B C3 DD6D JP SELDSK ; Auswahl Track DA1E C3 DD56 JP SETTR0,DIRBUF,DPB,CSV5,ALV5 DA87 0000 0000 DA8B DEBA DA93 DA8F DFD6 DF8A ; ; Disk Parameter Block ; SECTRAN Sektor umsetzen DA30 60 LD H,B ;hier keine Umsetzung DA31 69 LD L,C DA32 C9 ut DA0C C3 DB43 JP CONOUT ; List Drucker DA0F C3 DB66 JP LIST ; Punch Stanzer DA12 C3 DB75 DA5B DEBA DA93 DA5F DFB2 DF5A DA63 0000 0000 DEFW 0,0,0,0,DIRBUF,DPB,CSV3,ALV3 DA67 0000 0000 DA6B DEBA DA93 DA6F DFBE DF6A DMA ; Read Lesen Disk DA27 C3 DD93 JP READ ; Write Schreiben Disk DA2A C3 DDA3 JP WRITE K ; Auswahl Sektor DA21 C3 DD89 JP SETSEC ; Buffer f}r Disk-Routinen festlegen DA24 C3 DD8E JP SET DEFB 000H ; DA98 007F DEFW 007FH ;total 128 * 1K-Bl|cke DA9A 002F DEFW 002FH ;total 48 Directory Entries DA9C C0 AF9 CD DD8E CALL SETDMA DAFC 3E 03 DIRP: LD A,003H ;03H -> 4 Spalten, ; ;LD A,001H initial = (2 Sp.) DAFE 32 C8B2 DAC8 7B LD A,E DAC9 B4 OR H DACA 67 LD H,A "APPLE CP/M BIOS" MACRO-80 3.4 01-Dec-80 PAGE;Slot 7 anfangend DAA5 21 F3B8 WEITER: LD HL,SLTTAB-1 ;Basis Slot-Tabelle DAA8 19 ADD HL,DE DAA9 7E LD A,(HL) DAAA D6 03 D A,0C3H ;(JMP) - Befehl DAE4 32 0000 LD (BOOT),A DAE7 21 DA03 LD HL,WBOOTE DAEA 22 0001 LD (BOOTST),HL DAED 32 0005 NOSER: DEC E DAC2 20 E1 JR NZ,WEITER ;n{chsten Slot kontrollieren DAC4 C9 RET ; DEFB 0C0H ;2 Bl|cke f}r Directory DA9D 00 DEFB 000H ; " DA9E 000C DEFW 000CH ;Gr|sse Dir Check-Vektor DAA0 0003 DEFW 0003 0E00 LD HL,00E00H ;$0E00 = 6502 Adresse BOOT CCP DAD5 CD DFE8 CALL PATCH1 ;Patch CCP-Eingabebuffer l|schen DAD8 CD DAA2 CALL INICRD ;I/O-Karten 1-4 DACB C9 RET ; DACC 31 0080 WBOOT: LD SP,00080H DACF 3A E051 LD A,(TXTSET) DAD2 21 SUB 003H ;3 = Com. Card DAAC 20 07 JR NZ,NOCOM DAAE CD DD60 CALL SLSTAT DAB1 36 03 LD (HL),003H ;Reset Co LD (BDOS),A DAF0 21 CC06 LD HL,BDST ;BDOS Einsprung DAF3 22 0006 LD (BDOSST),HL DAF6 01 0080 LD BC,00080H D ; Rechnung Start-Adresse Slot-Prom ; E = Slot-Nr. 0...7, -> HL = Start-Adresse ; DAC5 21 E000 SLTADD: LD HL,0E000H ;Basis I/O-Bereich H ;reservierte Tracks f}r System ; ; Initialisierung der I/O-Karten ; DAA2 11 0007 INICRD: LD DE,00007H initialisieren DADB AF WBOOT1: XOR A DADC 32 DEB4 LD (UNACNT),A DADF 32 DEAF LD (HSTACT),A DAE2 3E C3 LCD DCEE CALL PREP DABB 21 C800 LD HL,0C800H ;Init-Routine Ser. Card DABE CD DB3B CALL C6502 ;$C800 = 6502 Adresse Init DAC1 1D m. Card DAB3 36 15 LD (HL),015H ;300 Baud Com. Card, 8+1 bit DAB5 3D NOCOM: DEC A ;2 = Serial Card DAB6 20 09 JR NZ,NOSER DAB8 LD (CCPDIR),A ;CCP Patch Directory-Breite DB01 3A 0004 LD A,(CDISK) DB04 4F LD C,A ;C = Log In Disk DB05 C3 C400 RRA DB3A C9 RET ; ; Aufruf von 6502 Routinen ; 6502-Start-Adresse PAGE 1-5 DB1F FA DB27 JP M,ENDKEY DB22 B9 CP C DB23 7E LD A,(HL) DB24 C8 REsole Status f}r Apple Keyboard ; Akku = 0FFH :Zeichen da, sonst Akku = 0 ; DB0C 3A E000 KEYBST: LD A,(APPKBD) ;initial DB0F 17 ; ; Console Input Apple Keyboard ; DB2F 3A E000 KEYBIN: LD A,(APPKBD) DB32 17 RLA DB3 ;Basis f}r Keyboard Redefinition DB18 06 06 LD B,006H ;maximal 6 Umcodierungen DB1A 4F LD C,A DB1B 23 TSTKEY: INC HL JP CBASE ; ; I/O - Routinen ; ============== ; ; Cons ; ; Console Input externes Terminal in Slot 3 ; DB29 11 0003 CIEXT: LD DE,00003H ;Slot 3 DB2C C3 DD1C T Z ;R}cksprung mit Ersetzung DB25 10 F4 DJNZ TSTKEY DB27 79 ENDKEY: LD A,C ;keine Ersetzung DB28 C9 RET RLA ; ;LD A,(0E0B0H) f}r Slot 3 Com.card ;RRA DB10 9F SBC A,A 3 30 FA JR NC,KEYBIN ;warte auf Tastendruck DB35 32 E010 LD (APPKST),A DB38 3F CCF ;MSB = 0 DB39 1F DB1C 7E LD A,(HL) DB1D 23 INC HL DB1E B7 OR A "APPLE CP/M BIOS" MACRO-80 3.4 01-Dec-80 ole Status ; DB08 2A F380 CONST: LD HL,(VECCOS) DB0B E9 JP (HL) ; ; Con JP RDSER ; Slot 3 Ser. Card ;JP KEYBIN initial ;JP RDCOM Slot 3 Com. Card e ; verglichen und bei ]bereinstimmung passend ersetzt. ; DB12 CD DB50 CONIN: CALL CONINP DB15 21 F3AB LD HL,CHRRED-1 DB11 C9 RET ; ; Console Input ; Eingabezeichen werden mit Zeichen der Umcodiertabellin HL ; DB3B 22 F3D0 C6502: LD (A$VEC),HL DB3E 32 E400 LD (Z80CRD),A ;LD (0000H),A initial DB41 C9 RET on Steuerzeichenfolgen. ; Zeichen in C-Register ; DB96 37 TTY: SCF ;TTY:, CRT: DB97 9F CON: SBC A,A JP (HL) ; DB75 3A 0003 PUNCH: LD A,(IOBYTE) DB78 E6 30 AND 030H ;PUNCH Feld DB7A FE 10 CP4B JR NZ,CON DB4C 2A F392 LIST1: LD HL,(VECLI1) ;Bei BAT ist LST console out DB4F E9 JP (HL) ; DB50 3A DB92 2A F38C LD HL,(VECRE2) DB95 E9 JP (HL) ; ; Kontrolle, ob Ausgabezeichen in Software LIST: LD A,(IOBYTE) "APPLE CP/M BIOS" MACRO-80 3.4 01-Dec-80 PAGE 1-6 DB69 E6 C0 AND 0C0H ;LIST Feld DB6B FE 80 CP 080H ; ; IOBYTE - Behandlung ; =================== ; DB42 4F CO: LD C,A 2A F390 LD HL,(VECPU2) DB86 E9 JP (HL) ; DB87 3A 0003 READER: LD A,(IOBYTE) DB8A E6 0C 010H ;TTY=00, PTP=10, UP1=20, UP2=30 DB7C 38 18 JR C,TTY DB7E 2A F38E LD HL,(VECPU1) DB81 20 E2 JR NZ,JMPHL DB83 0003 CONINP: LD A,(IOBYTE) DB53 E6 03 AND 003H ;Console Feld DB55 FE 02 CP 002H DB57 2A F384 LD HL,(VECCI2) Screen Function ; Tabelle enthalten, bei ja, ersetzen durch entsprechendes ; Zeichen aus Hardware Screen Function Tabelle. ; Bearbeitung v ;TTY=00, CRT=40, LPT=80, UL1=C0 DB6D 38 27 JR C,TTY DB6F 28 DB JR Z,LIST1 DB71 2A F394 LD HL,(VECLI2) DB74 E9 DB43 3A 0003 CONOUT: LD A,(IOBYTE) DB46 E6 03 AND 003H ;Console Feld DB48 FE 02 CP 002H ;TTY=00 CRT=01 BAT=02 UC1=03 DB4A 20 AND 00CH ;READER Feld DB8C FE 04 CP 004H ;TTY=00, PTR=04, UR1=08, UR2=0C DB8E 38 CE JR C,CI1 DB90 28 D0 JR Z,READ1 JP (HL) ; DB62 2A F38A READ1: LD HL,(VECRE1) DB65 E9 JMPHL: JP (HL) ; DB66 3A 0003 DB5A 28 06 JR Z,READ1 ;Bei BAT ist RDR console in DB5C 30 07 JR NC,JMPHL DB5E 2A F382 CI1: LD HL,(VECCI1) DB61 E9 ;CONFLG = 0FFH f}r TTY:,CRT: DB98 21 DEA2 LD HL,CONFLG ; = 000H f}r UC1: DB9B 77 LD (HL),A DB9C CB B9 RES 7,C LD A,(SFLDIN) DBEC B7 OR A DBED 28 06 JR Z,SEARCH ;z = kein Lead-In-Zeichen n|tig DBEF B9 CP C LD E,L ;H und L tauschen DBCD 6C LD L,H DBCE 63 LD H,E DBCF 5F NOSWAP: LD E,A ;JR Z,NOCH1 ;Z = noch 1 Zeichen DBAC B7 OR A ;Behandlung Cursor Adressierung DBAD F2 DBB3 JP P,SUBOF2 ;P = Y,X DBB0 2B DEC ISH ; DBE0 47 TCONT: LD B,A ;Teste auf Steuerzeichen DBE1 21 DEA4 LD HL,LDINFL DBE4 7E LD A,( M,XY ;M = X,Y DBBC 2B DEC HL DBBD CD DBB1 XY: CALL SUBOFF DBC0 2A DEAA LD HL,(CURY) DBC3 3A F3A1 DB9E 23 INC HL ;CNTFLG DB9F 7E LD A,(HL) DBA0 B7 OR A DBA1 28 3D JR Z,TCONT A,L DBD4 F5 PUSH AF DBD5 06 07 LD B,007H ;Funktion 7 DBD7 CD DC2D CALL FINISH ;1. Koordinate DBDA F1 Offset addieren DBD0 84 ADD A,H DBD1 4F LD C,A DBD2 7B LD A,E DBD3 85 ADD HL DBB1 E6 7F SUBOFF: AND 07FH DBB3 5F SUBOF2: LD E,A DBB4 79 LD A,C DBB5 93 SUHL) DBE5 5F LD E,A DBE6 B7 OR A DBE7 20 11 JR NZ,SRCH2 ;NZ = kein Lead-In DBE9 3A F397 LD A,(HXYOFF) DBC6 B7 OR A DBC7 F2 DBCF JP P,NOSWAP ;P = Y,X DBCA E6 7F AND 07FH DBCC 5D DBA3 35 DEC (HL) ;CNTFLG - 1 DBA4 3A F396 LD A,(SXYOFF) DBA7 21 DEAB LD HL,CURX DBAA 28 0C POP AF DBDB 06 0A LD B,00AH ;Funktion 10 DBDD 4F COUT: LD C,A ;2. Koordinate DBDE 18 4D JR FIN ; Cursoradressierung x,y ; DBB8 B7 NOCH1: OR A "APPLE CP/M BIOS" MACRO-80 3.4 01-Dec-80 PAGE 1-7 DBB9 FA DBBD JPB E ;subtrahiere Offset DBB6 77 LD (HL),A ;speichere CURX oder CURY DBB7 C9 RET ; DBF0 20 03 JR NZ,SEARCH ;ist Lead-In-Zeichen ? DBF2 36 80 LD (HL),080H ;wenn ja, LDINFL = 080H DBF4 C9 RET ;JP APPSCR initial ;JP WRCOM Slot 3 Com. Card ; ; Apple Screen Output 3A F3A2 LD A,(HFLDIN) DC1D 06 07 LD B,007H DC1F CD DBDD CALL COUT ;Lead-In ausgeben DC22 C1 POP BC m|glich DBFF 7E TESTFN: LD A,(HL) DC00 B7 OR A DC01 28 04 JR Z,NOTAVL ;Z = Funktion nicht vorhanden DC03 AB JR Z,JPHL1 DC3A 2A F386 LD HL,(VECCO1) ;TTY: DC3D E9 JPHL1: JP (HL) ; ; ADD HL,DE DC10 7E LD A,(HL) DC11 B7 OR A DC12 4F LD C,A DC13 F2 DC23 ; ; Suche in Software-Tabelle ; DBF5 3E 1F SEARCH: LD A,01FH DBF7 B9 CP C ;ist S LD A,002H ;noch 2 Zeichen DC2A 32 DEA3 LD (CNTFLG),A DC2D AF FINISH: XOR A DC2E 32 DEA4 LD (LDINFL),A ;Le DC23 78 NOLEAD: LD A,B DC24 FE 07 CP 007H ;Funktion 7 = Adress Cursor DC26 20 05 JR NZ,FINISH DC28 3E 02 XOR E DC04 B9 CP C DC05 28 05 JR Z,MATCH DC07 2B NOTAVL: DEC HL ;testet r}ckw{rts Console Ausgabe externes Terminal ; DC3E 11 0003 COEXT: LD DE,00003H ;Slot 3 DC41 C3 DD04 JP WRSER ; Slot 3 Ser. Card JP P,NOLEAD ;P = kein Lead-In n|tig DC16 E6 7F AND 07FH DC18 4F LD C,A DC19 C5 PUSH BC DC1A teuerzeichen ? DBF8 38 33 JR C,FINISH DBFA 21 F3A0 SRCH2: LD HL,HXYOFF-1 ;Ende Screen Funct. Table Software DBFD 06 09 LD B,009H ;9 Funktionenad-In erledigt DC31 3A DEA2 LD A,(CONFLG) ;UC1: oder TTY: ? DC34 B7 OR A DC35 2A F388 LD HL,(VECCO2) ;UC1: DC38 28 03 zeichen "APPLE CP/M BIOS" MACRO-80 3.4 01-Dec-80 PAGE 1-8 ; DC0C 11 000B MATCH: LD DE,0000BH ;Offset Hard- zu Software-Tabelle DC0F 19 DC08 10 F5 DJNZ TESTFN ;teste weiter DC0A 18 21 JR FINISH ;nicht gefunden ; ; Ersetzen von Steuer ; DC44 2A DEA5 APPSCR: LD HL,(SCRCUR) DC47 3A DEA7 LD A,(SCRZCH) DC4A 77 LD (HL),A DC4B CD DC6B RET ; ; DCA0 21 FBF4 FUN9: LD HL,0FBF4H ;$FBF4 = 6502 ADVANCE DCA3 C9 RET ; DC7A 79 NOFUN: LD A,C DC7B FE 0D CP 00DH ;Carriage Return DC7D 20 05 JR NZ,NOCR DC7F A LD A,(HL) DC5C 32 DEA7 LD (SCRZCH),A DC5F FE E0 CP 0E0H DC61 38 02 JR C,UP DC63 EE 20 JR CC6502 ; ; DC96 3E FF FUN4: LD A,0FFH ;normal DC98 01 DEFB 001H ; (LD JR Z,NOFUN DC6F 21 DB3B LD HL,C6502 DC72 E5 PUSH HL DC73 21 DCD4 LD HL,FUNTAB-1 ;Einsprung aus Tabelle holen D CALL SCRFUN DC4E 2A F028 LD HL,(BASL) DC51 3A F024 LD A,(CH) DC54 5F LD E,A ;Rechnung Bildschirm-Adres NOCR: OR 080H DC86 FE E0 CP 0E0H DC88 38 04 JR C,UC DC8A 21 F3DD LD HL,0F3DDH ;$F3DD = Maske Upper Case DC8DF XOR A DC80 32 F024 LD (CH),A ;CH = 0 DC83 C9 RET ; DC84 F6 80 XOR 020H ;Upper Case erzeugen DC65 E6 3F UP: AND 03FH DC67 F6 40 OR 040H DC69 77 LD (HL),A BC,..) }berspringt n. Befehl DC99 3E 3F FUN5: LD A,03FH ;inverse DC9B 32 F032 LD (INVFLG),A DC9E E1 FUN7: POP HL DC9F C9 C76 85 ADD A,L DC77 6F LD L,A DC78 6E LD L,(HL) DC79 E9 JP (HL) se DC55 16 F0 LD D,0F0H ;Z80- = 6502 Adresse + $F000 DC57 19 ADD HL,DE DC58 22 DEA5 LD (SCRCUR),HL DC5B 7E AE XOR (HL) ; =020H f}r Gro~/Kleinschreib. DC8E 32 F045 UC: LD (A$ACC),A DC91 21 FDF0 LD HL,0FDF0H ;$FDF0 = 6502 COUT1 DC94 18 79 ; Register B enth{lt Funktions Nr. ; DC6B 78 SCRFUN: LD A,B DC6C B7 OR A DC6D 28 0B DC6A C9 RET "APPLE CP/M BIOS" MACRO-80 3.4 01-Dec-80 PAGE 1-9 ; ; Screen Function Routine ; ; DCA4 AF FUN6: XOR A ;Home Cursor DCA5 6F LD L,A ;CH, CV = 0 DCA6 67 ; DCEA 79 SPREP: LD A,C DCEB 32 F045 LD (A$ACC),A DCEE CD DD5B PREP: CALL SLTDAT DCF1 32 F6 ; DCD5 BA FUNTAB: DEFB LOW (FUN1) ;Function 1 Clear Screen DCD6 B1 DEFB LOW (FUN2) ;Function 2 Clear to End of Page DCD7 B4 DEFBspringt n. Befehl DCB4 2E 9C FUN3: LD L,09CH ;$FC9C = 6502 CLREOL DCB6 01 DEFB 001H ; (LD BC,..) "APPLE CP/M BIOS" MACRO-80 3.4 01-Dec-80 PAGE 1-nications Card ; DCDF CD DD60 WRCOM: CALL SLSTAT DCE2 7E CMWAIT: LD A,(HL) DCE3 E6 02 AND 002H DCE5 DCC9 7C XOK: LD A,H DCCA FE 18 CP 018H ;24 Zeilen DCCC 38 02 JR C,YOK DCCE 26 00 LD LD H,A DCA7 22 F024 LD (CH),HL DCAA 32 F045 BASCAL: LD (A$ACC),A DCAD 21 FBC1 LD HL,0FBC1H ;$FBC1 = 6502 BASCALC DCB0 DEFB LOW (FUN6) ;Function 6 Home Cursor DCDB 9E DEFB LOW (FUN7) ;Function 7 Address Cursor DCDC B7 DEFB LOW (FUN8) ;Function 8 Move Up Cursor DCDD A0 LOW (FUN3) ;Function 3 Clear to End of Line DCD8 96 DEFB LOW (FUN4) ;Function 4 Set Normal DCD9 99 DEFB LOW (FUN5) ;Function 5 Set Inverse DCDA A4 10 DCB7 2E 1A FUN8: LD L,01AH ;$FC1A = 6502 UP DCB9 01 DEFB 001H ; (LD BC,..) DCBA 2E 58 FUN1: LD L,058H ;$FC58 = 6502 HOME DCBC 28 FB JR Z,CMWAIT ;warte auf UART DCE7 2C INC L DCE8 71 LD (HL),C DCE9 C9 RET H,000H DCD0 22 F024 YOK: LD (CH),HL DCD3 18 D5 JR BASCAL ; ; Tabelle Screen Functions C9 RET ; DCB1 2E 42 FUN2: LD L,042H ;$FC42 = 6502 CLREOP DCB3 01 DEFB 001H ; (LD BC,..) }ber DEFB LOW (FUN9) ;Function 9 Non-Destr. Move Forw. DCDE BF DEFB LOW (FUN10) ;Function 10 (Adress Curs.) ; ; Ausgabe CommuC2 7D LD A,L DCC3 FE 28 CP 028H ;40 Spalten DCC5 38 02 JR C,XOK DCC7 2E 00 LD L,000H 26 FC LD H,0FCH DCBE C9 RET ; DCBF 2A DEAA FUN10: LD HL,(CURY) ;kontrolliere auf Schirmfenster DCF8 LD (SLOT),A DCF4 32 F047 LD (A$YREG),A DCF7 3A EFFF LD A,(CLRROM) DCFA CD DAC5 CALL SLTADD DCFD ;JP WRSER Slot 2 Ser. Card ;JP WPRINT Slot 2 Par. Print Card ; DD45 11 0002 READIN: LD DE,00002H ;Slot 2 Reader DD48 LD A,(HL) DD2A C9 RET ; DD2B 11 0001 LSTOUT: LD DE,00001H ;Slot 1 Printer DD2E C3 DD31 Dec-80 PAGE 1-11 DD07 21 F678 LD HL,BYTE ;BYTE ist slotabh{ngig DD0A 19 ADD HL,DE DD0B 71 LD (HL),C DD0C CALL SLTDAT DD3D 71 LD (HL),C DD3E C9 RET1: RET ; DD3F 11 0002 PUNOUT: LD ; ; Eingabe Serial Card ; DD1C CD DCEE RDSER: CALL PREP DD1F 21 C84D LD HL,0C84DH ;$C84 D6 20 SUB 020H DCFF 32 F046 LD (A$XREG),A ;High-Byte Slot 6502 DD02 7E LD A,(HL) DD03 C9 RET ;JP WRSER Slot 1 Ser. Card ; DD31 CD DAC5 WPRINT: CALL SLTADD DD34 2E C1 LD L,0C1H ;$E9C1 = Status-A JP WPRINT ; Slot 1 Par. Print Card ;JP RET1 initial ;JP WRCOM Slot 1 Com. Card 21 C9AA LD HL,0C9AAH ;$C9AA = 6502 Write Serial Card DD0F C3 DB3B CC6502: JP C6502 ; ; Eingabe Communications Card DE,00002H ;Slot 2 Punch DD42 C3 DCDF JP WRCOM ; Slot 2 Com. Card ;JP RET1 initial D = 6502 Read Serial Card DD22 CD DB3B CALL C6502 DD25 21 F678 LD HL,BYTE ;BYTE slotabh{ngig DD28 19 ADD HL,DE DD29 7E ; ; Ausgabe Serial Card ; DD04 CD DCEA WRSER: CALL SPREP "APPLE CP/M BIOS" MACRO-80 3.4 01-dresse Printer DD36 7E PWAIT: LD A,(HL) DD37 17 RLA DD38 38 FC JR C,PWAIT ;warte auf Printer ready DD3A CD DD5B JR NC,RCWAIT ;warte auf UART DD19 2C INC L DD1A 7E LD A,(HL) DD1B C9 RET ; DD12 CD DD60 RDCOM: CALL SLSTAT DD15 7E RCWAIT: LD A,(HL) DD16 1F RRA DD17 30 FC C3 DD12 JP RDCOM ; Slot 2 Com. Card ;LD A,01AH; RET, wenn kein Input ;JP RDSER Sl DD92 C9 RET ; ; Disk Block/Deblock-Routinen ; vergleiche auch CP/M Alteration Guide SELDSK: LD DE,OLDDRV DD70 21 0004 LD HL,CDISK DD73 3A F3B8 LD A,(DSKCNT) DD76 3D DEC A DD77 B9 JR NZ,NOTWR DD51 32 DEAF LD (HSTACT),A DD54 0E 00 NOTWR: LD C,000H DD56 79 SETTRK: LD A,C DD57 32 DEA8 LD (HL),A DD86 2E 00 LD L,000H ;HL = 0000 DD88 C9 RET ; DD89 79 SETSEC: ADD A,A DD67 87 ADD A,A DD68 F5 PUSH AF DD69 85 ADD A,L DD6A 6F ot 2 Ser. Card ;JP 0000H initial ; ; DISK - Routinen ; =============== DD7C 13 INC DE DD7D 79 LD A,C DD7E 12 LD (DE),A DD7F 21 DA33 LD HL,DPE0 CP C ;Drive-Nummer erlaubt ? DD78 38 0A JR C,DSKERR DD7A 7E LD A,(HL) DD7B 12 LD (DE),A LD (IOTRK),A DD5A C9 RET ; ; Berechnung slotabh{ngiger Adressen ; LD A,C DD8A 32 DEA9 LD (IOSEC),A DD8D C9 RET ; DD8E ED 43 DEB8 SETDMA: LD (IOBUF),BC LD L,A DD6B F1 POP AF ;Akku = 16 * E DD6C C9 RET ; DD6D 11 DEAC ; "APPLE CP/M BIOS" MACRO-80 3.4 01-Dec-80 PAGE 1-12 DD4B 3A DEB0 HOME: LD A,(HOSTWR) DD4E B7 OR A DD4F 20 03 ;HL zeigt auf Disk Param. Header DD82 18 E0 JR SLT2 ; DD84 1A DSKERR: LD A,(DE) ;Fehler: Drive nicht vorhanden DD85 77 SLSTAT: LD HL,0E08EH DD63 7B SLT1: LD A,E DD64 87 SLT2: ADD A,A DD65 87 ADD A,A DD66 87 HL = Basis + 16 * E-Reg. ; DD5B 21 E080 SLTDAT: LD HL,0E080H DD5E 18 03 JR SLT1 ; DD60 21 E08E ; "APPLE CP/M BIOS" MACRO-80 3.4 01-Dec-80 PAGE 1-13 ; CP/M BDOS 1K Bl|cke ; CP/M BIOS 128 Bytes records A,(IOSEC) DDD8 BC CP H ;gleicher Sektor, gleicher Track ? DDD9 20 11 JR NZ,ALLOC "APPLE CP/M BIOS" MACRO-80 3.4 01-Dec-80 PAGE 1-14 ;Write unallocated? erster Sektor DDAC 20 0F JR NZ,CHKUNA DDAE 2E 08 LD L,008H ;1 K / 128 Bytes DDB0 3A DEAD LD A,(NEWDRV) DDB3 vorher Lesen der zweiten H{lfte ; der 256 Byte Disk-Buffers n|tig. ; DD93 AF READ: XOR A DD94 32 DEB4 LD DSK DDC9 BE CP (HL) ;gleicher Drive ? DDCA 20 20 JR NZ,ALLOC ; DDCC 3A DEA8 LD A,(IOTRK) ;ja, gctor write ; C = 1 directory write ; C = 2 first sector write, unallocated ; DDA3 61 WRITE: LD H,C ; Apple Drive 256 Bytes Sektoren ; ; Bei Read Kontrolle, ob unmittelbar vorher schon ; entsprechenden Apple-Drive Sektor geleDDBD 21 DEB4 CHKUNA: LD HL,UNACNT ;Check unallocated DDC0 7E LD A,(HL) DDC1 B7 OR A ;noch Sektoren unallocated? DDC2 28 28 67 LD H,A DDB4 22 DEB4 LD (UNACNT),HL DDB7 2A DEA8 LD HL,(IOTRK) DDBA 22 DEB6 LD (UNATRK),HL (UNACNT),A DD97 3E 02 LD A,002H DD99 21 DEB1 LD HL,READOP DD9C 77 LD (HL),A ;READOP = 2, read DD9D 23 leicher Drive DDCF 2A DEB6 LD HL,(UNATRK) DDD2 BD CP L DDD3 20 17 JR NZ,ALLOC DDD5 3A DEA9 LD DDA4 2E 00 LD L,000H DDA6 22 DEB1 LD (READOP),HL DDA9 79 LD A,C DDAA FE 02 CP 002H sen. Dann nicht ; noch einmal lesen. Vor dem Lesen Kontrolle, ob Disk- ; Buffer erst noch geschrieben werden mu~. ; Bei Write Kontrolle, ob JR Z,ALLOC DDC4 35 DEC (HL) ;UNACNT - 1 DDC5 3A DEAD LD A,(NEWDRV) DDC8 23 INC HL ;UNA;RSFLAG = 2, read DDA1 18 4F JR RWOPER ; ; Write: BDOS-Information in C-Register: ; C = 0 normal se INC HL DD9E 77 LD (HL),A ;WRTYPE = 2, unallocated DD9F 23 INC HL DDA0 77 LD (HL),A DDDB 24 INC H DDDC 7C LD A,H DDDD D6 20 SUB 020H DDDF 38 02 JR C,NOOVF 1-15 DE31 87 ADD A,A DE32 87 ADD A,A DE33 87 ADD A,A DE34 2F CPL JR NZ,NOMTCH DE0D 2A F3E0 LD HL,(PHTS) DE10 3A DEA8 LD A,(IOTRK) DE13 BD CP L ;gleicher Track ? DE14 20 04 ; DDEC 21 0001 ALLOC: LD HL,00001H ;nicht unallocated, Read n|tig DDEF 22 DEB3 LD (RSFLAG),HL ;RSFLAG = 1 ,UNACNT = 0 ; DE27 47 LD B,A DE28 E6 01 AND 001H DE2A 3C INC A DE2B 32 F3E4 LD (DRV12),A Host aktiv Flag = 1 DE03 B7 OR A ;war schon vorher aktiv ? DE04 28 1B JR Z,FILHST ;wenn nein, Buffer f}llen ; DE06 2A DEAD ; DDE1 67 LD H,A ;Overflow auf n{chsten Track DDE2 2C INC L ;Sektor = 0, Track + 1 DDE3 22 DEB6 N ; DE1A 3A DEB0 NOMTCH: LD A,(HOSTWR) DE1D B7 OR A DE1E C4 DE73 CALL NZ,WRTHST JR NZ,NOMTCH DE16 79 LD A,C DE17 BC CP H ;gleicher Sektor ? DE18 28 33 JR Z,DMATCH ; gemeinsamer Code f}r Read / Write ; DDF2 CD DFF0 RWOPER: CALL PATCH2 DDF5 5F LD E,A DDF6 1F ;Drive A: ... F: in Drive 1/2 DE2E 78 LD A,B ;und Slot #6, #5, #4 rechnen DE2F E6 0E AND 00EH "APPLE CP/M BIOS" MACRO-80 3.4 01-Dec-80 PAGE LD HL,(NEWDRV) ;Host Buffer war aktiv DE09 7D LD A,L DE0A BC CP H ;gleicher Drive ? DE0B 20 0D OOVF: LD (UNATRK),HL DDE6 AF XOR A DDE7 32 DEB3 LD (RSFLAG),A ;Read nicht n|tig DDEA 18 06 JR RWOPER ; ; 256 Byte - Disk-Buffer f}llen ; DE21 3A DEAD FILHST: LD A,(NEWDRV) DE24 32 DEAE LD (HSTDSK),A DFC 4E LD C,(HL) DDFD 21 DEAF LD HL,HSTACT DE00 7E LD A,(HL) DE01 36 01 LD (HL),001H ; RRA ;rechne Host sektor DDF7 21 DE92 LD HL,INTTAB DDFA 85 ADD A,L DDFB 6F LD L,A D DE35 C6 61 ADD A,061H DE37 32 F3E6 LD (DSKSLT),A DE3A 3A DEA8 LD A,(IOTRK) DE3D 6F LD ; DE92 00 09 03 0C INTTAB: DEFB 00H,09H,03H,0CH DE96 06 0F 01 0A DEFB 06H,0FH,01H,0AH DE9A 04 0D 07 08 DEFB 04H,0DH,07H,08H ; ; Read / Write tats{chlich ausf}hren ; DE73 AF WRTHST: XOR A DE74 32 DEB0 LD (HOSTWR), ; ; Buffer kopieren ; DE4D 7B DMATCH: LD A,E DE4E 21 F800 LD HL,0F800H ;0F800H ;Write Protect Error ? DE8D C0 RET NZ DE8E 2A CC0D LD HL,(BDERR) ;ja, dann Sprung CCP Boot DE91 E9 JP (HL) "APPLEd Quelle DE66 ED B0 RWMOVE: LDIR ;Buffer kopieren DE68 3A DEB2 LD A,(WRTYPE) DE6B 1F RRA DE6C 3E 00 L,A DE3E 61 LD H,C DE3F 22 F3E0 LD (PHTS),HL DE42 3A DEB3 LD A,(RSFLAG) ;Read n|tig ? DE45 B7 (RDWR),A DE7F 21 0E03 LD HL,00E03H ;$0E03 = 6502 Disk Read/Write DE82 CD DB3B CALL C6502 DE85 3A F3EA LD A,(DERR) DE88 B7 A DE77 3E 02 LD A,002H DE79 21 DEFB 021H ;(LD HL,...) DE7A 3E 01 REDHST: LD A,001H DE7C 32 F3EB LD = BUF1 DE51 1F RRA ;erste oder zweite H{lfte ? DE52 CB 1D RR L ;HL = 0F800H oder 0F880H DE54 ED 5B DEB8 LD DE,(IOBUF) CP/M BIOS" MACRO-80 3.4 01-Dec-80 PAGE 1-16 ; ; Sector Interleave Tabelle ; Interleave geht }ber zwei Tabellen ! LD A,000H DE6E D0 RET NC DE6F CD DE73 CALL WRTHST ;Directory Write DE72 C9 RET OR A DE46 C4 DE7A CALL NZ,REDHST DE49 AF XOR A DE4A 32 DEB0 LD (HOSTWR),A ;kein Write n|tig OR A DE89 C8 RET Z ;Z = kein Fehler DE8A D1 POP DE DE8B FE 10 CP 010H NZ,RWMOVE ;welche Richtung ? DE61 3C INC A ; = 1 DE62 32 DEB0 LD (HOSTWR),A DE65 EB EX DE,HL ;tausche Ziel un DE58 01 0080 LD BC,00080H ;DMA - Buffer L{nge DE5B 3A DEB1 LD A,(READOP) DE5E B7 OR A DE5F 20 05 JR DE9E 02 0B 05 0E DEFB 02H,0BH,05H,0EH ; DEA2 FF CONFLG: DEFB 0FFH ;$00 f}r UC1:, $FF f}r TTY:,CRT: DEA3 00 CNTFLG: DEFB 00 DFF4 C9 RET ; ; Vektoren f}r NMI, RESET, INTERRUPT 6502 ; bei Language Card Adressen $F ALV0: DS 16 ;Allocation Vector, Disk Belegung DF4A ALV1: DS 16 DF5A ALV2: DS 16 DF6A ALV3: DS 16 tes ! DEAA 01 CURY: DEFB 001H ;Cursor Y DEAB 3E CURX: DEFB 03EH ;Cursor X DEAC 00 OLDDRV: DEFB 000H ;old Drive Nummer DEAD 00 C6502 ;Z{hler f}r CCP-Eingabe Buffer DFEB AF XOR A ;wird auf Null gesetzt "APPLE CP/M BIOS" MACRO-80 3.4 01-Dec-80 PAGE 1-17 DFEC 32 C407 LD UNATRK: DEFB 00AH ;letzter unalloc. Track DEB7 14 UNASEC: DEFB 014H ;letzter unalloc. Sector DEB8 0080 IOBUF: DW 0080H ;Buffer f}r Disk 0H ;$00 normal,$01,$02 noch 1,2 Zch DEA4 00 LDINFL: DEFB 000H ;$00 normal, $80 Lead-In DEA5 A7 SCRCUR: DEFB 0A7H ;Cursor DEA6 DE DEFB 0DSV1: DS 12 DFB2 CSV2: DS 12 DFBE CSV3: DS 12 DFCA CSV4: DS 12 DFD6 CSV5: DS 12 DF7A ALV4: DS 16 DF8A ALV5: DS 16 DF9A CSV0: DS 12 ;Check Vector, Test Diskettenwechs. DFA6 C NEWDRV: DEFB 000H ;new Drive Nummer DEAE 00 HSTDSK: DEFB 000H ;Host Disk number DEAF 01 HSTACT: DEFB 001H ;Host aktiv Flag DEB0 00 (BUFCNT),A DFEF C9 RET ; DFF0 3A DEA9 PATCH2: LD A,(IOSEC) DFF3 B7 OR A ;Carry = 0 ; ; Buffer f}r BDOS ; DEBA DIRBUF: DS 128 ;Directory Buffer ; DF3A EH ; DEA7 00 SCRZCH: DEFB 000H ;Zwischenspeicher Zeichen DEA8 0A IOTRK: DEFB 00AH ;Track DEA9 01 IOSEC: DEFB 001H ;Sector zu 128 By ; IF (MSIZE EQ 56) ; ORG START+05E8H ; DFE8 CD DB3B PATCH1: CALL RSFLAG: DEFB 002H ;Read Sector Flag DEB4 00 UNACNT: DEFB 000H ;unallocated Sector count DEB5 00 UNADSK: DEFB 000H ;letzte unalloc. Disk DEB6 0A HOSTWR: DEFB 000H ;Host written Flag DEB1 02 READOP: DEFB 002H ;2 bei Read Operation DEB2 02 WRTYPE: DEFB 002H ;Type Write Operation 0,1,2 DEB3 02 FFA-$FFFF ; ORG START+05FAH ; DFFA 03C0 DEFW Z80ST DFFC 03C0 DEFW Z80ST (LSTOUT+4),HL DEF2 1E 80 LD E,080H ; ????? ; DEF4 3A F3BA SLOT2: LD A,(SLTTAB+1) ;Slot 2 }berpr}fen DEF7 D6 03 SU LD A,(SLTTAB+2) ;Slot 3 }berpr}fen DEC2 FE 05 CP 005H ; <5 ? 3=Com.Card, 4=Ser.Card DEC4 30 1F JR NC,SLOT1 DEC6 D6 03 PATCH1: CALL C6502 XOR A LD (BUFCNT),A ;Z{hler CCP-Eingabe-Buffer RET ;auf Null setz LD A,003H DEE2 32 DAFD LD (DIRP+1),A ;Directory Breite ; DEE5 3A F3B9 SLOT1: LD A,(SLTTAB) ;Slot 1 }berpr}fen DEE8 D6 03 B0 3E 95 LD A,095H ;LST=LPT,PUN=PTP,RDR=PTR,CON=CRT DEB2 32 0003 LD (IOBYTE),A DEB5 2A F3DE LD HL,(0F3DEH) ;Z80 Switch kopieren DEB8 2 DFFE 03C0 DEFW Z80ST ; ELSE ; ORG START+05FF0H 0H);RRA DECF 22 DB0E LD (KEYBST+2),HL ;fuer Comcard DED2 F5 SLOT3: PUSH AF DED3 CD DF59 CALL WRPAT DED6 F1 SUB 003H ; >=3 ? DEC8 38 1B JR C,SLOT1 DECA 20 06 JR NZ,SLOT3 DECC 21 1FB0 LD HL,01FB0H ;Patch LD A,(E0Ben ; ENDIF PAGE "APPLE CP/M BIOS" MACRO-80 3.4 01-Dec-80 PAGE 1-18 SUB 003H ;3=Com.Card, 4=Ser.Card, 5=Par. DEEA 38 08 JR C,SLOT2 DEEC CD DF59 CALL WRPAT DEEF 22 DD2F LD 2 DB3F LD (C6502+4),HL DEBB AF XOR A DEBC 32 0004 LD (CDISK),A ;current Disk = A: ; DEBF 3A F3BB ; PATCH2: LD A,(IOSEC) OR A ;Carry = 0 RET ; POP AF DED7 22 DC42 LD (COEXT+4),HL DEDA CD DF54 CALL RDPAT DEDD 22 DB2D LD (CIEXT+4),HL DEE0 3E 03 START+04A8H ; DEA8 31 0100 STRTUP: LD SP,00100H DEAB 3E C9 LD A,0C9H ;RET DEAD 32 DA00 LD (START),A DE ; ; Startup - Routine ; System wird je nach den best}ckten Slots ver{ndert ; ORGB 003H ;3=Com.Card, 4=Ser.Card, 5=Par. DEF9 38 14 JR C,NOINP ; >=3 ? DEFB F5 PUSH AF DEFC CD DF59 CALL WRPAT LD L,A DF63 C9 RET ; DF64 B7 OUTP: OR A DF65 F2 DF70 JP P,OUTP1 DF3E B7 OR A DF3F CA DADB JP Z,WBOOT1 DF42 E5 PUSH HL DF43 CD DB42 CALL CO ; DF0F 21 1A3E NOINP: LD HL,01A3EH ;LD A,01EH Ctrl-Z "APPLE CP/M BIOS" MACRO-80 3.4 01-Dec-80 PAGE 1-19 DF12 22 DD48 LD (READIN+3),HL DF15 ; DF59 21 DF4A WRPAT: LD HL,WRVECT DF5C 87 PAT: ADD A,A DF5D 85 ADD A,L DF5E 6F STARTM: CALL INICRD DF2E 3A F398 LD A,(SFLDIN+1) ;Clear Screen DF31 CD DF64 CALL OUTP DF34 3A F39B LD A,(SFLDIN+4) ;Set DEFF 22 DD43 LD (PUNOUT+4),HL DF02 F1 POP AF DF03 FE 02 CP 002H ;bei Parallel Card kein Input ! DF05 30 08 ; DF4A DCDF WRVECT: DEFW WRCOM DF4C DD04 DEFW WRSER DF4E DD31 DEFW WPRINT DF50 DD12 RDVECT: DEFW RD DF46 E1 POP HL DF47 23 INC HL DF48 18 F3 JR LOOP ; 3E C9 LD A,0C9H ;RET DF17 32 DD4A LD (READIN+5),A ; DF1A 3A F381 KOPVEC: LD A,(VECCOS+1) ;wenn Vektoren noch nicht da LD L,A DF5F 7E LD A,(HL) DF60 2C INC L DF61 66 LD H,(HL) DF62 6F Normal DF37 3A DF64 LD A,(OUTP) ;gepacht, war wohl CALL OUTP DF3A 21 DF73 LD HL,MSG DF3D 7E LOOP: LD A,(HL) ;Start-Meldung ausgeben JR NC,NOINP DF07 CD DF54 CALL RDPAT DF0A 22 DD49 LD (READIN+4),HL DF0D 18 0B JR KOPVEC COM DF52 DD1C DEFW RDSER ; DF54 21 DF50 RDPAT: LD HL,RDVECT DF57 18 03 JR PAT 380 LD DE,VECCOS DF26 01 0016 LD BC,00016H DF29 ED B0 LDIR ;Vektoren kopieren ; DF2B CD DAA2 DF1D B7 OR A ;sind, kopieren, sonst Start- DF1E 20 0B JR NZ,STARTM ;Meldung DF20 21 DFAE LD HL,VECTOR DF23 11 F ;Lead In noetig DF68 F5 PUSH AF DF69 3A F397 LD A,(SFLDIN) DF6C CD DB42 CALL CO DF6F F1 PO ; F35E 3A F3BB TTYCO: LD A,(SLTTAB+2) ;Slottabelle Slot 2 F361 FE 03 CP 03H ;ist Com. Card ? F363 C2 DC3E JP NZ,COEXT F366 3A E DFC4 DB42 DEFW CO PAGE "APPLE CP/M BIOS" MACRO-80 3.4 01-Dec-80 PAGE 1-21 DEFB 00DH,00AH DF88 35 36 DEFB MSIZE/10+'0',MSIZE MOD 10+'0' ;initial 44 DF8A 4B 20 56 65 JP NZ,KEYBST F352 3A E0BE LD A,(0E0BEH) ;0E0BEH Status Com. Card F355 1F RRA F356 9F SBC A,A F357 C9 RET DC3E DEFW COEXT DFB6 DC3E DEFW COEXT DFB8 DD45 DEFW READIN DFBA DD45 DEFW READIN P AF DF70 C3 DB42 OUTP1: JP CO ; DF73 0D 0A 0D 0A MSG: DEFB 00DH,00AH,00DH,00AH,00DH,00AH "APPLE CP/M BIOS" MACRO-80 3.4 01-De F200 DS 128 ;reserviert f}r LST-Device F280 DS 128 ;reserviert f}r PUN/RDR-Device F300 DS 74 ;reservie ; ; ; I/O-Treiber Routinen ; ORG 0F200H ; DEFB 'K Ver. 2.20B' DF8E 72 2E 20 32 DF92 2E 32 30 42 DF96 0D 0A DEFB 00DH,00AH DF98 28 43 29 20 DEFB '(C) 1980 Microsoft' ; ; F358 CD DB29 TTYCI: CALL CIEXT F35B E6 7F AND 07FH F35D C9 RET ; DFBC DD3F DEFW PUNOUT DFBE DD3F DEFW PUNOUT DFC0 DD2B DEFW LSTOUT DFC2 DD2B DEFW LSTOUT c-80 PAGE 1-20 DF77 0D 0A DF79 41 70 70 6C DEFB 'Apple ][ CP/M' DF7D 65 20 5D 5B DF81 20 43 50 2F DF85 4D DF86 0D 0A rt f}r TTY-Device ; F34A 3A F3BB TTYCS: LD A,(SLTTAB+2) ;0F3BBH = Slottabelle Slot 3 F34D FE 03 CP 03H ;ist Com. Card ? F34F C2 DB0C 000H ; DFAE DB0C VECTOR: DEFW KEYBST DFB0 DB12 DEFW CONIN DFB2 DB12 DEFW CONIN DFB4 DF9C 31 39 38 30 DFA0 20 4D 69 63 DFA4 72 6F 73 6F DFA8 66 74 DFAA 0D 0A 0A DEFB 00DH,00AH,00AH DFAD 00 DEFB 0BE WART: LD A,(0E0BEH) ;Status Com. Card F369 E6 02 AND 02H F36B 28 F9 JR Z,WART ;warte auf UART F36D 79 LD A,C F36E 32 ;US F3AB 1C DEFB 01CH ;Ctrl-\ ; ; Character Umcodier-Tabelle ; F3AC 00 7F ;Ctrl-K Clear to End of Page F39A 1D DEFB 01DH ;Ctrl-] Clear to End of Line F39B 0E DEFB 00EH ;Ctrl-N Set Normal F39C 0F DEFB 00 DEFB 060H ;RET ; ; I/O Vektoren ; F380 F34A VECCOS: DW TTYCS ;Status F382 B 00CH ;Ctrl-L F3A4 0B DEFB 00BH ;Ctrl-K F3A5 1D DEFB 01DH ;Ctrl-] F3A6 0E DEFB 00EH ;Ctrl-N F3A7 0F ; ; Character Table ; Software Screen Functions ; F396 A0 SXYOFF: DEFB 0A0H F045 LD (A$ACC),A F371 21 037C LD HL,037CH ;6502 Routine -> 0F37CH Z80 F374 22 F3D0 LD (A$VEC),HL F377 2A F3DE LD HL,(0F3DEH) ;Z80SW DEFB 01FH ;US Move Cursor Up one line F3A0 1C DEFB 01CH ;Ctrl-\ Cursor Move Forward nond. ; ; Hardware Screen Functions FH ;Ctrl-O Set Inverse ( High-Lite ) F39D 19 DEFB 019H ;Ctrl-Y Home Cursor F39E 1E DEFB 01EH ;Ctrl-~ Adress Cursor F39F 1F F358 VECCI1: DW TTYCI ;TTY: F384 DB29 VECCI2: DW CIEXT ;UC1: F386 F35E VECCO1: DW TTYCO ;TTY: F388 DC3E VECCO2: DW COEXT DEFB 00FH ;Ctrl-O F3A8 19 DEFB 019H ;Ctrl-Y F3A9 1E DEFB 01EH ;Ctrl-~ F3AA 1F DEFB 01FH ;Offset 020H, erst x, dann y F397 00 SFLDIN: DEFB 000H ;kein Lead-In-Zeichen F398 0C DEFB 00CH ;Ctrl-L Clear Screen F399 0B DEFB 00BH F37A 77 LD (HL),A ;6502 Routine aufrufen F37B C9 RET ; F37C 8D BF C0 DEFB 08DH,0BFH,0C0H ;STA $C0BF F37F 60 ; F3A1 A0 HXYOFF: DEFB 0A0H ;Offset 020H, erst x , dann y F3A2 00 HFLDIN: DEFB 000H ;kein Lead-In-Zeichen F3A3 0C DEF VECPU2: DW PUNOUT ;UP1:,UP2: F392 DD2B VECLI1: DW LSTOUT ;LPT: "APPLE CP/M BIOS" MACRO-80 3.4 01-Dec-80 PAGE 1-22 F394 DD2B VECLI2: DW LSTOUT ;UL1: ;UC1: F38A DD45 VECRE1: DW READIN ;PTR: F38C DD45 VECRE2: DW READIN ;UR1:,UR2: F38E DD3F VECPU1: DW PUNOUT ;PTP: F390 DD3F CHRRED: DEFB 000H,07FH ;NUL -> DEL F3AE 15 09 DEFB 015H,009H ;NAK -> Ctrl-I F3B0 FF FF DEFB 0FFH,0FFH ;Tabellenende High-Bit gesetzt F3B2 FF FF REDHST DE7A RET1 DD3E RSFLAG DEB3 RWMOVE DE66 RWOPER DDF2 SCRCUR DEA5 SCRFUN DC6B SCRZCH DEA7 SEARCH DBF5 SELDSK DD6D SETDMA DD8E SETSEC DD89 SETTRK DD56 SFLDIN F397 SLOT F6F8 SLOT1 DEE5 SL DB12 CONINP DB50 CONOUT DB43 CONST DB08 COUT DBDD CSV0 DF9A CSV1 DFA6 CSV2 DFB2 CSV3 DFBE CSV4 DFCA CSV5 DFD6 CURX DEAB CURY DEAA DERR F3EA DIRBUF DEBA DIRP DAFC DMATCH D ;Slot 1 Parallel Printer Interf. F3BA 03 DEFB 003H ;Slot 2 Communications Card F3BB 04 DEFB 004H ;Slot 3 80 Zeichen-Karte (Serial) F3BC 00 DAB5 NOCR DC84 NOFUN DC7A NOINP DF0F NOLEAD DC23 NOMTCH DE1A NOOVF DDE3 NOSER DAC1 NOSWAP DBCF NOTAVL DC07 NOTWR DD54 OLDDRV DEAC OUTP DF64 OUTP1 DF70 PAT DF5C PATCH1 DFE8 PATCH2 DF APPKBD E000 APPKST E010 APPSCR DC44 BASCAL DCAA BASL F028 BDERR CC0D BDOS 0005 BDOSST 0006 BDST CC06 BIAS 9000 BIOS DA00 BOOT 0000 BOOTST 0001 BUFCNT C407 BYTE F678 C6502 DB3B C DEFB 0FFH,0FFH F3B4 FF FF DEFB 0FFH,0FFH F3B6 FF FF DEFB 0FFH,0FFH ;6 Umcodierungen ; F3B8 02 DSKCNT: DEFB 002H FUN7 DC9E FUN8 DCB7 FUN9 DCA0 FUNTAB DCD5 HFLDIN F3A2 HOME DD4B HOSTWR DEB0 HSTACT DEAF HSTDSK DEAE HXYOFF F3A1 INICRD DAA2 INTTAB DE92 INVFLG F032 IOBUF DEB8 IOBYTE 0003 IOSEC DEA9 IOE4D DPB DA93 DPE0 DA33 DRV12 F3E4 DSKCNT F3B8 DSKERR DD84 DSKSLT F3E6 ENDKEY DB27 FILHST DE21 FINISH DC2D FUN1 DCBA FUN10 DCBF FUN2 DCB1 FUN3 DCB4 FUN4 DC96 FUN5 DC99 FUN6 DCA4 DEFB 000H ;Slot 4 Z80-Card (nicht erkannt) F3BD 01 DEFB 001H ;Slot 5 unbekannte Karte F3BE 02 DEFB 002H ;Slot 6 Apple Disk II Contr. F3BF F0 PHTS F3E0 PREP DCEE PUNCH DB75 PUNOUT DD3F PWAIT DD36 RCWAIT DD15 RDCOM DD12 RDPAT DF54 RDSER DD1C RDVECT DF50 RDWR F3EB READ DD93 READ1 DB62 READER DB87 READIN DD45 READOP DEB1 BASE C400 CC6502 DD0F CCPDIR C8B2 CDISK 0004 CH F024 CHKUNA DDBD CHRRED F3AC CI1 DB5E CIEXT DB29 CLRROM EFFF CMWAIT DCE2 CNTFLG DEA3 CO DB42 COEXT DC3E CON DB97 CONFLG DEA2 CONIN ;Zahl der vorhandenen Laufwerke ; ; Slotbelegungstabelle ( siehe Softcard Dokument. ) ; F3B9 05 SLTTAB: DEFB 005H TRK DEA8 JMPHL DB65 JPHL1 DC3D KEYBIN DB2F KEYBST DB0C KOPVEC DF1A LDINFL DEA4 LIST DB66 LIST1 DB4C LOOP DF3D LSTOUT DD2B MATCH DC0C MSG DF73 MSIZE 0038 NEWDRV DEAD NOCH1 DBB8 NOCOM CP/M BIOS" MACRO-80 3.4 01-Dec-80 PAGE S Macros: Symbols: A$ACC F045 A$VEC F3D0 A$XREG F046 A$YREG F047 ALLOC DDEC ALV0 DF3A ALV1 DF4A ALV2 DF5A ALV3 DF6A ALV4 DF7A ALV5 DF8A 00 DEFB 000H ;Slot 7 keine Karte erkannt ; ; END "APPLE OT2 DEF4 SLOT3 DED2 SLSTAT DD60 SLT1 DD63 SLT2 DD64 SLTADD DAC5 SLTDAT DD5B SLTTAB F3B9 SPREP DCEA SRCH2 DBFA START DA00 STARTM DF2B STRTUP DEA8 SUBOF2 DBB3 SUBOFF DBB1 SXYOFF F396 TCONT +'$autor' TO mem ENDIF IF !(cond)='S' STORE "'"+term+"'"+'$stichwort' to mem ENDIF LOCATE FOR &mem STORE 'X' TO antwort DO WHILAUSGABE VON LITERATUR-TITELN' @ 3,15 SAY '-----------------------------------' @ 6,15 SAY 'A)usdruck gew}nscht?' @ 8,15 SAY 'D)atei auf DISK ausgeben?' @ 12,15 SAY 'T)ITEL-ANZEIGE' @ 15,15 SAY 'R)}ckkehr zum Hauptmen}' ? WAIT TO WRITE DDA3 WRPAT DF59 WRSER DD04 WRTHST DE73 WRTYPE DEB2 WRVECT DF4A XOK DCC9 XY DBBD YOK DCD0 Z80CRD E400 "APPLE CP/M BIOS" MACRO-80 3.4 01-Dec-80 PAGE S-1 Z80ST 03C0 tmen}' ? SET CONSOLE OFF WAIT TO choice SET CONSOLE ON DO CASE CASE !(choice)='I' ERASE ? ACCEPT "Suche nach A)utor oder S DBE0 TESTFN DBFF TSTKEY DB1B TTY DB96 TTYCI F358 TTYCO F35E TTYCS F34A TXTSET E051 UC DC8E UNACNT DEB4 UNADSK DEB5 UNASEC DEB7 UNATRK DEB6 UP DC65 VECCI1 F382 VECCI2 F384 VECCO1 F310,10 SAY ' *** DISK IN DRIVE '+D-' EINGELEGT? ***' @ 11,10 SAY ' BELIEBIGE TASTE DR]CKEN ' ? SET CONSOLE OFF WAIT SET CONSOLE ON SET ALTERNATE TO &D&litlist STORE T TO date wahl DO CASE CASE !(wahl)='R' RETURN CASE !(wahl)='A' STORE T TO print CASE !(wahl)='D' ERASE ? ACCEPT 'AUF WELCHEN DRIVE SOLL DER FILE GESCHRIEBEN WERDEN? (A:,B:,P:)' TO D @ No Fatal error(s) YOK DCD0 Z80CRD E400 "APPLE CP/M BIOS" MACRO-80 3.4 01-Dec-80 PAGE S-1 Z80ST 03C0 )tichwort?" TO cond ? ACCEPT "Bitte Suchbegriff angeben" TO term IF term= ' ' RETURN ENDIF IF !(cond)='A' STORE "'"+term+"'"USE titel SET PRINT OFF SET TALK OFF STORE F to print STORE F TO datei STORE T TO ww * Literatur-Datenbank: Ausgabeteil. Alle Rechte bei Klaus-Henning * Hansen, Wilhelmshavener Stra~e 3, 23 Kiel 1, 1.11.1983 DO WHILE ww ERASE @ 2,15 SAY ' 86 VECCO2 F388 VECCOS F380 VECLI1 F392 VECLI2 F394 VECPU1 F38E VECPU2 F390 VECRE1 F38A VECRE2 F38C VECTOR DFAE WART F366 WBOOT DACC WBOOT1 DADB WBOOTE DA03 WEITER DAA5 WPRINT DD31 WRCOM DCDF i CASE !(wahl)='T' ERASE @ 2,15 SAY 'AUSGABE-BEDINGUNG' @ 5,15 SAY 'I)ndiziert (Autor oder Schlagwort)' @ 7,15 SAY 'S)equentiell nach Record #' @ 9,15 SAY 'R)}ckkehr zum HaupE antwort <> ' ' DO WHILE EOF ERASE @ 8,5 say 'Autor oder Stichwort nicht gefunden' @ 10,5 say 'Neue Eingabe oder mit RETURN abbrechen' ? TO babt STORE(TRIM(zeits)+', '+TRIM(jg)+', '+TRIM(jahr)+', '+TRIM(heft)+', '+TRIM(s)); TO zjhv ? IF btitel <> ' ' ? a ?? t ?? babt ?? ovj ENDIF IF zeits <> ' ' ? a ?? t ?? zjhv ENDIF IF btitel = ' ' .AND. zeits = ' ' SKIP ENDIF IF !(antwort)='Z' SKIP-1 ENDIF IF !(antwort)='A' RETURN ENDIF CASE ENDIF LOCATE FOR &mem ENDDO ERASE ? ? 'Gezeigt wird Titel # ' ?? # ? '__________________ ELSE GO TOP ENDIF IF print SET PRINT ON ENDIF IF datei SET ALTERNATE ON SET ALTERNATE OFF SET PRINT OFF @ 16,5 say ' Ist das der gesuchte Titel?' @ 18,5 say 'Wenn ja, RETURN dr}cken f}r neue Suche, sonst:' @ 20,5 say 'Z)ur}ckbl{ttern V)orw{rts ACCEPT "Suche nach A)utor oder S)tichwort?" TO cond IF cond= ' ' RETURN ENDIF ? ACCEPT "Neuen Suchbegriff eingAN, IN WELCHEM' ? 'BEREICH ANGEZEIGT WERDEN SOLL:' ? ? ' (Mit RETURN vorgegebene Werte }bernehmen!)' ? STORE 1 TO FIRST STORE VAL(LAST) TO LST!(choice)='S' GO BOTTOM STORE STR(#,5) TO LAST ? ? 'DIE LITERATUR-DATENBASIS HAT'- LAST +' EINTRAGUNGEN. SIE WERDEN IN GRUPPEN' ? 'ZU 6 RECORDS AUF DEM BILDSCHIRM ANGEZEIGT. GEBEN SIE BITTE _____________________; ________________________________________' ? IF datei SET ALTERNATE ON ENDIF IF print SET PRINT ON ENDIF DO WHILE lst+1 > # .AND. .NOT. EOF STORE (TRIM(autor)+': ') TO a STORE (TRIM(titel)+'. ') TO t STORE (TRIM(ort)+': '+TRIM(verlag)+', '+TRIM(jahr)+'.') TO ovj STORE ('In: '+TRIM(bautor)+', '+TRIM(btitel)+', '+TRIM(s)+', ') bl{ttern W)eiter suchen oder A)brechen ' ? WAIT TO antwort IF !(antwort)='W' CONTINUE ENDIF IF !(antwort)='V' eben" TO term IF !(cond)='A' STORE "'"+term+"'"+'$autor' TO mem ENDIF IF !(cond)='S' STORE "'"+term+"'"+'$stichwort' to mem @ 19,10 SAY ' VON RECORD #' GET FIRST @ 20,10 SAY ' BIS RECORD #' GET LST READ ERASE IF FIRST > 1 GO FIRST +', '+TRIM(jahr)+', '+TRIM(heft)+', '+TRIM(s)); TO zjhv ? IF btitel <> ' ' ? a ?? t ?? babt ?? ovj ENDIF IF zeits <> ' ' ? a ?? t ?? zjhv ENDIF IF btitel = ' ' .AND. zeits = ' ' ? a ?? t ?? ovj ENDIF ENDIF STORE (TRIM(autor)+': ') TO a STORE (TRIM(titel)+'. ') TO t STORE (TRIM(ort)+': '+TRIM(verlag)+', '+TRIM(jahr)+'.') TO ovj STORE ('In: '+TRIM(bautor)+', '+TRIM(btitel)+', '+TRIM(s)+', ') TO babt STORE(TRIM(zeits)+', '+TRIM(jg) ? a ?? t ?? ovj ENDIF IF (#/5) <> INT(#/5) SKIP LOOP ENDIF SET ALTERNATE OFF SET PRINT OFF Number' @ 13,1 SAY ' ' get zeits picture 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; XXXXXXXXXXXXXXXXXXXX' @ 13,54 SAY ' ' GET jg PICTURE 'XXXXXXXXXX' @ 13,67 SAY ' ' GET heft PICTURE 'XXXXXXXXXX' @ 15,1 SAY ' JAHR SEITElort) VERLAG' @ 12,1 SAY ' ' get ort picture 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' @ 12,35 SAY ' ' GET VERLAG PICTURE 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; XXXXXXXXX' @ 14,1 say ' JAHR' @ 15,1 SAY ' ' GET JAHR PICTURE 'XXXXXXXXX' ? 'MIT BELIEBIGER TASTE ZUR]CK ZUM AUSGABE-MEN]' ? SET CONSOLE OFF WAIT SET CONSOLE ON ENDCASE ENDDO ENDCASE ENDDO RETURN  @ 6,1 SAY ' TITEL des Beitrags' @ 7,1 say ' ' get titel picture 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXautor PICTURE 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' @ 6,1 SAY ' BUCHTITEL (Sachtitel; Untertitel nach vorhandenem Platz)' @ 7,1 say ' ' get titel picture 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; XXXXXXXX ? ? 'BET[TIGE EINE TASTE F]R DIE N[CHSTEN RECORDS' ? SET CONSOLE OFF WAIT SET CONSOLE ON IF datei rd, sonst A)bbruch' TO STOP IF !(STOP)='A' IF autor = ' ' DELETE ENDIF STORE T TO ABBRUCH ENDIF ENDDO CASE !(antwort)='Z' store F to ABBRUCH DO WHILE .NOT. ABBRUCH ERASE APPEND BLANK @ 17,1 SAY ' SCHLAGWORT (Themenbezogene Begriffe)' @ 18,1 SAY ' ' GET STICHWORT PICTURE 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' READ ACCEPT ' Mit RETURN naechster RecoUSE titel SET TALK OFF DO WHILE T ERASE * Literatur-Datenbank: Eingabeteil. Alle Rechte bei Klaus-Henning * Hansen, Wilhelmshavener Stra~e 3, 23 Kiel 1 @ 5,15 say 'EINGABE-PROGRAMM' @ 6,15 say '----------------------------------------' @ 8,15 say '; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' @ 11,1 SAY ' ZEITSCHRIFT ; JAHRGANG HEFT' @ 12,1 SAY ' ; VolumeXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' @ 11,1 SAY ' ORT (Verlagsort, Hochschu SET ALTERNATE ON ENDIF ERASE SKIP ENDDO SET ALTERNATE OFF SET PRINT OFF ? @ 1,1 say ' Eingabe von Zeitschriften-Artikeln / RECORD # :' @ 1,51 say # @ 3,1 SAY ' AUTOR1/AUTOR2/... ' @ 4,1 SAY ' ' GET AUTOR PICTURE 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' RUCH DO WHILE .NOT. ABBRUCH ERASE APPEND BLANK @ 1,1 SAY ' Eingabe von Buchtiteln / RECORD # :' @ 1,51 say # @ 3,1 SAY ' AUTOR1/.../... oder HERAUSGEBER (Hrsg./Ed./Eds. angeben) ' @ 4,1 SAY ' ' GET B)uchtitel' @ 10,15 say 'Z)eitschriftenbeitr{ge' @ 12,15 say 'A)ufs{tze aus Sammelb{nden' @ 14,15 say 'R)}ckkehr zum Hauptmen}' @ 17,15 say 'Welche Titel sollen eingegeben werden?' ? WAIT TO antwort DO CASE CASE !(antwort)='B' STORE F TO ABB(n)' @ 16,1 SAY ' ' GET jahr PICTURE 'XXXXXXXXX' @ 16,14 SAY ' ' GET s picture 'XXXXXXXXXXXXXXX' @ 18,1 SAY ' Schlagwort ' @ 19,1 SAY ' ' GET STICHWORT PICTURE 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X @ 16,2 say '(Mit RETURN vorgegebene Werte einlesen!)' READ erase if first > 1 go first ELSE go top endif if !(print)='D' set print on endif DO WHILE # <= lst .AND. .NOT. EOF SET MARGIN TO &X IF btitel = ' ' .AND. zeits = ' ' ? IF autor = ' ' DELETE ENDIF STORE T TO ABBRUCH ENDIF ENDDO OTHERWISE RETURN ENDCASE ENDDO RETURN 1 SAY ' ' GET AUTOR PICTURE 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' @ 5,1 SAY ' TITEL (des Beitrages)' @ 6,1 say ' ' get titel picture 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; XXXXXXXXXXXXXXXXXXXXXXXXXXXXX------------------------------------------------' @ 6,2 SAY 'AUSGABE ]BER D)RUCKER ODER B)ILDSCHIRM ?' @ 8,2 say ' Stop der Ausgabe mit ESCAPE' ? WAIT TO print ERASE go bottom store str(#,5) to last ? ? ' Die Datenbasis hat '-last+' EintragunSAY ' ' GET VERLAG PICTURE 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; XXXXXXXXX' @ 18,1 say ' JAHR SEITE(n)' @ 19,1 SAY ' ' GET JAHR PICTURE 'XXXXXXXXX' @ 19,14 say ' ' GET S picture 'XXXXXXXXXXXXXXX' @ 21,1 SAY ' SCHLAGWORT(e)XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' READ ACCEPT ' Mit RETURN naechster Record, sonst A)bbrechen' TO STOP IF !(STOP)='A' IF autor = ' ' DELETE ENDIF STORE T TO ABBRUCH ENDIF ENDDO CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' @ 9,1 SAY ' IN: HERAUSGEBER (Hrsg./Ed.,Eds angeben) ' gen. Report gew}nscht:' ? STORE ' 1' TO X store 1 to first store val(last) to lst @ 10,2 SAY ' von Record #' get first @ 11,2 SAY ' bis Record #' get lst @ 14,2 SAY 'Position des linken Randes f}r Ausdruck ' GET ' @ 22,1 SAY ' ' GET STICHWORT PICTURE 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' READ ACCEPT ' Mit RETURN naechster Record, sonst A)bbruch ' to STOP IF !(STOP)='A' SE !(antwort)='A' STORE F TO ABBRUCH DO WHILE .NOT. ABBRUCH APPEND BLANK ERASE @ 1,1 SAY ' Eingabe von Beitr{gen aus Sammelb{nden / RECORD # :' @ 1,55 say # @ 3,1 SAY ' AUTOR1/AUTOR2/... ' @ 4,* 'Literatur-Datenbank: Report-Teil. Alle Rechte bei Klaus-' * 'Henning Hansen, Wilhelmshavener Str. 3, 23 Kiel 1' ERASE USE titel SET TALK OFF @ 2,2 say 'Report-Programm f}r formatierte Ausgabe der Titel mit Stichworten' @ 3,2 say '-----------------XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' @ 16,1 SAY ' VerlagsORT/Hochschulort VERLAG' @ 17,1 SAY ' ' get ort picture 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' @ 17,35 @ 10,1 SAY ' ' GET BAUTOR PICTURE 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' @ 11,1 SAY ' TITEL (des Sammelbandes) ' @ 12,1 say ' ' get btitel picture 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX; XXXXXXXXXXXXXXXXX 'TITEL # ' ?? # ? trim(autor)+':' store trim(titel) + '.' to t STORE LEN(t) TO l IF l <= 70 ? t ELSE store @(' ',$(t,55,15)) + 54 to r1 ? $(t,1,r1) IF l > 130 STORE @(' ',$(t,r1+55,15)) + r1 + trim(s) ? '--------------------------------------------------------' ? stichwort ? skip ENDIF ENDDO SET PRINT OFF RETURNerricht: M|glichkeiten und Grenzen der Aufkl{rung ? 'TITEL # ' ?? # ? trim(autor)+':' store trim(titel) + '.' to t STORE LEN(t) TO l IF l <= 70 ? t ELSE store @(' ',$(t,55,15)) + 54 to r1 ? $(t,1,r1) IF l > 130 STORE @(' ',$(t,r1+55,15)) + worten' @ 3,2 say '-----------------------------------------------------------------' @ 6,2 SAY 'AUSGABE ]BER D)RUCKER ODER B)ILDSCHIRM ?' @ 8,2 say ' Stop der Ausgabe mit ESCAPE' ? WAIT TO print ERASE go bottom store str(#,5) to last ?t ? > 128 STORE @(' ',$(t,r1+55,15)) + r1 + 54 to r2 STORE (r2 - r1) to r3 ? $(t,r1+1,r3) IF l > 200 STORE @(' ',$(t,r2+55,15)) + r2 + 54 to r4 STORE (r4 - r2) TO r5 ? $(t,r2+1,r5)54 to r2 STORE (r2 - r1) to r3 ? $(t,r1+1,r3) IF l > 200 STORE @(' ',$(t,r2+55,15)) + r2 + 54 to r4 STORE (r4 - r2) TO r5 ? $(t,r2+1,r5) ? $(t,r4+1,70) ELSE  r1 + 54 to r2 STORE (r2 - r1) to r3 ? $(t,r1+1,r3) IF l > 200 STORE @(' ',$(t,r2+55,15)) + r2 + 54 to r4 STORE (r4 - r2) TO r5 ? $(t,r2+1,r5) ? $(t,r4+1,70) ELSE ? $(t,r4+1,70) ELSE ? $(t,r2+1,70) ENDIF ELSE ? $(t,r1+1,70) ENDIF ENDIF ? 'In: '+trim(bautor)+':' ? trim(btitel)+'.' ? trim (ort)+': '+trim(verlag)+', '+TRIM(jahr)+', '+ ? $(t,r2+1,70) ENDIF ELSE ? $(t,r1+1,70) ENDIF ENDIF ? trim(ort)+': '+trim(verlag)+', '+TRIM(jahr) ? '------------------------------------------' ? stichwort ? SKIP ENDIF IF zeits <> ' ' iteratur-Datenbank: Report-Teil. Alle Rechte bei Klaus-' * 'Henning Hansen, Wilhelmshavener Str. 3, 23 Kiel 1' ERASE USE titel SET TALK OFF @ 2,2 say 'Report-Programm f}r formatierte Ausgabe der Titel mit Stichort ? SKIP ENDIF IF bautor <> ' ' ? 'TITEL # ' ?? # ? trim(autor)+':' store trim(titel) + '.' to t STORE LEN(t) TO l IF l <= 70 ? t ELSE store @(' ',$(t,55,15)) + 54 to r1 ? $(t,1,r1) IF l ? $(t,r2+1,70) ENDIF ELSE ? $(t,r1+1,70) ENDIF ENDIF ? trim(zeits)+',' ? trim(jg)+', '+trim(heft)+', '+TRIM(jahr)+', '+trim(s) ? '----------------------------------------------------' ? stichwRESET CLEAR SET TALK OFF STORE T TO menue USE titel DO WHILE menue ERASE @ 1,15 SAY ' LITERATUR-DATEI' @ 3,10 SAY 'Klaus-Henning Hansen - 24.10.83' @ 5,15 SAY ' HAUPT-MEN]' @ 7,15 say '-----------------------------------' @ 8,1SE titel store t to abbruch ELSE STORE t TO abbruch ENDIF ENDDO CASE !(antwort)='B' ERASE @ 12,10 say 'Soll LIT wirklich verlassen werden? (J/N)' ? WAIT TO ant)='E' ERASE STORE '1' TO X DO WHILE X<>'0' ? ' Folgende Editierbefehle stehen zu Verf}gung:' ? '--------------------------------------------------------------------' ? ? 'CTRL-C/R CTRL-G C='B' QUIT CASE !(ant)='H' LOOP OTHERWISE LOOP ENDCASE ELSE LOOP ENDIF OTHERWISE LOOP ENDCASE ENDDO 5,3 SAY ' alte Database File wird zum BAK-File. ' @ 6,3 SAY ' Ist ausreichend Platz auf der Diskette?' @ 7,3 SAY '-----------------------------------------' @ 12,3 SAY 'N)ein, R}ckkehr zum Hauptmen}!' @ 14,3 SAY 'S5 SAY 'T)ITEL AUFNEHMEN' @ 10,15 SAY 'A)NSEHEN/ AUSGEBEN' @ 12,15 SAY 'E)DITIEREN UND TITEL L\SCHEN' @ 14,15 SAY 'S)ORTIEREN' @ 16,15 say 'R)EPORT' @ 18,15 SAY 'B)eenden/ Sicherheitskopie' @ 19,15 SAY '------------------------------' @ 14,10 SAY 'Zur Fortsetzung beliebige Taste druecken' ? WAIT USE TITEL COPY TO B:TITEL @ 16,10 SAY '***** BEIM KOPIEREN *****' ENDIF ERASE twort IF !(antwort)='J' @ 16,10 SAY 'SICHERHEITSKOPIE DER TITEL-DATEI ANFERTIGEN? (J/N)' ? WAIT TO aw IF !(aw)='J' ERASE @ 12,10 SAY ' DISKETTE IN DRIVE B: EINGELEGT?TRL-Q CTRL-V CTRL-U CTRL-W' ? 'bl{ttern l|sche verlassen einf}gen l|sche abspeichern' ? 'vor/zur. Zeichen ohne [nder. Record mit [nder.' ? ACCEPT "WELCHE TITEL- # SOLL EDITIERT WERDEN? (mit RE)ortierung nach AUTOR' ? WAIT TO wahl IF !(wahl)='S' ERASE @ 10,15 SAY ' ***** BEIM SORTIEREN ! ****' SORT ON autor TO sort USE sort COPY TO titel U----' @ 21,15 SAY 'Bitte w{hlen Sie eine Funktion aus' WAIT TO antwort DO CASE CASE !(antwort)='R' DO REPORT CASE !(antwort)='T' DO eingabe CASE !(antwort)='A' DO ausgabe CASE !(antwor @ 12,10 SAY 'B)ETRIEBSSYSTEM' @ 14,10 SAY 'D)BASE' @ 16,10 SAY 'H)auptmenue?' ? WAIT TO ant DO CASE CASE !(ant)='D' RETURN CASE !(ant) WAIT to an IF !(an)='J' PACK ENDIF CASE !(antwort)='S' STORE T TO ww STORE F TO abbruch DO WHILE .NOT. abbruch ERASE @ 4,3 SAY ' Sortiert wird in einen neuen File. Der ' @ TURN ABBRUCH)" to X EDIT &X STORE '0' TO X ENDDO ERASE @ 10,1 say ' Sollen markierte Records gel|scht werden (pack)? (J/N)' @ 12,1 say '(Nur beim Kopieren von TITEL.DBF wird der File kleiner!)' ? K OFF STORE T TO menue USE titel DO WHILE menue ERASE @ 1,15 SAY ' LITERATUR-DATEI' @ 3,10 SAY 'Klaus-Henning Hansen - 24.10.83' @ 5,15 SAY ' HAUPT-MEN]' @ 7,15 say '-----------------------------------' @ 8,1erfolg de Aufru vo Betriebssystem sons mi d lit Eingabe wurden soweit moeglich abgesichert. 3. Hinweise Da Program arbeite au eine APPL I mi IBS- MH CP/M- Karte sowie einem Videxnachbau fuer 80 Zeichen und Umlaute. Wil mae Buchtitel Aufsaetz aus Sammelbaenden sowie Zeitschriftenartikel. AUSGABE.CM ha zwe Funktionen Zu eine kan ma dami geziel Titeangaben nac Autor Stichwor ode Sequenznumme suchen Zu andere ermoeglich da Programmsegmen di A5 SAY 'T)ITEL AUFNEHMEN' @ 10,15 SAY 'A)NSEHEN/ AUSGEBEN' @ 12,15 SAY 'E)DITIEREN UND TITEL L\SCHEN' @ 14,15 SAY 'S)ORTIEREN' @ 16,15 say 'R)EPORT' @ 18,15 SAY 'B)eenden/ Sicherheitskopie' @ 19,15 SAY '------------------------------atensatze ansehen Da Forma ha sic bewaehrt Sol e veraender werde mi Modif structure s mu auc EINGABE.CM mit den Eingbemasken angepa~t werden! Nac de Rueckkeh vo de Prozedure nac LIT.CM kan da Program aussteigen wen d gro~ Dateie anlegen s is e ratsam de default- Drive auf B: zu aendern und eine getrennte Daten-Disk anzulegen. Ich werde diese Aenderung vermutlich demnaechst selbst vornehmen. Mi US Tite un LIS STRUCTUR kan ma sic de Aufba de DK.-H. HANSEN 1.12.1983 Literatur-Datenbank auf der Basis von dBASE II _________________________________________________________________ 1. Funktionen Das Programm besteht aus 5 Teilen: LIT.CM ruf di restlicheusgab au DIS di Erstellun eine Files de vo WORDSTA }bernomme werde kann Dari tauch jede TITE al lang Zeil auf di mi CTRL- formatier werde mu~. 2. Bedienung Da Program is weitgehen selbsterklaerend Mi dbas li i logische Wert vo Variable fue Schleifenabbruc nich erkann werden Ic wei nich genau woran das liegt. Mit do lit mu~ dann neu gestartet werden.  Ausdruc de gesamte Date erwende werden De Tite wir au maxima 7 Zeiche formatiert s da i allgemeine ein vertretbar druckerbreit z erreiche ist de link ran kan gewaehlt werden. EINGABE.CM enthael di Eingabemaske fu Programm au un enthael Routine zu Sortiere un Editieren Bei Verlasse vo LI wir ein Sicherheitskopie angelegt. REPORT.CM erlaub da Ausdrucke alle Literaturtite einschlie~lic Sequenznumme un Stichwort REPOR sollt f} de CPMAG#01 Dies ist nun die erste Diskette der CP/M AG. Au Ih befinde sic zwe Programme Da erst is eigentlic kei Programm sonder ei kommentiertes,disassemblierte Sourcelisting des CP/M BIOS. 1981 Rationalisierung, Mikroelektronik, Gewerkschaften Briefs, U. Alltag Barthes, R. Mythen des Alltags Mikroelektronik, sozialer Wandel und Bildung. Bericht }ber eine Fachtagung in L}denscheid Da zweit is ein Literatur-Datenban f} dBAS II Si besteh au vie Programme (Command-Files f} di dBASŠ Iɠ Versio 2.3B. Eine eingehende Beschreibung finden Sie in dem File LITER.DOC. Viel Spa~ w}nscht Frankfurt Suhrkamp 1970 %STICHWORTCdlAUTORCK5mTITELCmBAUTORCKpnBTITELCnORTCQoVERLAGC(ooJAHRC oZEITSC2oJGC oHEFTC oSCo Weinheim und Basel Beltz Weinheim und Basel Beltz 1981 die CP/M AG rsio 2.3B. Eine eingehende Beschreibung finden Sie in dem File LITER.DOC. Viel Spa~ w}nscht Mikroelektronik, Allgemeinbildung, Berufsbildung Bosler, U./Hansen, K.-H. Situationsbegriff, Situation, Didaktik Arnold, K.-H. Der Situationsbegriff in den Sozialwissenschaften @ Arbeiten ohne Sinn und Perspektive? Umwelterziehung, Werte Eulefeld, G. u.a. \kologie und Umwelterziehung Industrief|rderung, Forschungsprojekt Curran, J.L. DEC, IBM, and Athena Broudy, H.S. Science, Technology, and the Deminished Mind K|ln 1983 Byte Vol. 8 No. 8 p. M}nster SDZ-Verlag 1981 Reinbeck rororo Aktuell 1982 Mikrocomputer, Bildung, Pahl-Rugenstein 1980 Naturwissenschafttsdidaktik, Technikkritik 4 Naturphilosophie Daxner,M./Bloch, J.R./Schmidt, B. Andere Ansichten von der Natur k Cooley, M. Produkte f}r das Leben statt Waffen f}r den Tod 1976 Journal of College Teaching May Technik, Gesellschaft, alternative Produktion, Mikroelektroni ik Harmin, M./Kirschenbaum, H./Simon, S.B. Clarifying Values Through Subject Matter Gorny, P. New Information Tecnology in Education in the Federal Republic of Germany Curriculum-Konferenz: Gebiet Mikroprozessor Schulz-Zander, R./Bosler, U./Hansen, K.-H./ Lehrke, M. Schulspezifische Programmiersprachen im Informatikunterricht Stuttgart Kohlhammer 1981 1982 European Journal of Education Vol. 17 No. 4 pp. 339-353 Sch}lervorstellungen, EDV Kiel IPN Kiel IPN Arbeitsberichte 52 1983 S. 71-113 Werterziehung, Didakt 1976 Zentralblatt f}r Didaktik der Mathematik Vol. 8 S. 35-43 Mikrocomputer, Bildung, Regierungspolitik Curriculum, Microprozessoren Frey, K. (Hrsg.) Hansen, K.-H. Sch}lervorstellung zur elektronischen Datenverarbeitung. Ergebnisse einer empirischen Untersuchung Zielsetzungen und Inhalte des Informatikunterrichts 1981 Informatikunterricht, Richtlinien Gesellschaft f}r Informatik Minneapolis Winston Press 1973 Frankfurt Campus 1979 Wertsoziologie Klages, H./Kmieciak, P. (Hrsg.) Wertwandel und gesellschaftllicher Wandel  Harmin, M./Kirschenbaum, H./Simon, S.B. Clarifying Values Through Subject Matter