DataMuseum.dk

Presents historical artifacts from the history of:

CP/M

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦4f4ca856a⟧ TextFile

    Length: 1792 (0x700)
    Types: TextFile
    Names: »STYRING.LST«

Derivation

└─⟦037dced94⟧ Bits:30003312 Elevopgave i styring af skildpadde til Piccolo
    └─ ⟦this⟧ »STYRING.LST« 

TextFile

0010 PROC init CLOSED
0020   OPEN FILE 5,"/19/port", WRITE 
0030   marg:=SYS(6)
0040   MARGIN 0
0050   PRINT FILE 5: CHR$(255);
0060   PRINT FILE 5: CHR$(192);
0070   CLOSE FILE 5
0080   OPEN FILE 5,"/17/port", WRITE 
0090   PRINT FILE 5: CHR$(0); // sikre bl.a at relæer er brudt
0100   CLOSE FILE 5
0110   MARGIN marg
0120 ENDPROC init
0130
0140 PROC motor(nr,retning,trin) CLOSED
0150   // retning > 0 drejer med uret og retning <0 drejer mod uret
0160   // trin angiver hvor mange gange 7.5 grad der drejes
0165   IMPORT vent
0170   OPEN FILE 5,"/17/port", WRITE 
0180   marg:=SYS(6)
0190   MARGIN 0
0200   IF retning>0 THEN
0210     byte:=1 // 01 i binært tal
0220   ELSE 
0230     byte:=3 // 11 i binært tal
0240   ENDIF 
0250   CASE nr OF
0260   WHEN 1
0270     //intet  d.v.s bit 0 og 1«nul»
0280   WHEN 2
0290     byte:=byte*4 // flyttes til bit 2 og 3«nul»
0300   WHEN 3
0310     byte:=byte*16 // flyttes til bit 4 og 5«nul»
0320   OTHERWISE 
0330     // intet
0340   ENDCASE 
0350   FOR motorskridt:=1 TO trin DO
0360     EXEC vent(4)
0370     PRINT FILE 5: CHR$(byte);
0380     EXEC vent(4)
0390     PRINT FILE 5: CHR$(0);
0400   NEXT motorskridt
0410   CLOSE FILE 5
0420   MARGIN marg
0430 ENDPROC motor
0440
0450 PROC vent(tid) CLOSED
0460   FOR i:=1 TO tid DO i:=i
0470 ENDPROC vent
0480
0490 PROC relæ(nr,on) CLOSED
0500   marg:=SYS(6)
0510   MARGIN 0
0520   OPEN FILE 5,"/17/port", WRITE 
0530   CASE nr OF
0540   WHEN 1
0550     on:=on*2 //   d.v.s bit 1
0560   WHEN 2
0570     on:=on*8 // flyttes til bit 3
0580   WHEN 3
0590     on:=on*32 // flyttes til bit 5
0600   OTHERWISE 
0610     // intet
0620   ENDCASE 
0630   PRINT FILE 5: CHR$(on);
0640   CLOSE FILE 5
0650   MARGIN marg
0660 ENDPROC relæ
«eof»